正确认识WebForm与Asp.NET MVC

1.传统WebForm开发中存在的一些问题

 传统的ASP.NET开发中,微软的开发团队为开发者设计了一个在可视化设计器中拖放控件,编写代码响应事件的快速开发环境。然而,它所带来的负面效应是: 

  •  由于控件封装了很多东西,开发者很难了解这背后的HTML是如何运作的
  • 容易得到一个包含大量ViewState的页面,使得页面尺寸远远超过所需的内容,使得页面的打开速度较慢
  • 不容易被测试

2.什么是MVC?


 MVC(Model-View-Controller,模型-视图-控制器模式)是软件工程中的一种软件架构模式。它把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

3.什么是ASP.NET MVC?


ASP.NET MVC是微软的开发团队基于MVC开发的一个易于被测试的框架。它具有以下特性:

  • 没有数据回传
  • 没有在页面中保存视图状态
  • 开发者可以完全掌控页面的呈现过程 
  • 易于单元测试
  • 易于测试驱动开发
  • 可扩展、可替换
  • 支持WebForm中的有关特性,如:用户控件、母版页、数据绑定、本地化等
  • 不在基于文件目录结构,而是将URL映射到控制器中

 

4. 为什么使用ASP.NET MVC?

  • 易于进行单元测试
  • 易于进行测试驱动开发
  • 避免了WebForm中大量的ViewState导致页面文件变得臃肿

5. MVC与三层架构?  

 

  • MVC是一种模式
  • ASP.NET MVC是一个基于MVC模式的开发框架
  • 三层架构是一种架构

至于区别,可以严格的从概念上区分开来。

下图是MVC与三层架构的对应关系

 


6. MVC与Webform如何抉择?  

 

7. 两种技术并存

  •  ASP.NET MVC框架只是给开发者提供了开发web应用程序的一种选择,并不是要取代Webform
  • 这两种技术各有优缺点,开发者需要根据实际情况,选择对应的技术
  • 有时候,可以在同一个项目中混合使用这两种技术

8.ASP.NET MVC与Webform技术的架构图

 

 

总结:
看完本文,相信ASP.NET WebForm与ASP.NET MVC的选择相信大家应该可以做到心中有数了,我始终觉得,很多时候并不是什么技术好不好的问题,而是适合不适合不适合的问题或者能否把它用好的问题。
打个比方:如果让千里马犁地,恐怕未必能达到理想的效果,最终可能还会抱怨,什么破马,一点劲都没有。

 

Untitled Page 作者:深山老林
出处:http://wlb.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2009-12-07 21:56 深山老林 阅读(5226) 评论(21) 编辑 收藏

 回复 引用 查看   
#1楼2009-12-07 22:09 | 沉默杨仔      
很多虚拟主机还不支持MVC,目前还只在自己电脑上用用。
 回复 引用 查看   
#2楼[楼主]2009-12-07 22:11 | 深山老林      
@沉默杨仔
是的

 回复 引用 查看   
#3楼[楼主]2009-12-07 22:13 | 深山老林      
@沉默杨仔
不过还是很多公司都已经使用了asp.net mvc,这些公司都有自己的独立服务器。还不至于只在自己电脑上用用。

 回复 引用 查看   
#4楼2009-12-07 22:21 | qqloving      
恩有利
我等4.0出来就用MVC

 回复 引用 查看   
#5楼2009-12-07 22:53 | oec2003      
aspnet mvc 刚出时猛学了一阵子
不过没有机会在工作中用

 回复 引用 查看   
#6楼2009-12-07 23:04 | oec2003      
对了 问下楼主的头像是怎么整的
 回复 引用 查看   
#7楼[楼主]2009-12-08 00:07 | 深山老林      
@oec2003
拿软件处理的。

 回复 引用 查看   
#8楼2009-12-08 08:34 | e路狂奔      
引用沉默杨仔:很多虚拟主机还不支持MVC,目前还只在自己电脑上用用。


 回复 引用 查看   
#9楼2009-12-08 08:43 | xuefly      
引用深山老林:
@沉默杨仔
不过还是很多公司都已经使用了asp.net mvc,这些公司都有自己的独立服务器。还不至于只在自己电脑上用用。

可是Asp.Net MVC并没有对服务器有任何特殊的要求啊,怎么会不支持呢?

 回复 引用 查看   
#10楼2009-12-08 09:14 | piaoxue      
引用xuefly:
引用深山老林:
@沉默杨仔
不过还是很多公司都已经使用了asp.net mvc,这些公司都有自己的独立服务器。还不至于只在自己电脑上用用。

可是Asp.Net MVC并没有对服务器有任何特殊的要求啊,怎么会不支持呢?


直接把MVC的DLL放到BIN目录就可以正常使用了,根本不需要服务器支持...

 回复 引用 查看   
#11楼2009-12-08 15:09 | 破^浪      
个人感觉ASP.NET MVC还是比传统的好用
 回复 引用 查看   
#12楼[楼主]2009-12-08 16:40 | 深山老林      
@piaoxue
@沉默杨仔
从8.ASP.NET MVC与Webform技术的架构图上来看,只要有framework3.5+sp1以上的支持就可以了。空间服务商的确没理由不支持mvc的。

 回复 引用 查看   
#13楼2009-12-08 17:02 | Ni      
问一下楼主:
ASP.NET MVC 没有数据回传是什么意思?能否解析一下?谢谢。

 回复 引用 查看   
#14楼2009-12-08 17:13 | 假正经哥哥      
如果是IIS6的就默认不支持
 回复 引用 查看   
#15楼[楼主]2009-12-10 08:13 | 深山老林      
@Ni
指的是postback

 回复 引用 查看   
#16楼[楼主]2009-12-10 08:14 | 深山老林      
@假正经哥哥
跟iis的版本没关系。

 回复 引用 查看   
#17楼2009-12-13 09:49 | onlyfew      
@深山老林
头像是用什么软件处理的?

 回复 引用 查看   
#18楼2009-12-14 11:34 | 戴超      
欢迎各位加入ASP.NET MVC框架超级群!让我们共同学习、进步!ASP.NET MVC一群:40985466人员已满!请其他有兴趣的朋友加ASP.NET MVC二群:14426077(同样可容纳500人的超级群!) 另群:49544745已作为PHP群使用!请慎重加入!欢迎大家的加入!
非常乐意为大家提供一个良好的交流平台!

 回复 引用 查看   
#19楼2010-04-10 20:20 | longgel      
呵呵。写的够详细,谢谢分享
 回复 引用 查看   
#20楼2010-09-14 15:46 | 空呵      
我想了解,怎样在一个项目中混合使用MVC与传统的asp.net?
 回复 引用 查看   
#21楼[楼主]2010-09-14 16:55 | 深山老林      
@空呵
可以在MVC项目中添加WebForm页面,编程方式跟原有的方式没有区别,不过最后要在路由表中进行配置。

公告

英文名:Kevin

位置:中国 北京

职位:技术总监

Email:iamwlb@qq.com

昵称:深山老林
园龄:4年
粉丝:91
关注:9