MVC模式是一个大家很熟悉的设计模式,微软的asp.net mvc framework是给asp.net web forms提供了一个可替换的asp.net方案。
- Models:Model对象是程序的数据域,主要是为了存储程序的状态信息,经常的数据会存放到数据库中。
- Views:View是显示程序UI的,UI通过Model数据创建的,这里要说一下Model在一些小的应用里只是一个逻辑上的概念,不一定有一个物理的存在。
- Controllers: Controllers是通过Model工作,Controllers包含应用程序逻辑的操作模式,处理用户交互,并选择View显示到浏览器
asp.net mvc framework的代码是在命名空间System.Web.Mvc中的,它是System.Web命名空间的一部分。基本上以后也是.net的核心,asp.net mvc的好处可以把一个应用可以分成几块不同部分-业务逻辑,UI逻辑和输入逻辑,达到松耦合的目的。这样便于单元测试,我们也知道传统的asp.net web forms的单元测试是很麻烦的。
asp.net mvc vs asp.net web forms
那我们什么时候选择用asp.net mvc,什么时候选用asp.net web forms呢?
老外有了一张图表可以做个参考 这里是我的翻译:
需求 | 得分 | Selection |
干净的HTML | +4 |
|
使用RAD(快速应用程序开发)设计 | -5 |
|
使用TDD(测试驱动开发) | +8 |
|
可测试性 | +7 |
|
数据依赖应用(??)Data-heavy application | -10 |
|
从Web Forms升级 | -25 |
|
需要和windows froms程序相同的事件驱动模型 | -7 |
|
在敏捷开发团队工作 | +4 |
|
需要分离模块开发 | +10 |
|
建立一个概念证明或原型?? Creating a proof of concept or prototype | -6 |
|
SEO-搜索引擎优化 | +3 |
|
RESTful interface | +3 |
|
需要保存请求状态 | -2 |
|
创建一个Internet应用 | +3 |
|
创建一个Intranet应用 | -3 |
|
需要通过mobile,web,和REST API在相同的应用中支持多个视图 | +7 |
|
需要使用第三方的asp.net web forms的控件 | -10 |
|
需要控制URL的生成 | +5 |
根据你项目的要求 对应旁边的分数进行相加 得到的结果 对照下面的分数 可以做个选择了:
分数 | 推理 |
< -50 |
显而易见 使用Web Forms |
-25 |
强烈推荐使用Web Froms |
-10 |
推荐使用Web Forms |
-3 |
基本推荐使用Web Forms |
0 |
Web Forms 和 MVC随便取 |
+3 |
基本 MVC |
+10 |
推荐MVC |
+25 |
强烈MVC |
> +50 |
显而易见 使用MVC |
这个表 基本上是歪歪出来的,使用需谨慎