C# 在哪里可以找到一些高质量的教程,帮助我了解MVC视图的结构?

C# 在哪里可以找到一些高质量的教程,帮助我了解MVC视图的结构?,c#,asp.net-mvc,asp.net,spark-view-engine,viewengine,C#,Asp.net Mvc,Asp.net,Spark View Engine,Viewengine,我的背景主要是Microsoft平台上的桌面应用程序。我最近一直在使用ASP.NETMVC,完全跳过了学习webforms。我发现在MVC中写我的观点最麻烦(不是一个网络人)。要在MVC中编写好的视图,我应该精通HTML和javascript吗?另外,我应该使用标准的Webforms视图引擎吗?或者,考虑到我的背景,我会更轻松地使用Spark视图引擎吗?这些天来,对于大多数web工作,你需要对HTML、JavaScript(最有可能是jQuery)和CSS有很好的理解。无论您使用的是ASP.NE

我的背景主要是Microsoft平台上的桌面应用程序。我最近一直在使用ASP.NETMVC,完全跳过了学习webforms。我发现在MVC中写我的观点最麻烦(不是一个网络人)。要在MVC中编写好的视图,我应该精通HTML和javascript吗?另外,我应该使用标准的Webforms视图引擎吗?或者,考虑到我的背景,我会更轻松地使用Spark视图引擎吗?

这些天来,对于大多数web工作,你需要对HTML、JavaScript(最有可能是jQuery)和CSS有很好的理解。无论您使用的是ASP.NETMVCW/Spark、默认引擎还是PHP等其他技术。最后,浏览器只理解HTML、JavaScript和CSS,其他东西只是为了帮助创建最终输出,但您仍然需要理解您想要生成的内容

关于视图引擎,如果您正在学习以备将来使用,而不是为了一个您希望尽快投入生产的即时项目,我建议您看看微软即将推出的视图引擎Razor

它是为ASP.NETMVC3版本而构建的,吸取了Spark、NHaml和默认视图引擎的经验教训

摘自文章:
设计目标

在原型化和评估“Razor”时,我们有几个设计目标:

  • 紧凑、富有表现力、流畅:剃须刀 最小化字符数 以及文件中所需的击键, 并实现快速、流畅的编码 工作流程。与大多数模板不同 语法,您不需要 中断您的编码以显式 表示服务器中的服务器块 HTML。解析器足够聪明,可以 从您的代码中推断出这一点。这 实现了一个非常紧凑的 简洁的表达性语法, 打字又快又有趣

  • 易学:Razor易学,使您能够以最少的概念快速提高生产效率。您使用所有现有的语言和HTML技能

  • 不是一种新语言:我们有意识地选择不使用Razor创建一种新的命令式语言。相反,我们希望开发人员能够使用Razor使用他们现有的C#/VB(或其他)语言技能,并提供模板标记语法,使用您选择的语言实现出色的HTML构建工作流

  • 适用于任何文本编辑器:Razor不需要特定的工具,并且使您能够在任何纯文本编辑器中高效工作(记事本非常有用)

  • 具有强大的智能感知能力:虽然Razor的设计不需要特定的工具或代码编辑器,但它将在VisualStudio中提供出色的语句完成支持。我们将更新VisualStudio2010和VisualSWebDeveloper2010,使其具有完整的编辑器intellisense

  • 单元可测试:新的视图引擎实现将支持单元测试视图的能力(无需控制器或web服务器,并且可以托管在任何单元测试项目中,无需特殊的应用程序域)


对于ASP.Net MVC 3 Preview 1,请特别关注视图引擎,如果您希望在视图中引入代码块,那么Razor将是最简洁的方法

我想,考虑到你的背景,下一个问题是——“我如何知道我是否想在视图中引入代码块?”——恐怕你只能带着很多痛苦和经验来回答这个问题。许多人都写过博客文章,解释代码块与标记混合在一起的危险,这会导致一场噩梦,通常被称为

Razor(以及Webforms)为您所做的一切就是将整个C#或VB.Net语言的功能以一种规定了大量使用的方式带到视图中。这就是导致标签汤问题的原因

但似乎仍有顽固派抱有某种错觉,认为通过使用这种方法,你可以长期保持观点的清晰。如果你是一个人,而且是永远在写代码,那么我倾向于同意这是可能的,但只有在这样的情况下,注意力和决心才能达到令人麻木的程度

但是,如果您希望保留标记视图,并将代码抽象到“此处快速修复”和“此处黑客攻击”不太吸引人的地方,那么我强烈建议您跳过以代码为中心的视图引擎,使用Spark

在直接回答你的问题方面,你可以找到很多从初学者到高级的教程。以下是我推荐的一些博客和视频格式:

  • -Jason Haley编写的视图引擎的极其全面和准确的比较
  • -作者Lou DeJardin本人在NDC2010上对Spark的初学者介绍
  • -Lou在同一次会议上还提供了另一个有关Spark更高级用法的视频
  • -一篇我直接比较和对比Razor和Spark的博客文章
  • -我写的一篇关于清理标记的博客文章
  • -我为C4MVC准备了一个在线课程,作为教育和意识练习
无论如何,我希望这能让你做出明智的决定

祝你一帆风顺


Rob G

查看赞助商标签链接: