ASP.NET 3 RC版这个月发布的时候,我还在研究Java平台中的Struts之类的MVC应用框架,对于大多数的程序开发人员来说,不要写大堆的页面代码真的很舒服。如是我又抱上了她,说一点可能让Java程序员心里不爽的话:自从上了ASP.NET,感觉非常好,而且她还很年轻,这次的功能大改进,够我搞上一段时间了, 他家的东西发展真快,一句话,ASP.NET MVC 3越来越让我菊紧。
ASP.NET MVC的主要组件
所有概念都围绕下面三个主要组件展开:
· 模型(用M表示):模型是负责表现底层数据库模式的业务对象,容纳MVC应用程序的数据/状态。
· 视图(用V表示):视图指的是应用程序的UI,在ASP.NET MVC应用程序中,它通常就是一个.aspx和.ascx文件。
· 控制器(用C表示):控制器是ASP.NET MVC框架应用程序的核心,它负责给客户端呈现适当的视图,执行相关的行为方法,从模型获取数据,然后填充到视图,或从视图获取数据,然后更新模型等。
图1展示了MVC模式三大组件之间的相互关系。
ASP.NET MVC 3框架的7大顶级功能
Visual Studio对Razor的智能提示支持
Visual Studio和免费的Visual Web Developer Express提供了对Razor-based 视图模板的支持。当你在razor based视图模板里编辑时,支持HTML, C#, VB, JavaScript 和 CSS的智能提示。
ASP.NET MVC框架降低了并行开发的复杂性
当你在Visual Studio 2010中创建ASP.NET MVC应用程序时,你会发现在Visual Studio IDE的解决方案下自动创建了Controller(控制器),View(视图)和Model(模型)三个文件夹,模型,控制器和视图必须分离成不同的文件。
URL路由,控制器响应请求
和一般的ASP.NET应用程序不一样,ASP.NET MVC应用程序请求不是由磁盘上的文件,如.aspx文件产生的,而是由控制器直接产生的,下面是一个请求URL格式示例:
支持测试驱动开发
由于MVC架构是松散的,构建单元测试用例变得很简单,它使测试驱动开发成为可能,例如,如果你有一个正常的.aspx.cs页面,你想为它建立单元测试用例,复杂度很高,因为:
· 你必须为你的页面代码隐藏类创建实例;
· 隐藏代码将指向ASP.NET控件;
· 为事件(如GridView_RowDataBound)创建单元测试用例很困难。
在MVC模式下,文件背后没有任何代码,也没有UI元素引用,使任务变得非常容易,你需要做的仅仅是指向控制器的ActionMethod,点击右键选择“创建单元测试”。
HTML辅助方法的可用性
ASP.NET MVC视图是由HTML驱动的,你不用使用任何ASP.NET服务器控件,ASP.NET MVC为此专门提供一堆HTML辅助方法,使视图开发任务变得更简单,最爽的是开发人员可以获得这些HTML辅助方法的100%智能提示。
模板功能
模板功能是ASP.NET MVC 2.0版本才引入的新功能,此功能允许你创建一个共享的局部视图,可以在其它视图中直接使用它,用于编辑模板功能的HTML辅助方法有:Html.EditorFor,Html.Editor和 Html.EditorForModel。
使用数据注释属性进行验证
ASP.NET MVC框架提供了一些数据注释属性用于数据验证,这些属性用来装饰模型暴露的字段,下面是其中一部分属性:
· Required
· DisplayName
· StringLength
· ScaffoldColumn
· Range等。
ASP.NET MVC CRUD实现:脚手架可用性
在日常的应用程序开发中,开发人员花在写代码上的时间是最多的,但大多数时候都是重复做数据项的创建(C)、读取(R)、更新(U)和删除(D)操作,ASP.NET MVC框架为CRUD操作提供了一个脚手架,当你创建控制器时,你可以选择让框架帮你创建好CRUD操作的行为方法
ASP.NET 3 RC版(release candidate)。你们可以从这里进行下载。