ASP.NET MVC概述
原文:http://www.asp.net/mvc/tutorials/older-versions/overview/asp-net-mvc-overview
这篇文章帮助你了解关于ASP.NET MVC应用程序和ASP.NET Web Forms的不同。学习如何确定何时创建一个ASP.NET MVC应用。
模型-视图-控制器(MVC)架构风格将应用程序分为了3个主要的部分:模型、视图和控制器。ASP.NET MVC框架提供了一个ASP.NET Web Forms风格的新的选择来创建基于MVC的Web应用。ASP.NET MVC框架是一个轻量级、容易测试表现层的框架(跟基于Web Form2-based应用一样),将现有的ASP.NET特性,比如母版页和基于Membership授权集成在一起。MVC框架被定义在System.Web.Mvc命名空间中,它是一个基础,受到System.Web命名空间的支持。
MVC是一个许多开发者都熟悉的标准的设计模式。有一些Web应用程序都从MVC框架中受益。其它应用程序将会继续使用基于Web Forms和postbacks(回传)机制的传统的ASP.NET应用程序风格。其它类型的Web应用将会合并这两种方法。不是谁替代谁。
MVC框架包含以下部分:

- 它通过将应用程序分为模型、视图、控制器等几个部分,来使得管理复杂的项目更容易。
- 它不使用ViewState和基于服务器端的Forms。这使得MVC框架对于想完全控制应用程序行为的开发者来说很理想。
- 它使用一个前端控制器风格通过一个单控制器来处理Web应用程序。这帮助你设计一个支持路由的应用程序。更多信息,参考MSDN网站上的Front Controller。
- 它提供了更好的测试驱动开发支持(TDD)。
- 它对控件团队开发者和设计者之间的工作提供了支持。
基于Web Forms的Web应用的优点
- 它支持事件模型来保持HTTP通信,这使得Web应用开发从单线业务中受益。基于Web Forms的应用应用提供了大量的服务器端控件的事件。
- 它使用一个页面控制器风格,增加功能到独立的页面。更多信息,参考MSDN网站上的Page Controller。
- 它使用ViewState和基于服务器端的Forms,这能更容易的管理状态信息。
- 对于Web开发者和设计者团队来说,可以更好的使用大量的服务器端控件来进行快速应用开发。
- 一般来说,会降低应用程序开发的难度,因为组件(页面类、控件等等)都高度集成,比MVC模型所需要的代码量更少。
ASP.NET MVC框架的特性
- 分离应用程序任务(输入逻辑、业务逻辑和用户接口逻辑),更容易测试并且原生支持测试驱动开发(TDD)。所有在MVC框架中的核心交互都基于接口,并且能够使用模拟对象行为的模型对象进行测试。你可以不用运行ASP.NET进程中的控制器就可以进行单元测试,这使得单元测试很快而且灵活。你可以使用任何兼容.NET框架的单元测试框架进行测试。
- 一个可扩展的支持注入的框架。ASP.NET MVC框架组件被设计以至于他们能够容易替换和自定义。你可以在你自己的页面引擎中使用注入,URL路由策略,Action方法参数序列化以及其它部分。ASP.NET MVC框架同样支持依赖注入(DI)和控制反转(IOC)。依赖注入允许你在类中注入对象,取代依靠类来创建对象自身。控制反转确定另一个对象,第一个对象应该通过外部源比如配置文件来获取第二个对象。这使得测试更容易。
- 一个强有力的URL映射组件使得你创建应用程序更容易阅读并被搜索。URL并不会必须包含文件名扩展,来被设计成支持URL命名风格更好的工作,并对搜索引擎优化(SEO)和REST地址支持更好。
- 支持一个现有的ASP.NET页面,用户控件以及母版页标签文件作为视图模版,你可以用ASP.NET MVC框架使用到现有的ASP.NET特性,比如内嵌母版页,单行表达式、服务端控件、模版、数据绑定、全球化等等。
- 支持现有的ASP.NET特性。ASP.NET MVC允许你使用如下特性,比如:Forms授权和Windows认证、URL授权、Membership和角色、输出和数据缓存、Session和Profile状态管理、health监控、配置系统以及Provider架构等。
ASP.NET MVC概述的更多相关文章
- ASP.NET MVC概述及第一个MVC程序
一.ASP.NET 概述 1. .NET Framework 与 ASP.NET .NET Framework包含两个重要组件:.NET Framework ...
- ASP.NET MVC 概述
目标:学习ASP.NET MVC 和ASP.NET WebForm的不同之处.学习在合适的地方使用ASP.NET MVC. MVC(Model-View-Controller)结构模式把一个对象分离成 ...
- 习题练习-第1章ASP.NET MVC概述
一.选择题 1.ASP.NET MVC自2007年首次公布预览以来,作为( )的替代品,普及度已明显提高,现在很多大型Web应用程序都是使用这一技术构建的. A.ASP B.ASP.NET ...
- 自学MVC看这里——全网最全ASP.NET MVC 教程汇总
MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口.本文从 ...
- ASP.NET MVC 教程汇总
自学MVC看这里——全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要 ...
- ASP.NET MVC:01理解MVC模式
ASP.NET MVC是ASP.NET Web应用程序框架,以MVC模式为基础. MVC:Model View Controller 模型-视图-控制器Model(模型):负责对数据库的存取View( ...
- 全网最全ASP.NET MVC 教程汇总
全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MV ...
- 自学MVC看这里——全网最全ASP.NET MVC 教程汇总(转)
自学MVC看这里——全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要 ...
- [ASP.NET MVC2 系列] ASP.Net MVC教程之《在15分钟内用ASP.Net MVC创建一个电影数据库应用程序》
[ASP.NET MVC2 系列] [ASP.NET MVC2 系列] ASP.Net MVC教程之<在15分钟内用ASP.Net MVC创建一个电影数据库应用程序> ...
随机推荐
- ios项目开发(天气预报项目):通过经纬度获取当前城市名称
1 . 在项目里加入� CoreLocation.framework 2 .在 .h 文件输入例如以下: 1.#import <CoreLocation/CLLocation.h> ...
- shell修改文件名(一)
假如文件名是:time_filename.txt 改成filename_time.txt.例如20111111_me.txt改成me_201111111.txt要如何修改? #! /bin/sh fo ...
- MFC——从实现角度分析微云界面
在云计算时代之风吹来,很多互联网公司都在建云,提出云盘.云储存.云平台.云空间等等,骤然间,天下皆云.云是啥?有用户量,就有云,没有用户量,你的系统,你的云,也就是一朵白云. 最近研究了下微云的界面, ...
- RapidXml用法
一.写xml 文件 #include <iostream> #include "rapidxml/rapidxml.hpp" #include "rapidx ...
- mysqldump 备份原理9
前文的一个细节http://blog.itpub.net/29254281/viewspace-1392757/ 5.--master-data + --single-transaction 同时 ...
- 读 Runtime 源码:对象与引用计数
以前只是看了很多博客,这次打算看一下源码,并记录下来.想到哪里就读到哪里,写到哪里.读的代码版本是:objc runtime 680,可以从这里下载 https://github.com/RetVal ...
- Android_listView_BaseAdapter_downLoadImg
layout.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" x ...
- /lib /usr/lib /usr/local/lib 的区别
/lib是内核级的,/usr/lib是系统级的,/usr/local/lib是用户级的. /lib/ — 包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件.目录 /usr/lib/ 中含 ...
- 关于javascript的slice方法
slice方法在javascript中既可以在Array对象的原型下也可以是在String对象的原型下;其中w3c上面说的slice方法的第一个参数是必须的;这里的说法有误; slice的参数可以是0 ...
- SpringMVC框架
一.SpringMVC工作流程图 DispatcherServlet:Spring提供的前端控制器,所有的请求都有经过它来统一分发.在DispatcherServlet将请求分发给Spring Con ...