6.2 MVC开发模式
学习目标
了解MVC开发模式。
ASP.NET MVC模式是基于MVC开发的一个易于被测试的框架,它可以替代WebForm模式创建Web应用程序,集成了现有的ASP.NET功能,具有易于单元测试、可扩展、可替换等特征;并且在应用程序开发过程中,不需要数据回传,也不需要在页面中保存视图状态,开发者可以完全控制页面呈现过程;同时它也支持WebForm中的有关特性,如用户控件、母版页、数据绑定、本地化等。
6.2.1 相对于WebForm模式,MVC框架开发模式的优势
(1)服务器端处理和客户端呈现速度更快。由于MVC只是简单处理“模板”,很少使用服务器控件,而且不需要构建复杂的控件树,因此,服务器处理时间和客户端的呈现速度都有很大的提高。
(2)可以通过程序完全控制最终生成的HTML代码,不会像传统的aspx页面转换成HTML页面会生成很多垃圾代码而增加网页的存储空间,进而增加了网络流量而降低了网页的打开速度。
(3)MVC将业务逻辑与页面逻辑分离,可以不在ASP.NET进程中执行控制器,很方便地就可以实施单元测试。
(4)MVC限制了ViewState的使用。传统的WebForm模式利用ViewState保存表单的状态信息,由于Web B/S程序本身的限制,ViewState存储数据需要在隐藏表单域中存放很多信息,这会大大增加页面的字节数,导致网页加载变慢。MVC克服了这个缺点,从架构上限制了ViewState的使用,在ViewState存的值并不会序列化到客户端去的,它的有效性是在一次请求的上下文中完成。
(5)MVC框架中没有PostBack和页面回发事件机制,提交表单基本使用Web原生表单方式,传输数据量也更为合理。
6.2.2 相对于WebForm模式,MVC框架开发模式的缺点
(1)MVC不使用视图状态维护状态信息,必须寻找其他方法管理状态信息。此外,依赖视图状态和回发的服务器控件将不再按照MVC应用程序中的设计方式工作。因此,不能像传统WebForm一样使用服务器控件;而微软目前提供的控件比较少,需要自己编写代码实现一些功能。因此,对于中低级开发人员来说,使用MVC模式开发效率较低。
(2)对于大型数据处理比较困难。MVC使用LINQ技术处理数据库,因为没有现成的一些数据绑定控件,在处理大量而且复杂的数据时实现比较困难。
(3)对于初学者入门学习MVC开发模式有些难度,容易入门,不易精通。