WebForm的理解css
一、 WebForm概念html
ASP.NETWebform提供了一个相似于Winform的事件响应GUI模型(event-drivenGUI),隐藏了HTTP、HTML、JavaScript等细节,将用户界面构建成一个服务器端的树结构控件(Control),每一个控件经过ViewState保持本身的状态,并自动把客户端的js事件和服务器端的事件联系起来。这种作法使得开发WinForm和WebForm程序具备相近的开发体验,填平WinForm开发(有状态、面向对象的)和WebForm开发(无状态、面向HTML的)之间的鸿沟。前端
二、WebForm 请求流程jquery
好比访问 http://www.qidian.com/Default.aspx程序员
一、Http请求(物理地址:Default.aspx)web
①发送请求: 浏览器向服务器发送请求报文,此时由IIS虚拟目录接收。(经过配置过IIS,把网站挂载在服务器上,经过访问虚拟目录的方式访问网站的。)数据库
②转交请求: 服务器端的IIS软件接收到请求后,把请求交给.NET FrameWork进行处理。编程
③建立页面类对象:.NET FrameWork根据请求的地址index.aspx,会建立对应的index_aspx类的对象(页面对象)。浏览器
IIS的内部机制:缓存
实现一个IHttphandler的接口
该接口实现一个ProcessRequest方法
该方法会调用对应页面的Page_load方法
处理的业务逻辑或者是访问数据库的代码
要输出的Html或者其它内容
二、返回给浏览器
①转交回复: 经过IIS传输出给浏览器,要输出的html元素或其余内容(html+js+css等)
②解析为图形界面:浏览器解析html代码,并翻译为图形化界面
如图:
二、 WebForm的优势:
1. 有大量的服务器控件支持,好比:GridView、Repeater等控件能够方便的进行数据绑定,从而减小的大量代码的编写。
2. 学习成本低,因为微软封装的比较深,形成深刻学习的难度加大。
3. 基于事件驱动编程,如:click事件等,aspx和cs文件分离,即显示逻辑和处理逻辑分离。
4. 支持视图状态,每一个控件以“隐藏域”的形式存在当前表单页面未达到“有状态”,即ViewState。
三、 WebForm的缺点
1. 因为使用的ViewState会增长页面的负担,形成性能不是很高。
2. 代码重用性不高,缺乏对并行开发的支持,
3. 由于采用code-behind 代码后植技术,使aspx页面与cs紧密耦合度过高。
4. 对Seo不友好,由于URL指定具体的aspx页面。
5. 由于紧密耦合度过高、使用大量的事件处理函数,不利于单元测试。
2、 MVC的理解
一、 MVC的概念
Asp.netMvc架构模式是一种 低耦合、可测试的web应用程序框架,它是基于CLR和成熟的MVC架构构建的。ASP.NET MVC不支持ViewState和服务器控件。
二、 MVC的请求流程
好比访问:http://www.google.com.hk/FirstPage/Default
一、Http请求(逻辑地址:FirstPage/Default)
①发送请求(FirstPage/Default)
②转交请求(同上)
③建立类对象+方法
.NET FrameWork根据路由配置,解析URL,并建立news类的对象,并调用对象的index方法。经过View方法加载视图,而后访问视图文件夹下的index.cshtml
二、返回给浏览器
如图:
三、 MVC的优势
1. 架构下降了程序间的耦合性。
2. 不支持ViewState,页面更加干净,能够提高程序的性能。
3. 支持并行开发,可扩展性好,继承了asp.net的特性,表单验证、缓存、会话等。
4. 因为程序耦合度低,能够比较顺利的进行单元测试。
5. 经过修改路由规则,能够控制生成自定义的url,所以控制生成seo友好的url将更加容易。
6. 强类型view实现,更安全,更高效。
四、 MVC的缺点
须要有必定的html、css、js、jquery前端技术,也就增长了一些学习的成本。
MVC和WebForm的选择场景
新开发的项目建议采用MVC。
想要快速开发的中小型项目能够选择WebForm。
比较关注单元测试、性能、SEO、代码重用性的话建议采用MVC。
最后结语
MVC和WebForm都有本身的优缺点,目前两种技术都存在,证实都有本身的价值,虽然如今MVC应用愈来愈广发,咱们不能一味的否认WebForm。一个高级程序员用WebForm实现的网站性能并不必定比初级程序员用MVC实现的网站性能差,最重要的仍是努力提高本身的技术能力才是王道!
欢迎关注个人公众号:DoNet技术分享平台