MVC应该算是一个古老的Design Pattern了,无论是在win form程序还是web程序中,它的应用都是比较广泛的。MVC也是我在学校中学习到的第一个设计模式。终于,可以在Asp.Net中应用了。本文的例子所用的是ASP.NET MVC Preview 2,可以在这里下载。
\n
Create a new MVC project
\n
菜单File->New Project ->Asp.Net Web MVC Application
新创建的项目是一个完整的可以运行的Sample程序。
新创建的MVC Project和传统的Asp.net web application不同,MVC Project包含有如下四个文件夹:
\n
- Content Folder : 这个文件夹中放一些支持文件,如CSS等。
\n - Controller Folder :这个文件夹中放所以的Controller文件
\n - Models folder : 这个文件夹存放所有的data model文件,包括:LINQ to SQL DBML文件,Entity文件
\n - Views folder : 存放所有的页面文件,包括master文件。Master等需要被共享访问的需要被放在一个Shared子文件夹中。
\n
\n
Advantages of an MVC-Based Web Application
\n
- 把程序分为Model, View和Controller之后,更容易控制程序的复杂性
\n - 没有了传统的Asp.Net中的viewstate和server端的form,使得开发人员可以实现对页面的完全控制。当然也失去了viewstate和server端form带来的各种好处
\n - 支持测试驱动开发
\n
\n
Features of the ASP.NET MVC Framework
\n
- 应用程序的业务分离,支持测试驱动开发
\n - 可扩展和支持插件的Framework。开发人员都可以根据自己的需要修改甚至替换Asp.Net MVC Framework的各个component,也可以以插件的形式开发自己的View Engine,URL Routing Policy等各种component。Asp.Net MVC Framework甚至支持依赖注入(Dependency Injection)和控制反转(Inversion of Control)等容器模式。
\n - 强大的URL-Mapping功能。使得URL地址更有意义(REST)。URL中不再包括文件扩展名。
\n
\n对很多传统Asp.Net特性的支持。如<%=%>, user control等。 \n
\n