3.2 ASP.NET的两种开发方式
3.2.1 ASP.NET开发现状
目前,ASP.NET中两种主流的开发方式是ASP.NET WebForms和ASP.NET MVC。从图3-3可以看到ASP.NET WebForms和ASP.NET MVC是并行的,也就是说MVC不会取代WebForms(至少目前是这样),而是多了一个选择,WebForms在短期之内不会消亡,尽管存在许多缺点,但过去许多老项目依旧是使用WebForms进行开发的,虽然许多公司已经在积极地将WebForms项目迁移或升级到MVC项目,但是WebFoms项目依然会存在很长一段时间。
图3-3
3.2.2 WebForms的开发方式
WebForms有以下3种开发方式:
● 服务器端控件。
● 一般处理程序+HTML静态页+Ajax。
● 一般处理程序+HTML模板。
WebForms的请求模型如图3-4所示。WebForms请求的是具体的某一个文件、具体的一个类。
图3-4
WebForms的优点:
● 支持事件模型开发,得益于丰富的服务器端组件。WebFroms开发可以迅速地搭建Web应用。
● 使用方便,入门容易。
● 控件丰富。
WebFroms的缺点:
● 封装太强,很多底层东西让初学者不是很明白。
● 入门容易,提升很难。
● 复杂的生命周期模型学习起来并不容易。
● 控制不灵活。
● ViewState处理,影响性能。
3.2.3 ASP.NET MVC的开发方式
MVC的目的不是取代WebFrom开发,而是Web开发的另外一种选择,但是目前来看,新项目基本上都是使用ASP.NET MVC,很少有使用WebForm的了。这是一种趋势,很好理解,因为有更好的东西,当然要用更好的。
MVC的请求模型如图3-5所示。ASP.NETMVC请求的是Controller中具体的Action方法。
图3-5
1. ASP.NET MVC的特点
● 更加简洁,更加接近原始的“请求-处理-响应”。
● 更加开放、更多的新特点、社区活跃。
● 不会取代WebForms。
● 底层跟WebForms是一样的,只是管道上处理不同而已。
● MVC只是表示层的一种新方式。
2. MVC的优点
● 很容易将复杂的应用分成M、V、C三个组件模型。通过Model、View和Controller有效地简化复杂的架构,体现了很好的隔离原则。
● 因为没有使用server-based forms,所以程序员控制得更加灵活,页面更加干净。
● 可以控制生成自定义的URL,对于seo友好的URL更是不在话下。WebForm要额外做路由重写来实现伪静态的形式。
● 强类型View实现,更安全、更可靠、更高效。
● 让Web开发可以专注于某一层,有利于开发中的分工,更利于分工配合,适用于大型架构开发。
● 很多企业已经使用MVC作为项目开发框架,招聘明确要求熟悉MVC开发模式,有些项目架构就是MVC+EF+WebAPI+…。
● 松耦合、易于扩展和维护。
● 有利于组件的重用。
● ASP.NET MVC更好地支持单元测试(Unit Test)。
● 在团队开发模式下表现更出众。
●MVC将代码和页面彻底分离,分离到了两个文件中,即视图和控制器。WebForm的Codebehind技术没有完全对代码和前台页面进行分离,耦合度太高。ASPX和ASPX.cs是典型的继承关系。
3.学习ASP.NET MVC的原因
MVC架构模式诞生30年后,因为其提供了良好的松耦合、易于扩展、高可维护性等优点,重新在开发社区火起来。作为微软全新的Web网站开发框架,ASP.NETMVC提供了全新的开发模式,完美支持经典的MVC架构模式,为.NET工程师提供了完全不同的开发体验。
此外,越来越多的公司和开发者开始加入到MVC开发模式中来,使它进入了一个高速发展的状态,而现在MVC已经变成ASP.NET下一种常见的开发模式,它能让你学习一种完全不同的架构,所以这是我们有理由也有必要掌握的一项开发技能。
接触了MVC后,就再也不想拖控件了,对MVC会有一种相见恨晚的感觉。