Microsoft已经发布了ASP.NET Model-View-Controller (MVC) web框架1.0版,这是微软采用开源协议发布,并且同开发社区充分互动的一个产品,和ASP.NET Webform 1.0的发布完全不同,ASP.NET MVC自从RC版本开始就进入了稳定版本 。
在官方下载页面上对ASP.NET MVC这样描述道:
ASP.NET MVC在现有的ASP.NET 3.5运行时的基础上提供了一个新的MVC框架。开发人员可以用MVC设计模式来构建Web应用,做到清晰的概念分离(UI或者视图与业务应用逻辑分离, 应用逻辑和后端数据分离),同时还可以使用测试驱动开发。ASP.NET MVC框架为Web应用的目录结构定义了一个专用的模式,还提供了一个controller基类,用来处理发动到“action”的请求。开发人员还可以 用上这个版本中所特有的Visual Studio 2008 MVC模板,利用模板所提供的单元测试结构来辅助Web应用开发。
微软的产品在坊间流传一种说法是“微软的产品一般要到3.0版本才比较稳定,成熟,可以放心使用”,但是这次发布的ASP.NET MVC 1.0可以打破这种宿命了,ASP.NET MVC 经过2年多的开发,有一堆的微软专家和社区精英共同研发出来。
而且我们小组最近在两个项目中完全使用 ASP.NET MVC 开发了。学习ASP.NET MVC 的过程中,有很多开发观念、开发技巧需要学习,而且学习 ASP.NET MVC 几乎等于放弃服务端控件的使用 (因为没有ViewState可用),有些服务端控件还是可以用的,例如ASP.NET图表控件参看在asp.net mvc上应用新ASP.NET图表控件,在codeplex上有一个ASP.NET MVC Friendly HttpModule,通过这个HttpModule可以在你的项目中使用服务端控件,不过除此之外,之前所积累的开发经验还是有用的,例如: MasterPage, UserControl, Membership, Role, Session, HttpModule, HttpHandler, Web Service, Configuration, LINQ, LINQ to SQL, ... 而且 ASP.NET MVC 跟传统的 ASP.NET 的webform可以并存在同一个网站中,彼此也不会打架,所以大型网站可以逐步转换为 ASP.NET MVC,具体可参看CMS项目Cuyahoga:http://www.cuyahoga-project.org/。
要让一个懂 ASP.NET 的人主动学习 ASP.NET MVC还真的不是一件容易的事,毕竟这两者之间还是有一些鸿沟的,而且还要放弃掉一些曾经拥有(可能还是引以为豪)的知识,例如:服务端控件(Server Control)开发。但是让一个懂 Java 或 PHP/Ruby的人进入 ASP.NET MVC 的世界应该是比进入Webform的世界容易多了 。
ASP.NET MVC 1.0下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=53289097-73ce-43bf-b6a6-35e00103cb4b&displaylang=en
ASP.NET MVC: 构建不带 Web 窗体的 Web 应用程序:http://msdn.microsoft.com/zh-cn/magazine/cc337884.aspx