1)ASP.NET Webforms Behind Code利于快速开发,方便可视化操作。

2)ASP.NET 使用了“基于视图”的解决方案去应对“基于行为”的需求,它处理了客户端的请求,IIS将请求转给对应的页面视图,然后又进行了页面的生命周期的一系列事件,最后服务器返回了一个HTML格式给客户端,这一过程对于

现今的MVC架构而言实在是太繁琐了,而现在的MVC直接将请求给对应的Controller控制器,控制器经过处理直接返回视图View给用户。

3)ASP.NET 不好的架构模式带来的副作用:紧耦合;页面代码ASPX和页面控制代码ASPX.cs永远无法分离,不同页面不能轻易组合使用,页面事件过多维护周期过长。而MVC则不一样,视图可以来回轻松切换,代码易于重用,实现简单方便。

4)HTML并不是服务器返回数据的唯一格式,ASP页面返回格式固定是HTML格式,如果要弹出JS或者使用Ajax调用,就不太方便了,那就只能借助Response了,这就很头疼了。而MVC返回格式是多样化的,JSON格式、HTML格式、JAVAScript格式都可以。

5)“视图”与“数据”的灵活组合,MVC直接将需要的数据传递给页面即可,视图的UI只负责展示即可,不用像ASP一样调用复杂的数据逻辑,何况ASP页面展示逻辑又容易和数据逻辑互相串联,违背了单一原则。

MVC由基于视图的ASP.NET转变为基于行为的架构,更改了如下内容:

a.原理的Behind Code定义为相关的Controller类,原来的事件变成一系列的Action方法

b.View仅仅用于展示数据,不再和数据逻辑纠缠在一起了

c.数据访问层DAL不用做多大改变,因为它本身和Behind Code牵连少,因为中间隔了个BLL业务逻辑层。

因此MVC的Controller类只处理了相关的基于行为操作

现在,MVC通过获得请求,然后把请求给Controller控制器,控制器找到相关的Action,

而Action只需要访问数据,然后将访问的数据经过各种处理之后,将View呈现给浏览器即可。

总而言之:ASP.NET可视化,方便开发人员快速开发,MVC页面与数据逻辑分离,实现了面向对象的思想,方便代码维护、复用、开发。

以上内容为个人参考网上内容后做的简洁描述,若有不当之处,所见者不妨提提意见,以促改进,感谢!

ASP.NET与MVC架构区别总结的更多相关文章

  1. 一般处理程序、ASP.NET和MVC的区别

    这个问题说起来,我有点惭愧 想当初在大学里学的就是ASP.NET WebForms 在实习期间也是用的WebForms来开发网站,然后就觉得.NET开发网站就是用这个开发模式 现在想想都想笑...实在 ...

  2. Pro ASP.NET Core MVC 第6版 第二章(后半章)

    增加动态输出 整个web应用平台的关注点在于构建并显示动态输出内容.在MVC里,控制器负责构建一些数据并将其传给视图.视图负责渲染成HTML. 从控制器向视图传递数据的一种方式是使用ViewBag 对 ...

  3. Pro ASP.NET Core MVC 第6版 第一章

    目录 第一章 ASP.NET Core MVC 的前世今生 ASP.NET Core MVC 是一个微软公司开发的Web应用程序开发框架,它结合了MVC架构的高效性和简洁性,敏捷开发的思想和技术和.N ...

  4. Asp.net中WebForm 与 MVC的架构区别

    ASP.NET Webform 后台代码(behind code) 这种behind code 模式有5个问题,我们用MVC的设计思想来分别解决这些问题 1.基于视图的方案来解决基于行为的需求 从上图 ...

  5. ASP.NET MVC与ASP.NET Web Form简单区别与适用场景

    概论: Asp.net  微软 提供web开发框架或者技术.分Web Form和ASP.NET MVC.下面简单说明各自优缺点及使用场景. Web Form 优点: 1.支持丰富的服务器控件.如:Gr ...

  6. ASP.NET Webform和ASP.NET MVC的区别

    ASP.NET WebForm ASP.NET Webform提供了一个类似于winform的事件响应GUI模型(event-driven GUI),隐藏了HTTP.HTML.JavaScript等细 ...

  7. 转载ASP.NET MVC 和ASP.NET Web Form简单区别

    转载原地址 http://www.cnblogs.com/lei2007/p/3315431.html 概论: Asp.net  微软 提供web开发框架或者技术.分Web Form和ASP.NET  ...

  8. MVC架构在Asp.net中的应用和实现

    转载自:http://www.cnblogs.com/baiye7223725/archive/2007/06/07/775390.aspx 摘要:本文主要论述了MVC架构的原理.优缺点以及MVC所能 ...

  9. ASP.NET MVC与ASP.NET Web Form简单区别

    概论: Asp.net  微软 提供web开发框架或者技术.分Web Form和ASP.NET MVC.下面简单说明各自优缺点及使用场景. Web Form 优点: 1.支持丰富的服务器控件.如:Gr ...

随机推荐

  1. python hash()和hashlib

    一.哈希算法 哈希算法:哈希算法并不是特定的算法而是一类算法的统称,只要是完成这种功能的算法都是哈希算法,哈希算法也叫做散列算法.同时这个过程是不可逆的,无法由key推导出data.判断一个哈希算法是 ...

  2. 30 C? Go? Cgo!

    C? Go? Cgo! 17 March 2011 Introduction Cgo lets Go packages call C code. Given a Go source file writ ...

  3. 使用os模块实现展示目录下的文件和文件夹

    Windows 10家庭中文版,Python 3.6.4 今天学习了os模块,下面是使用它开发的一个展示目录下的文件和文件夹的函数,代码如下: import os # deep大于等于1的整数,默认为 ...

  4. Codefroces 628B New Skateboard(数位+思维)

    题目链接:http://codeforces.com/contest/628/problem/B 题目大意:给你一段数字串s(1?≤?|s|?≤?3·10^5),求该字符串有多少子串是4的倍数.解题思 ...

  5. Unix IPC之Posix消息队列(2)

    /* Query status and attributes of message queue MQDES. */ extern int mq_getattr (mqd_t __mqdes, stru ...

  6. day5模块学习--yaml文件处理

    yaml文件处理(http://pyyaml.org/wiki/PyYAMLDocumentation)     摘要: 本文讲的是yaml在python上的使用教程详解, YAML是一种容易人类阅读 ...

  7. centos7 关闭默认firewalld,开启iptables

    编者按: 对于使用了centos6系列系统N年的运维来说,在使用centos7的时候难免会遇到各种不适应.比如防火墙问题.本文主要记录怎么关闭默认的firewalld防火墙,重新启用iptables. ...

  8. 【POJ】1067.取石子游戏

    题解 这道题让我对SG函数有了更深刻的理解,这是道打表找规律题 我们打出来SG函数似乎是 1 2必败 3 5必败 4 7必败 6 10必败 8 13必败 哇我找到规律了-- 然而,我显然不会通项 后来 ...

  9. ubuntu16.04 删除内核

    一.背景 今天开机输入密码后,Ubuntu就卡在左下角有“Ubuntu 16.04 LTS”字样的那个界面,鼠标可以移动,但无法进入桌面.考虑到这个问题可能是因为ubuntu的自动更新造成的,于是重新 ...

  10. 轻松实现Ecshop商城多语言切换

    很多人都想让自己的ECSHOP商城实现多语言支持(能够方便的在首页切换多语言).其实实现起来也挺简单的. 效果图如下: 下面就说一下修改方法. 1).首先打开 includds/init.php  文 ...