本节书摘来自异步社区《ASP.NET MVC 4 实战》一书中的第1章,第1.3节,作者: 【美】Jeffrey Palermo , 【美】Jimmy Bogard , 【美】Eric Hexter , 【美】Matthew Hinze , 【英】Jeremy Skinner,译者: 徐燕萍 , 李萍 , 林逸 , 更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.3 ASP.NET MVC 3/4的新特性
ASP.NET MVC 4 实战
除了对.NET 4有新的依赖性之外,MVC 3、4版有许多改进和一些新的特性。这些新特性包括:
本节中将简要介绍每一种新特性,然后整个这本书都将对它们做更为深入的探讨。我们还将介绍移动模板、Web API,并在第23章和第24章介绍MVC 4特有的其他特性。
1.3.1 Razor视图引擎
新的ASP.NET Web Pages技术的核心组件之一是Razor视图引擎。该引擎提供了一种在同一个文件中将代码与标记混合在一起的简明方式。
ASP.NET MVC应用程序也可以利用Razor视图引擎来替代Web Form的视图引擎。ASP.NET MVC 1、2版中使用的便是这种Web Form视图引擎。
作为一个例子,以下代码片段显示了一个简单页面,它使用旧式的Web Form视图引擎构造了一个产品名列表:
这是相当冗长的。顶部的页面声明&#xff0c;以及用于在代码与标记之间进行切换的代码块&#xff08;<%和% >&#xff09;&#xff0c;对页面标记添加了许多额外的字符。相比之下&#xff0c;Razor提供了一种简洁得多的方式以取得同样的结果&#xff1a;
正如你所看到的&#xff0c;Razor不需要代码块进行代码与标记之间的切换&#xff0c;这有助于以更加关注页面标记的方式保持视图的逻辑。本书的第1部分将广泛使用Razor&#xff0c;并在第17章深入介绍Razor。
1.3.2 NuGet包管理
ASP.NET MVC也提供了NuGet包管理器。通过提供一个工具&#xff0c;NuGet简化了依赖性管理。该工具可用来将组件、库以及其他实用程序直接安装到你的项目&#xff0c;而无须手工访问网站去下载正在寻找的库。一旦已经安装&#xff0c;这些组件在Visual Studio中也可以很容易地保持最新。
NuGet同时提供了一个命令行接口和一个GUI&#xff08;图形用户界面&#xff09;&#xff0c;可用来从大量的在线包中下载组件和库。NuGet将在第14章中详细介绍。
1.3.3 改进的可扩展性
ASP.NET MVC公开了附加的可扩展点&#xff0c;这些可扩展点可用来挂接你自己的组件&#xff0c;以替代框架的各个部件。MVC有一个依赖性解析器的概念&#xff0c;它可以用来实例化对象&#xff0c;并将对象回递给框架。这种方法可用来与各种依赖性反转容器相集成&#xff0c;以减少必须手工实例化对象的次数。
第18章将探讨使用依赖性解析器和DI容器的可扩展性。
1.3.4 全局动作过滤器
MVC中的全局动作过滤器特性从MVC 1、2版就建立了过滤器机制&#xff0c;目的是将交叉行为提供给应用程序的所有控制器动作。这似乎是一种小特性&#xff0c;但它可以大大降低应用程序中过滤器的声明数目。第16章介绍全局过滤器。
1.3.5 动态语言特性
通过依赖于.NET 4&#xff0c;ASP.NET MVC利用了一些新的DLR特性&#xff0c;包括用动态模型将数据传递给视图的能力。第3章将做更深入的介绍。
1.3.6 部分页面输出缓存
ASP.NET MVC一直支持将整个页面缓存一定时间的能力。它现在也具备了只缓存页面某个区域的能力。第17章将考察如何利用输出缓存。
1.3.7 Ajax改进
通过与jQuery以及其他Javascript库的集成&#xff0c;MVC继续提供了丰富的Ajax功能。它还包括了将JSON数据反序列化给动作方法参数的内建支持。第7章将探讨这些Ajax改进。
1.3.8 验证改进
MVC 2引入了用数据注解属性验证模型对象的支持。这些注解属性在.NET 4中有了明显的改善&#xff0c;MVC继续利用了这些特性。此外&#xff0c;客户端验证的支持已大大改善。这些验证特性将在第6章探讨。
现在&#xff0c;你已经概要地看到了ASP.NET MVC的显著特性&#xff0c;是时候深入到一个示例项目之中了&#xff0c;该项目将描绘上述某些功能。本书的第1部分将探讨这个项目。
本文仅用于学习和交流目的&#xff0c;不代表异步社区观点。非商业转载请注明作译者、出处&#xff0c;并保留本文的原始链接。