提出系统开发三层架构的概念很早了,目前也是各企业单位采用最多的架构之一。以前用此架构开发的时候感觉思路比较清晰,各个层的分工明确,尤其是开发比较有规模的系统的时候,但是如果做个小网站之类,用多层概念有点像杀鸡用牛刀的感觉。

    三层架构的设计理念很不错,可是WebForm的显示样式、WiewSate\、事情驱动模型等曾无数层让我感觉不爽。冗余的代码让网速大大的降低,不停的与服务器交互也让客户的体验的效果不好,为此不得不舍弃那些封装好的服务器控件,回到原来的开发方式,甚至在有的项目开发商上本人干脆就舍弃.NET,直接采用PHP或者ASP,开发速度与设计效果反而更加顺手些。尽管如此,并不意味着.NET的问题,其实还是我们的实践经验和架构理念不够成熟造成的,易学难精,现在回头想想,ASP.NET运用的好的话,精通的人一样的可以像孙悟空的金箍棒一样大小可变,为你所用,特别当微软推出MVC以后,针对以前所遇到的弊病可以得到解决了。下面说一下我对MVC学习。

    说MVC首先想到是它的“祖父”ASP与“父亲”ASP.NET WebForm。 ASP就像是拌面,各种调料、蔬菜等和面加载一起做成了一道面食,如果出现返工需要再次重新分配的话,工作量就会变的大许多。而ASP.NET WebForm开启了代码分离的概念(Code Behind),将设计与程序代码分开,通过VisualStudio可视化开发与服务控件等组件化的技术,让开发更加快速方便,只关注变化的地方,它就是像是快餐,主食与蔬菜分开,问题是快餐的营养和味道并不是最好的,可选择的余地也是有局限的。相比以上两者,MVC更加优越,能写出更好的分离架构,它将我们以前提到的三层架构以一种成熟的技术模式展现给我们,来提高开发者的开发体验和项目可的维护性。

    MVC注重的的是要了解网址路由(Routing)与运行生命周期,Routing有两个目的:一是将HTTP发送的请求映射给Contraller与Action进行处理。二是输出网址响应到浏览器。

    MVC就是数据模型、显示层与控制器的意思。Model:数据模型,数据访问需要依赖它。一般是首要开发的部分,如:设置数据的必填性。Contraller:控制器,它是架构的核心,负责处理各种请求。如:窗口的重新跳转与停留。View:负责数据的呈现,如:利用AJAX查询的修改。

    两者继承的类别分析:最终都是导向到 IHttpHander类别来处理

 

名称继承类继承类
WebFromPageIHttpHander
MVC4.0MVCHandlerIHttpHander

   

 微软Web开发技术基础架构:

 

MVCWebPageWebFormsSinglePageWebAPISingleR
WebSitServices
ASP.NET

 

    需要舍弃WebForm技术:

            ViewState PageTrace 和部分Server Contral.