ASP.NET MVC
微软同时又推出了类似Web MVC的ASP.NetMVC,但是在截获请求部分还是存在着一些差别,具体请看下图:
ASP.NET MVC的具体工作流程为:
当用户从浏览器输入地址,发出页面请求,到返回结果,一般经过以下步骤:
当用户输入地址,发出请求时,实际上就是向控制器发出相关命令
控制器接收用户指令后,向模型请求获得相关数据
模型将对应的数据返回给控制器
控制器将有关数据发送到指定视图
指定的视图呈现指定的数据
Web Forms构建web相对容易,开发人员只需在一个可视化设计器中拖放控件,设置相关属性即可,通过编写代码来响应事件,使得对于程序的逻辑操作非常直观。但是,开发人员很难了解背后HTML是如何运行的,同时,如果没有合理控制ViewState的话,页面的尺寸将大大超过预期,使得页面打开相当缓慢,随着web应用的复杂化,不容易测试也是开发中面对的一个问题.
MVC避免了Web Forms所带来的复杂性,没有数据回传,没有页面中保存视图状态,开发者可以完全掌握页面呈现的全过程,使用模型、视图及控制器将web划分为不同的组件,有利于开发与设计的分离,也提高了程序的可维护性和扩展性,特别是利于应用程序的测试,可以比较容易的实施测试驱动开发。
两种开发技术并存。 MVC只是给开发者提供了开发web应用程序的一种选择,而不是替代传统的Web Forms,这两种技术应用于不同的场合具有不同的优缺点。具体两者之间的比较分析,可以查看WebForms vs. MVC。