ASP.NET Webform和ASP.NET MVC的区别
最近公司招.NET开发,面试了很多人,都说自己做过ASP.NET Webform和MVC的开发,于是问:“ASP.NET和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的)之间的鸿沟。 这种设计在大型网站开发的时候,暴露出一系列弱点: ViewState可能过大。访问量非常大的情况下,viewstate占用的流量相当可观,这样直接影响页面传输速度。 Page Life Cycle :过于复杂。比如控件的Init事件在Page的Init事件之前执行,而Load事件是控件后执行。事件处理的事件 缺乏对HTML的控制:一般每个控件负责自己的HTML输出,开发人员无法修改输出的HTML结构,除非自己写控件