一、共同点

它们共用一套管道机制。

二、不同点:

1、开发方式:

webform开发方式

第一步:前台页面(*.aspx)+后置代码类(*.cs)
第二步:前台页面(*.aspx)+一般处理程序(*handler.ashx)
第三步:html+JQuery.Ajax+一般处理程序(*handle.ashx)
 
MVC开发方式
控制器(Controller)- 负责转发请求,对请求进行处理。
视图 (View) - 界面设计人员进行图形界面设计。
模型 (Model)-业务逻辑、数据、验证规则、数据访问等等
View 和 Controller都可以直接请求Model,但是Model不依赖View和controller
Controller可以直接请求View来显示具体页面,View不依赖Controller
真正和用户打交道的是 控制器,视图/模型 只是被控制器调用并产生html代码而已。
 
注意:三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是以实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。 
 
2请求模型不同
MVC请求模型

 
 
 
 
 
 
 
 
 
 
 
 
 
 
简化:

 
 
 
 
 
 
 
 
 
 webfrom请求模型

 
 
 
 
 
 
 
 
 
 
 
 
 
简化:页面<---->实体模型
 
 详情:http://www.cnblogs.com/edisonchou/p/4216337.html
 
附录一:aspx与ashx的区别
 
*.html (htm): 由浏览器来解释(翻译)代码并显示给使用者浏览。因此,其几乎不占用服务器资源,可以直接发送给请求者,由请求者的浏览器来负责解释工作。 *.aspx: 由服务器中的.net编译器来负责解释,翻译成html内容,然后发送给请求者。 *.ashx: 由服务器中的.net编译器来负责解释,翻译成指定内容,然后发送给请求者。 aspx 与 ashx的区别在于,aspx是一个自带生命周期的大型容器(自身有界面属性),其包含创建,初始化,加载,渲染,卸载等等过程。(无论你用还是不用这些过程)。而ashx不存在界面,与aspx相比,不经过页面生命周期,因此占用资源非常少。 通常如果非必要时,我们应该采用ashx。比如当需要使用ajax调用服务器内容时,一般不要创建.aspx文件来获取内容,而用.ashx文件来获取内容,以保证资源消耗最少的方式。
 
附录二:页面生命周期:
详细
http://www.cnblogs.com/zhaoyang/archive/2011/11/16/2251200.html
实践
http://www.cnblogs.com/jackcxd/archive/2010/05/29/1746310.html
附录三:Ajax与json
http://www.cnblogs.com/rush/archive/2012/05/15/2502264.html

WebFrom与MVC异同的更多相关文章

  1. WebFrom模拟MVC

    如:  aspx前台     这样写生成页面时不会产生新的html标签,用控件则会产生新的html标签 <h1><%= title %></h1> <p> ...

  2. [转]asp.net webform 与mvc 共享session

    公司内部系统最早是用.net webform模式开发的,现新项目用.net mvc 开发,现存在的问题就是如何保持原有.net webform的登录状态不变,而在mvc中能够验证用户的登录状态,也就是 ...

  3. asp.net webform 与mvc 共享session

    公司内部系统最早是用.net webform模式开发的,现新项目用.net mvc 开发,现存在的问题就是如何保持原有.net webform的登录状态不变,而在mvc中能够验证用户的登录状态,也就是 ...

  4. ASP.NET/MVC/Core的HTTP请求流程

    ASP.NET HTTP管道(Pipeline)模型 1. 先讲一点,再深刻思考 一般我们都在写业务代码,优化页面,优化逻辑之间内徘徊.也许我们懂得HTTP,HTTPS的GET,POST,但是我们大部 ...

  5. 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程

    简述C#中IO的应用   在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.I ...

  6. Mvc+Hui+SqlSugar+Autofac+NLog+T4 架构设计(一)

    一.前言 作为小菜鸟第一次写博客的我还有点小激动,最近开始打算着手写一个属于自己架构.算下来差不多最近花一周多的下班时间了来写这个框架,本来想整体架构开发完成测试完成后才写博客,怕自己没时间或失去动力 ...

  7. vs 2010 中类文文件模板的修改

    类模板 文件的修改,以前也修改过,这次有个同事问我,搞了有一会才搞定,这里还是记录分享下. 如果想在每次创建文件时,自动生成文档注释(注意是自动生成文档注释而不是帮助文档),如下面的代码,需要设置VS ...

  8. C#之系统异常处理机制

    在系统开发过程中,BUG和异常产生是无处不在的,但是需要我们去做的就是不断去发掘异常.修改异常. 这篇文章主要谈谈我在系统中解决异常的几种方法: 1.控制台程序产生的异常: 在大多数的控制台程序中,运 ...

  9. 【DDD】领域驱动设计精要

    本文算是<领域驱动设计>这本书的读书笔记,加上自己的一些读后感.网上有很多这本书的读书笔记,但是都是别人的,不如自己总结的理解深刻.建议大家在读这本书时结合<实现领域驱动设计> ...

随机推荐

  1. 【VB6】全局键盘钩子

    基本也没啥好说的,不要用到木马及恶意程序中是以前从VB.NET程序改到VB6的,阉割了一些功能,只提供键盘Hook功能想要截获热键可以在处理函数中返回1,里面有示例 下载地址 http://pan.b ...

  2. FluentAPI详细用法

    设置主键 modelBuilder.Entity<x>().HasKey(t => t.Name); 设置联合主键 modelBuilder.Entity<x>().Ha ...

  3. “全栈2019”Java多线程第三十四章:超时自动唤醒被等待的线程

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  4. 【hyperscan】hyperscan开源了!

    hyperscan开源了! 官网:https://01.org/zh/hyperscan 1. 新闻背景 当地时间10月19日,intel将它的高速正则表达式匹配引擎hyperscan开源了,版本4. ...

  5. Postgres 的 JSON / JSONB 类型

    从 MySQL 5.7.8 开始,MySQL 支持原生的 JSON 数据类型. 一.介绍 json是对输入的完整拷贝,使用时再去解析,所以它会保留输入的空格,重复键以及顺序等.而jsonb是解析输入后 ...

  6. Postgres 的 Range 类型

    mysql 不支持 Range 类型 零.介绍 1. 适用场景: a.可以用于实现 是否满足薪资需求 的功能 b.可以用于实现 是否符合上线时间 的功能 一.定义 1.类型范围 Postgres Se ...

  7. 用mac的safari浏览器调试ios手机的网页

    iOS 6给Safari带来了远程的Web检查器工具. 一.参考链接 ios开发者文档 safari开发者工具 remote debugging safari 二.设置iphone 设置 -> ...

  8. [原创]K8 Struts2 Exp 20170310 S2-045(Struts2综合漏洞利用工具)

    工具: K8 Struts2 Exploit组织: K8搞基大队[K8team]作者: K8拉登哥哥博客: http://qqhack8.blog.163.com发布: 2014/7/31 10:24 ...

  9. Django 模板相关

    Django 模板相关 视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面.目前市面上有非常多的模板系统,其中最 ...

  10. Scala的Trait详解

    http://article.yeeyan.org/view/178378/358355