初步理解MVC
一、Asp.net WebForms 与Asp.net MVC 概念
Asp.net是创建WEB应用的框架,MVC是能够用更好的方法来组织并管理代码的一种更高级架构体系。
我们可将原来的Asp.net称为 Asp.net WebForms,新的MVC称为Asp.net MVC。
二、Asp.net存在的问题
为什么微软还要推出Asp.net MVC?主要是因为Asp.net WebForm的性能问题。在Web应用程序中从两方面来定义性能:
1.响应时间:服务器响应请求的耗时
2.带宽消耗:同时可传输多少数据。
响应时间
WebForm因为采用服务器控件,每次请求都有转换逻辑,运行并转换服务器控件为HTML输出。如果使用一些复杂的控件,转换就会变的糟糕并且复杂,HTML的输出也是复杂的。由于不必要的转换从而增加了响应时间。所以该问题的解决方案就是摆脱后台代码(服务器控件),写成纯HTML代码。
带宽消耗
ASP.NET开发人员都非常熟悉Viewstates,因为它能够自动保存post返回的状态,减少开发时间。但是这种开发时间的减少会带来巨大的消耗,Viewstate增加了页面的大小。在做的加载测试中,与MVC 对比,我们发现Viewstate增加了两倍的页面存储。
页面尺寸的增加是因为viewstate产生了额外的字节。
1、HTML消耗
2、后台代码类的重用性
3、单元测试(既然无法实例化后台代码类,单元测试也是非常困难的,也无法执行自动化测试。必须手动测试。)
解决方案:
就是我们需要将后台代码迁移到独立的简单的类库,并且摆脱Asp.net服务器控件,使用HTML。
MVC是如何弥补WebForm存在的问题
先来看一张图:

Asp.Net MVC 由Model,View,Controller三部分组成。Controller中包含后台代码逻辑,View是ASPX,如纯HTML代码,Model是中间层。通过上图可获得这三部分的关系。
所以MVC的改变有两点,View变成简单的HTML,后台代码移到简单的.Net类中,称为控制器。
以下是Asp.net MVC 请求的通用步骤:
(1)首先获取控制器。
(2)依赖行为控制器创建Model对象,Model通过转换调用数据访问层。
(3)数据填充Model后,传递到View显示层,实现显示的目的。

为什么使用ASP.NET MVC?
易于进行单元测试
易于进行测试驱动开发
避免了WebForm中大量的ViewState导致页面文件变得臃肿
初步理解MVC的更多相关文章
- springBoot(1)---springboot初步理解
springboot初步理解 在没有用SpringBoot之前,我们用spring和springMVC框架,但是你要做很多比如: (1)配置web.xml,加载spring和spring mvc 2) ...
- javascript 原型及原型链的初步理解
最近折腾了好久,终于是把js里面的原型和原型链做了个初步的理解: 在这里,我打个比喻: 我(child),我妈constructor(构造函数)生了我:别人问我老妈跟谁生的我,于是此时我妈会指向我爸爸 ...
- Spring学习笔记--环境搭建和初步理解IOC
Spring框架是一个轻量级的框架,不依赖容器就能够运行,像重量级的框架EJB框架就必须运行在JBoss等支持EJB的容器中,核心思想是IOC,AOP,Spring能够协同Struts,hiberna ...
- Graph Cuts初步理解
一些知识点的初步理解_8(Graph Cuts,ing...) Graph cuts是一种十分有用和流行的能量优化算法,在计算机视觉领域普遍应用于前背景分割(Image segmentation).立 ...
- 通过Ruby On Rails 框架来更好的理解MVC框架
通过Ruby On Rails 框架来更好的理解MVC框架 1.背景 因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...
- 深入理解MVC与MVP
http://www.cnblogs.com/seaky/archive/2011/04/06/1982533.html 在深入分析MVC和MVP之前,我们有必要回顾下经典的三层架构.分层是计算机学科 ...
- 你是怎么理解“MVC”的
MVC就是三个字母的组合,M-模型, V-视图, C-控制器. 这些在百度上随便一索就可以索到,而且网上对这三个部分的解释又过于笼统,使人没法完全理解MVC的含义. 这里我简单的谈谈我对MVC这三 ...
- <转>ASP.NET学习笔记之理解MVC底层运行机制
ASP.NET MVC架构与实战系列之一:理解MVC底层运行机制 今天,我将开启一个崭新的话题:ASP.NET MVC框架的探讨.首先,我们回顾一下ASP.NET Web Form技术与ASP.NET ...
- ASP.NET MVC 理解MVC模式
ASP.NET MVC 理解MVC模式 PS:MVC出来很久了,工作上一直没机会用,所以我也没去学.出于兴趣,工作之余我将展开对MVC的深入学习,通过博文来记录所学所得,并希望能得到各位园友的斧正. ...
随机推荐
- 关于java“配置环境变量”的那些事
我们刚开始学习java,都会面临编程路上的第一个小怪兽:配环境变量. 网上很多教程给了我们很多的参考,但我们是否有想过为什么要这么配呢?下面我就是想重点探讨一下为什么?并且希望以后你们不但能配,还知道 ...
- 获取验证码,60秒倒计时js
<input type="button" id="btn" value="免费获取验证码" /><script type= ...
- 关于xmlhttprequest的readystate属性的五个状态
http://www.cnblogs.com/jerry01/archive/2009/09/03/1559624.html 昨天做了一个利用 ajax实现页面无刷新的从服务器端获得时间的例子,当时对 ...
- leetcode 131. Palindrome Partitioning----- java
Given a string s, partition s such that every substring of the partition is a palindrome. Return all ...
- 1-1 Java简介
主要内容: <1>Java平台应用 <2>核心概念:JVM.JDK.JRE <3>搭建Java开发环境 <4>使用工具开发Java程序 <5> ...
- linux下的符号链接和硬链接
一 Linux下链接文件的作用 Linux特别注重用户的权限,而链接文件的作用也正体现了这个方面.对源文件的位置进行了隐藏,用户只对链接文件操作. 二 链接文件的区别 链接文件分为硬链接文件和软 ...
- 科普:浅谈 Hellinger Distance
浅谈 Hellinger Distance 2016.05.24 最近在看 Hellinger Distance(海林格距离), 平时看多了欧式距离,马氏距离等等,貌似介绍这个的材料不是很多,例如:维 ...
- asm单机dg dbca报错ORA-01031 CRS-2676,rman restore主库控制文件报错ORA-15081
dg-> ll $ORACLE_HOME/bin/oracle -r-xr-s--x 1 oracle asmadmin 210824714 Nov 20 16:41 /u01/app/orac ...
- 在Windows7上安装coreseek3.2同时在PHP下简单实现步骤
这两天安装了coreseek+sphinx服务,前面装的是比较低版本的,再试了一下官网比较稳定一个版本1.首先下载:因为包有点大,就不在这里增加链接了,需要可以到官网下载 coreseek-3.2.1 ...
- apk反编译生成程序的源代码和图片、XML配置、语言资源等文件
Android应用的UI越来越漂亮,遇到喜欢的我们可以通过反编译,得到应用的源代码借鉴下别人的思想. 具体步骤: 1.下载 apktool 下载地址:https://code.google.com/p ...