zoukankan      html  css  js  c++  java
  • ASP.NET Webform和ASP.NET MVC的区别

    ASP.NET WebForm

    ASP.NET Webform提供了一个类似于winform的事件响应GUI模型(event-driven GUI),隐藏了HTTP、HTML、JavaScript等细节,将用户界面构建成一个服务器端的树结构控件(Control),每个控件通过ViewState保持自己的状态,并自动把客户端的js事件和服务器端的事件联系起来。这种做法使得开发WinForm和WebForm程序具有相近的开发体验,填平WinForm开发(有状态、面向对象的)和WebForm开发(无状态、面向HTML的)之间的鸿沟。

    这种设计在大型网站开发的时候,暴露出一系列弱点:

    1. ViewState可能过大。访问量非常大的情况下,viewstate占用的流量相当可观,这样直接影响页面传输速度。
    2. Page Life Cycle:过于复杂。比如控件的Init事件在Page的Init事件之前执行,而Load事件是控件后执行。事件处理的事件
    3. 缺乏对HTML的控制:一般每个控件负责自己的HTML输出,开发人员无法修改输出的HTML结构,除非自己写控件。而且HTML元素的ID比较复杂,也不便于js访问。
    4. 界面设计和逻辑开发的关注分离做的不好:Webform开发是一个页面对应一个code-behind class,原本的目的是将展示和逻辑分离。但是在实际开发的时候,面对某些需求,还是经常会在class中写一些控制界面展示的代码。
    5. 对测试的支持不好:页面和code-behind class绑定在一起,无法单独对逻辑进行测试;不支持单元测试。

    ASP.NET MVC

    ASP.NET MVC的优点如下:

    1. 采用MVC架构:分离了关注点,比如开发Controller的时候,只需关注如何处理交互,从request中获得什么数据,业务逻辑交给Model处理,还需要把哪些数据传给页面用于展示,如何展示交给View处理。
    2. 更好的扩展性:ASP.NET MVC框架由一些列独立的组件构成,你可以轻松替换,如路由系统、the View Engine、the controller factory或者其它框架的组件。
    3. 更好的可测性:关注点的分离另外一个好处就是更好的可测性。
    4. 能够完全控制输出的HTML。
    5. 强大的路由功能。

    参考

    1. Pro ASP.NET MVC Framework
      1. http://www.asp.net/mvc
      2. http://aspnetwebstack.codeplex.com/
    2. ASP.NET Web Forms Weaknesses
    3. MVP模式
    4. Monorails
      1. http://yok.cnblogs.com/archive/2005/11/05/269383.html
      2. http://www.cnblogs.com/firstyi/category/108880.html
    5. Ruby on Rails
      1. http://www.cnblogs.com/hardrock/archive/2006/08/18/480668.html
      2. http://www.cnblogs.com/dahuzizyd/category/97947.html
  • 相关阅读:
    LeetCode-434-字符串中的单词数
    LeetCode-415-字符串相加
    字符串
    序列
    元组
    列表
    repr()与str的区别
    输出函数print()
    输入函数input()
    MySQL中快速复制数据表方法汇总
  • 原文地址:https://www.cnblogs.com/jiangqw/p/3498605.html
Copyright © 2011-2022 走看看