Bootstrap及自己学ASP.NET MVC之一:开篇有益

摘要:

ASP.NET
MVC是微软的Web开发框架,结合了范-视图-控制器(MVC)架构的有效和整洁性,敏捷开发极前沿的思辨与技巧,以及现存的ASP.NET平台最好之局部。它是风ASP.NET
Web Form完整的代技术。在斯篇稿子中,我用介绍为什么微软创造了ASP.NET
MVC,他以及他前头的技术发生什么不同。

 

ASP.NET历史

若果惦记了解ASP.NET
MVC的史,需要事先了解ASP.NET的历史。ASP.NET在2002年开创。他做了ASP.NET
WEB Form技术、ASP.NET IIS技术与.NET技术。

透过WEB
Forms,微软经过将用户接口(UI)建模成一密密麻麻分级的劳动器端控件对象,隐藏了HTTP(和它的无状态性)和HTML(那时候多开发者还未熟识他)。每个控件在HTTP请求过程被保持同笔录自己之状态,在用的时将协调表现为HTML元素,并机关连续客户端事件(例如按钮事件)和对应的服务端事件处理器代码。实际上,Web
Forms是一个计划成为能在Web上发送经典事件驱动用户接口(GUI)的那个的抽象层。他的想法是于Web开发感觉就比如是Windows
Form开发同。开发者不需要处理同多重相互依赖的HTTP请求与应。他们仅需要关心UI逻辑,微软无缝地拿Windows桌面开发者师传送至Web应用世界。

 

ASP.NET缺点

  • 视图状态负担:事实上的以跨请求状态里的掩护状态机制(View
    State)导致了于客户端以及劳务器端之间充分之数码传。传输的数码在非常简单的Web中还或达成几百KB,并且以每个请求中来扭转传送,导致大慢的应时间,以及长了服务端的带动富得。

  • 页面生命周期:连接客户端事件和服务端事件处理器代码的建制(一部分凡页面生命周期)可能那个复杂和细密。很少之开发者能够成功地处理及控制在运行时的层级关系要休到手视图状态错误或发现部分事件处理器处理器执行时飞地砸了。

  • 谬误的分开关注点:ASP.NET Web
    Form代码隐藏模型提供了同样栽将运代码和HTML标记分离之道。这种分离业务逻辑和呈现的计已经遭遇广大地欢迎。但是,在现实上,开发者被鼓励去用呈现层代码和应用层代码糅合到手拉手顶同样的奇怪的代码隐藏类。(例如,将处理服务端控件树和处理数据库的代码)。导致脆弱和麻烦知晓的结果。

  • 零星的针对性HTML控制:劳动端控件将协调表现为HTML,但是并无是若势必你想使的HTML。早期的ASP.NET版本,HTML输出不可知符合Web标准,不可知好之动层叠样式表(CSS),服务端控件产生不可预料的扑朔迷离的ID属性值,使用JavaScript很为难顾他们。这些题材在近来的Web
    Forms发行本中改善了许多,但是还是碰头获得无公预期的难处理的HTML。

  • 起裂口的肤浅:Web
    Forms尝试当其他可能的下隐藏HTML和HTTP。当您于推行客户行为时,你时放弃这种肤浅,逼迫你扭曲使用会发事件机制还是利用迟钝的艺术吃他生而想要之HTML。这时候,所有的WEB
    Forms抽象都改为了Web开发者们让人寒心的阻。

  • 低测试性:Web
    Forms设计者们从未预料到自动化测试会化软件开发过程中一个要害的机件。不发生意料的,他们设计之严密的耦合架构是匪合乎单元测试的。集成测试为如出一辙给挑战。

Web
Forms不是还是坏,微软一度在加强他的灵活性上授了不少拼命,简化开发流程,甚至打ASP.NET
MVC中拿了片特性。当你用快速开之早晚(一个相对小复杂的web
app一龙能出了的时光)Web
Form更胜一筹。但是只有您在付出的时大细,否则你用发现而创造的应用程序非常难以测试和护卫。

 

ASP.NET MVC主要优点

当2007年十月,微软揭晓了一个初的MVC开发平台,建造在ASP.NET核心平台之上,清楚地计划成为适应改革技术(例如Rails)以及Web
Form批评者们的直响应。下面有讲述新的阳台如何胜了Web
Forms的同如何将ASP.NET技术更带顶了时边沿。

别MVC架构模式与ASP.NET
MVC框架比较根本。MVC模式不是新东西-往回到1978年当Xerox
PARC的Smalltalk工程-但是现行同日而语一个模式,他取了Web应用的英雄的迎。有下几乎独因:

 

  • MVC架构

用户跟MVC应用交互按照本之大循环:用户有一个行事,作为响应系统改变它们的数据模型,发送更新后的视图给用户。然后重新循环。这对产生同样多级的HTTP请求和接响应的Web应用特别方便。

Web以迫使组合有技巧(例如:数据库,HTML和实行代码),将她们分开到不同的层中。从构成这些重叠的过程被生出的模式自然地映射成了MVC概念。ASP.NET框架实现了MVC模式,在贯彻过程遭到,改善了关注点的离别。事实上,ASP.NET
MVC实现了MVC模式相当部分的内容,特别符合Web应用。

 

  • 唯独扩展性

MVC框架建造被同文山会海之互独立的基于.NET接口的组件上,并依据抽象基类。你可以非常容易地更迭组件,例如用不同的君协调履之零件替换路由于网、视图引擎和控制器工厂。大概来说,MVC框架为您三单选项:

  1. 以默认标准的零件(对大多数施用来说够了)
  2. 动继承类替换默认的零部件行为
  3. 下新的基于接口及抽象类的零件替换默认组件

 

紧密地决定HTML和HTTP

ASP.NET产生干净,标准的记HTML。基于HTML帮助类似方式有符合标准的输出,但是出一个针锋相对于Web
Forms更具哲学意义及之变更。不是出相同片你莫可知说了算的HTML,MVC框架鼓励你手工写简单优雅的故CSS装饰的符。

理所当然矣,如果你莫思量抛弃掉一部分现的复杂性的UI元素小部件,例如日期控件或者层级菜单,ASP.NET
MVC很轻使最佳的UI框架例如jQuery UI或者Bootstrap CSS框架。

ASP.NET MVC 产生的页面不含有其他视图状态数据,因此他们比ASP.NET
WEB产生的页面还有些。

ASP.NET
MVC与HTTP无缝工作。你可以控制在浏览器和服务端之间传递的求,因此若可尽量细微地决定你的用户体验。AJAX变得死去活来轻,没有了其余机关的由客户端到服务器端接口的回传。

不过测试性

 MVC架构让您的应用程序开始产生可维护性和可测试性,因为你当然地分手了不同的应用程序关注点。然而,ASP.NET设计者们并无留于此。为了支持单元测试,他们让框架设计成为组件为目标的计划,确保每个分开的有都能服务单元测试和Mocking工具的急需。

而测试性不单单是单元测试。ASP.NET
MVC应用程序也足以很好之跟UI自动化测试一起坐班。你得写测试脚论套用户操作而休用失去担心操作的凡呀一个HTML元素、CSS类或者框架来的ID,而且你不要顾虑页面HTML结构无预期的扭转。

 

强大的路由机制

趁着Web应用技术之换代。URL样式也来了扭转。像这样的URL: 

/App_v2/User/Page.aspx?action=show%20prop&prop_id=82742

易得越来越少了。被调换成一个双重简便干净之底下的格式:
/to-rent/chicago/2303-silver-street

发出局部吓的关心URLs结构的由来。首先,搜索引擎更偏重在URL上找到的要紧字。搜索”rent
in
Chicago”更易于出现在寻觅中。其次,许多Web用户现在足亮URL,能够直接以地点烂输入URL。第三,当人们开始知道URL结构后,他们再度发出或链接他,跟朋友分享其,甚至当电话里大声的朗读其。第四,他并没露你的应用程序的技术细节、文件夹和文书称。

根之URLs在原先的框架中那个为难实施,但是ASP.NET
MVC使用一个名URL路由的特性来提供默认的干净URLs。这给您可操纵而的URL模式,以及与你使用中的关联。让您轻易地创建有含义对用户中的URLs的模式,而休用从于一个定义好的模式。当然,这表示你可好地定义一个你愿意的时尚之REST样式的URL样式。

 

修建被ASP.NET平台最好之有的

微软现存的ASP.NET平台提供了一个成熟之、经过查看之零部件集合,适合开发中高效的底Web应用体系。

先是最鲜明的,因为ASP.NET
MVC是基于.NET平台的,你得应用任何.NET语言访问同一之API特性-不仅是MVC自身,.NET扩展类框架和广大的老三方.NET框架生态圈也同。
从,已经做好的ASP.NET平台特色-例如验证、成员身价、角色、Profile和国际化-能够抽而于开及保障WEB系统不时的代码,并且这些特色在MVC框架里同在经典WEB
Form工程里同中。ASP.NET平台底层为MVC框架提供了WEB开发丰富的工具集。

 

ASP.NET MVC是开源之
勿像以前的微软Web开发平台,你可以擅自地下载ASP.NET
MVC源代码,甚至修改及编译你自己的版本。

 

相关文章