微软 ASP.NET 团队由衷采纳了“及早部署,时常部署”的敏捷哲学。紧跟 ASP.NET MVC 2 的脚步,框架的第 3 个版本已经允许在生产环境中使用了。由于 Razor 语法等值得期待的新功能,这次发布势必引人关注。
之前我们也讨论过 Razor ,它是 ASP.NET MVC 中四大视图引擎之一。这次发布除了增强了C#版 Razor 之外,也提供了 VB 版本的 Razor 。两种 Razor 引擎与之前的“<%”语法相比略显臃肿,但也带来了许多优势。
ASP.NET MVC 也对验证模型进行了一些修改。版本 2 会在表单级别拦截存在安全隐患的用户输入,而在版本 3 中,输入验证可以在字段级别启用或是关闭。
新版本在依赖注入方面也投入了许多思考,其中引入了三个接口:IControllerActivaor,IDependencyResolver 和 IViewActivator。依赖处理器(IDependencyResolver)可用来注入模型验证机制、元数据、Value Provider 以及 Model Binder。这里的意义不仅仅在于微软提供了更好的灵活性,而是程序员可以自行替换几乎所有的内部实现。
与版本 1 至版本 2 的升级不同,这次改变只有一个潜在的破坏。异常过滤器在 Order 值相同的情况下会被优先执行。同样在执行时,更有针对性的过滤器会优先于通用过滤器。当然,为每个控制器和异常过滤器提供独一无二的 Order 值依旧是一个推荐的做法。
ASP.NET MVC 3 能够与前两个版本共存。开发人员需要根据发布通告中的步骤升级现有站点。如上文所述,这个beta 版本已经获得了“上线(Go Live)”许可,能够用于生产环境。不过它始终还是beta 版,所以未来的最终版本还是存在改变的可能。此外还有一些额外的问题,如Razor 无法享受到智能提示,也无法使用数组类型的强类型视图。
查看英文原文: ASP.NET MVC 3 Go-Live License
评论