ASP.NET MVC是微软公司的一款Web开发框架,整合了“模型-视图-控制器”架构的高校与整洁、敏捷开发最现代的思维与技术,以及当前ASP.NET平台最好的架构。ASP.NET MVC是传统ASP.NET Web Form的一个完善的替代品。我们需要了解的是ASP.NET为什么创建ASP.NET MVC与它的前版本和替代品之间的比较,最后需要概述ASP.NET MVC5的新特性以及本书的内容。
首先我们必须要知道的是ASP.NET WebForm开发是一种了不起的思想,但事实证明它更加复杂,复杂的点一共有六个,我们分别进行了解:
1、视图状态(ViewState)重负:跨请求地维护状态的实际机制导致在客户端与服务器之间传输大块数据。这种数据集市在最适度的Web应用程序中,也可能达到数百KB,而且它来回于各次请求之间,导致很慢的相应时间,并增加了服务器的带宽需求。
2、页面声明周期:连接客户端事件与服务器端时间处理器代码的机制(是页面部分声明周期),格外复杂和棘手。
3、关注点分离的错误:ASP.NET的后台代码提供了一些手段,将应用程序代码从它的HTML标记中提取出来。并放到一个独立的后台代码类中。这种逻辑与表现分离曾经得到了广泛的赞许,但事实上,又鼓励开发者在这些怪异的后台代码类中将表现代码(如操作服务器端控件树)与它们的应用程序逻辑(如维护数据库数据)混合在一起,最终导致结果是脆弱和难以理解。
4、HTML上的受限控制:服务器控件将自己渲染成HTML,但并不是你所希望的那种必要的HTML,在ASP.NET之前,这种HTML输出通常不符合Web标准,或者说不能很好的使用CSS。而且,服务器控件会生成不可预知且复杂的ID标签属性,这些ID难以用JavaScript进行访问。这些问题在ASP.NET 4和ASP.NET 4.5中改善了不少,但要得到我们所希望的HTML,仍然需要技巧。
5、有缺陷的抽象:WebFrom试图尽可能地隐去HTML和HTTP(这是通过Web Form的抽象层完成的)。当你试图实现自定义行为时,时常需要放弃这种抽象,这就迫使我们采取回发事件机制的逆向工程,或采取笨拙的方法(这样才可能绕过Web Form的抽象层,但给编程造成了难度),以使它生成所希望的HTML。再则,这种抽象可能对有能力的Web开发者构成一个极大的障碍(由于编程难度,给希望实现自定义行为的开发人员造成一定的障碍)。
6、低可测试性:ASP.NET的设计者可能没有预测到,自动测试会成为软件开发的主要部分。因此,他们设计这种紧耦合体系结构不适合于单元测试,导致集成测试也很具有挑战性。
但是Web Form擅长速攻,而且有一天之内就能够建立和运行一个相当复杂的Web程序。问题就是创建的程序难以测试和维护。
当今的Web开发
自Web Form首次发布以来。Web开发技术一直在迅速的发展,集中表现在如下的几点:
一、Web标准和REST
近年来,朝着Web标准兼容的趋势在增长,Web网站也在比以往更为广泛的设备和浏览器上使用。Web标准(HTML、CSS、JavaScript等)使人们可以在不同的设备上享受一致的浏览体验。现代Web平台不可忽视这种商业环境和开发者对Web标准兼容的准求。
HTML5已经进入主流运用范围,并给Web开发人员提供了丰富的功能,让客户端能够执行一些以前由服务器独自负责的工作。这些功能以及日趋成熟的JavaScript库,例如,AngularJS、Jquery、JQuery UI和jQueryMobile等,这就意味着标准已经变得更为重要,并已经成了富Web应用程序的重要基础。
转载于:https://blog.51cto.com/cpx1975/1950100