【IT168评论】近日,.NET开发总管Scott Guthire在其博客中称微软ASP.NET MVC 2正式版发布了,该版本适用于Visual Studio 2008及基于ASP.NET 3.5平台的Visual Web Developer 2008 Express。VS 2010 和 Visual Web Developer 2010的最终版将内置含有ASP.NET MVC 2, 不需要另外的安装就可以在其中使用ASP.NET MVC 2。
微软在不到一年之前发布了ASP.NET MVC 1版, 自那时起,几乎近百万的开发人员下载并使用了ASP.NET MVC 1的最终版,其人气(popularity)逐月递增。
ASP.NET MVC 2 是 ASP.NET MVC 的下一个重大更新版,它是与ASP.NET MVC 1相兼容的更新版,所以,所有关于ASP.NET MVC的现有知识,技能,代码和扩展在以后都能继续发挥作用。跟第一个版本一样,微软还在与OSI相容的开源许可下发布了ASP.NET MVC 2的源码。
ASP.NET MVC 2可与ASP.NET MVC 1并行安装(这意味着,你可以在同一台机器上有一些应用是用V1建造的,而另一些是用V2建造的)。在这里,微软发布了一些说明,如何使用VS 2008将你现有的ASP.NET MVC 1应用升级到使用ASP.NET MVC 2。注意,VS 2010有一个自动升级的向导,可以自动地将现有的ASP.NET MVC 1应用迁移到ASP.NET MVC 2。
ASP.NET MVC 2 特性
ASP.NET MVC 2的变化主要如下。
1、在RC1中新增的ASP.NET MVC 2 validation(对ViewData中Model数据验证)功能,现在已经由 model-validation 取代了 input-validation 。也就是说,如果你使用 model binding (将Model属性自动绑定到View中,并自动绑定从View中Post回Controller的值),那么所有的属性都将被验证一遍,而不仅仅是变更后的数据。
2、新的“强类型HTML的辅助方法”,现在支持了Lambda表达式,从而可以使你使用到数组(array)或者集合索引(collection indexes)。例如现在可以这么做:Html.EditorFor(m=>m.Orders[i]) ,这段代码将会生成以序列i为name、具体数组中的值为value的标签。
3、重新调整过的Html.EditorFor() 和 Html.DisplayFor() 扩展方法,在默认情况下将自动对应简单属性。这使得自动构造Form表单变为更加简单了。
4、model验证所使用的客户端脚本中的id现在更清晰了。在RC1中,id会像这样:form0_ prefix,现在id改为了以属性名称为前缀,如:unitPrice_validationMessage。
5、Html.ValidationSummary() 方法增加了一个参数,可以控制汇总信息显示的级别,是整个Model级别,或是单个属性级别。
6、AccountController中使用默认的ASP.NET MVC Web Application模板更加整洁了。
7、脚手架(scaffolding)功能现在提供了在Controller中的Delete方法,以及对的View页面(模板)。
8、jQuery 1.4.1被包含到了项目中,取代了原先的1.3.2版本。同步更新的还有用来智能提示的vsdoc文件。
9、其他一些很有意义的改进,比如第2点中所说的“强类型HTML(标签)的辅助方法”现在更快了。
ASP.NET MVC延伸阅读
ASP.NET MVC是微软官方提供的MVC模式编写ASP.NET Web应用程序的一个框架。
它由Castle的MonoRail而来.目前已经历经数个版本。ASP.NET MVC中的MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
ASP.NET MVC框架是既ASP.NET WebForms后的又一种开发方式。它提供了一系列优秀特性,使ASP.NET开发人员拥有了另一个选择。ASP.NET MVC框架选项非常干净,而且容易使用。它将允许你在应用中轻易地保持关注分离,且有助于进行干净的测试和TDD。