目前,ASP.NET中两种主流的开发方式是:ASP.NET Webform和ASP.NET MVC。
• 服务器端控件
• 一般处理程序+Html静态页+Ajax
• 一般处理程序+Html模板
WebForm 优点
1、支持事件模型开发。得益于丰富的服务器端组件,webfrom开发可以迅速的搭建web应用
2、使用方便,入门容易
3、控件丰富
WebFrom 缺点
1、封装太强,很多底层东西让我们初学者不是很明白
2、入门容易,提升很难
3、复杂的生命周期模型学习起来并不容易
4、控制不灵活
5、ViewState处理
• 2009年第一个开源项目版本发布
• 更加简洁,更加接近原始的“请求-处理-响应”
• 更加开发、更多的新的特点、社区活跃
• 不会取代WebForm
• 底层跟WebForm都是一样的。管道上不同的处理而已
MVC是微软2009对外公布的第一个开源的表示层框架,这是微软的第一个开源项目
MVC目的不是取代WebFrom开发,只是web开发的另外一种选择
MVC架构模式诞生30年后,因为其提供的良好的松耦合、易于扩展、高可维护性等优点,重新在开发社区火起来。作为微软全新的Web网站开发框架,ASP.NET MVC提供了全新的开发模式,完美支持经典的MVC架构模式。为.NET工程师提供了完全不同的开发体验。
越来越多的公司和开发者开始加入到MVC开发模式中来,使他进入了一个高速发展的状态,而现在MVC已经变成了ASP.NET下的一种常见的开发模式,它能让你学习一种完全不同的架构,所以这是我们有理由也有必要掌握的一项开发技能。
要有C#、ADO.Net、html、javascript、ASP.Net WebForm的基础
MVC 模式两种理解:一种是表现模式,另外一种是架构模式。这里我主要将其理解为表现模式。
它将应用程序分成三个主要组件即:视图(View)控制器(Controller)模型(Model)
M:Model 主要是存储或者是处理数据的组件Model其实是实现业务逻辑层对实体类相应 数据库操作,如:
CRUD(C:Create/R:Read/U:Update/D:Delete)。它包括数据、验证规则、数据访问和业务逻辑等应用程序信息。ViewModel:视图模型
V:View 是用户接口层组件。主要是将Model中的数据展示给用户。ASPX和ASCX文件被用来处理视图的职责。
C:Controller 处理用户交互,从model中获取数据并将数据传给指定的view
表现模式(UI/Presentation Pattern)三个角色
Model:用于存储数据的组件
View:根据Model数据进行,内容展示的组件
Controller:接受并处理用户指令(操作Model),选择一个View并输出内容
1、很容易将复杂的应用分成M、V、C三个组件模型。通过model、view和controller有效的简化了复杂的架构,体现了很好的隔离原则
2、因为没有使用server-based forms 。所以我们程序员控 制的更加灵活,页面加干净
3、可以控制生成自定义的url。对于seo友好的url更是不在话下
4、强类型View实现,更安全、更可靠、更高效。
5、让web开发可以专注于某一层。更利于分工配合适用于大型架构开发
6、很多企业已经使用MVC作为项目开发框架,招聘明确要求熟悉MVC开发模式,我现在做的项目架构就是mvc+ef+wcf+…
MVC 代码和页面彻底分离,WebForm:codebehind技术没有完全对代码和前台页面进行分离
个人的感觉:自从接触了MVC,就再也不想拖控件了...