Asp.net MVC2.0系列1-基础知识

简介:

一、MVC基础介绍

模型-视图-控制器(MVC)可能是近年来网络编程圈子里最常被提及的模式之一,微软推出Asp.net mvc后更是推波助澜,但由于在.net上MVC起步比较晚所以在.net平台上使用MVC架构做项目的并不是很多,绝大多数项目还是沿用着WebForm方案,当然这里并不是想说WebForm方案就不好,微软也一再强调Asp.net mvc并不是用来替代WebForm的,Asp.net mvc只是为开发者提供了新的选择,本系列希望可以帮助大家快速了解Asp.net mvc。

1、历史

MVC不是一种设计模式(design pattern),它是一种架构模式(Architectural pattern),用以描述应用程序的结构以及结构中各部分的职责和交互方式。最早由Trygve Reenskaug在1974年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式。MVC模式的目的是实现一种动态的程式设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外此模式通过对复杂度的简化使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。目前我们在网络开发中所采用的这种模式实际上是原版模式的一个改编版。这种改编版架构模式的疯狂流行是由于两个极其流行的开发框架将这种模式包含了进来,它们是:Struts 和 Ruby on Rails。这两个开发框架给稍后诞生的数百框架打上了深深的烙印。Asp.net mvc也深受其影响。

2、MVC各层次职责分解:

模型-视图-控制器架构模式背后的思想非常简单:我们的应用程序中必须区分下面这些职责:

2010062414392187.png

模型(Model):

模型是指运用于数据之上的数据规则和数据内容,它一般对应于应用程序所要管理的对象。在软件系统中,任何事物都可以被抽象成可以对其以某种方式进行处理的数据模型。应用程序中的用户,信息以及图书是什么?它们只是一堆必须按照对应规则处理的数据(日期不能是未来的日期,电子邮件有特定的格式,名字的长度不能超过多少字符等等)模型给控制器提供了一个用户请求内容对应的数据表达(比如信息,书,相册)。不管我们如何向用户展示,这个数据模型都不会变。这也是我们为什么可以随意选择使用哪个视图来展示数据的原因。模型包含我们应用程序逻辑中最重要的组成部分,这些逻辑运用于我们要处理的问题过程中。控制器更多的是包含应用程序自身的内部组织逻辑(更像管家)。

视图(View):

视图提供了展示模型数据的不同方式。它可能是数据填充的模板。视图可以有多个,而控制器则决定使用哪个视图。一个网络应用通常由许多控制器,模型和视图组成。控制器可以被看成是一个主控制器,用于接收用户的所有请求,然后在调用特定的控制器来处理不同的情况。

控制器(Controller):

控制器掌管着用户的请求(当用户点击图形用户界面(GUI)上的元素执行操作时,控制器会收到HTTP GET或者POST请求)。它的主要功能就是调用并协调需要的资源/对象来执行用户请求。通常控制器会为任务调用合适的模型,以及选择合适的视图。

3、各层间调用关系:

我们先来看一下当用户访问mvc框架站点时的序列图

2010062415001961.jpg

现在我们假设正在开发一个人事系统的员工展示业务,首先Controller收集用户提交过来的条件信息,根据条件信息调用Model,在Model中会把条件传给业务逻辑层,业务逻辑层会根据条件从数据库中获得相应的数据,然后将数据返回给Model,在Model中会将数据进行封装后传给Controller,然后Controller再根据需要显示的格式将相应的数据传给View,在View中执行显示逻辑,最后Controller将所要的View传给用户。

这里还要注意mvc各层的依赖关系:

2010062415085849.png

Controller可以直接控制View和Model,View中可以直接控制Model,但Model中不要强依赖View中的内容只能通过弱依赖,比方说可以有些Model是专门为某些View而设计的,但不能在Model中直接调用View逻辑,从Model中应该看不到任何Controller的逻辑。

二、WEB Form  VS  ASP.NET MVC

2010062415325218.png 

三、如何下载ASP.NET MVC 2

ASP.NET MVC 2是设计来可在VS 2008 / .NET 3.5,以及VS 2010 / .NET 4下工作的。同时支持2个版本意味着你今天就可以开始使用,而不必等着升级到VS2010 / .NET 4才用。

点击这里下载针对 .NET 3.5 和 VS 2008的 ASP.NET MVC 2,可在同个机器上与ASP.NET MVC 1.0并列安装。

ASP.NET MVC 2是 VS 2010 / .NET 4的内置组件,这意味着,在你安装Visual Studio 2010的任意一个版本之后,你不用下载或安装别的就可以得到ASP.NET MVC 2。

四、参考:

http://www.cnbeta.com/articles/107924.htm

http://www.cnblogs.com/ywqu/archive/2010/06/21/1762264.html

http://blog.joycode.com/scottgu/archive/2010/01/17/115853.joy


本文转自 你听海是不是在笑 博客园博客,原文链接:http://www.cnblogs.com/nuaalfm/archive/2010/06/24/1764458.html   ,如需转载请自行联系原作者
相关文章
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
38 0
|
29天前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
28 0
|
29天前
mvc.net分页查询案例——mvc-paper.css
mvc.net分页查询案例——mvc-paper.css
5 0
|
1月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
95 5
|
3月前
|
XML 前端开发 定位技术
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
25 0
|
3月前
|
前端开发
.net core mvc获取IP地址和IP所在地(其实是百度的)
.net core mvc获取IP地址和IP所在地(其实是百度的)
123 0
|
5月前
|
开发框架 自然语言处理 前端开发
基于ASP.NET MVC开发的、开源的个人博客系统
基于ASP.NET MVC开发的、开源的个人博客系统
51 0
|
8月前
|
开发框架 前端开发 .NET
ASP.NET Core 基础知识之​Startup 类配置
Startup 类配置服务和应用的请求管道。
113 0
|
8月前
|
SQL 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(完:内附源码)
经过一段时间的准备,【ASP.NET Core MVC开发实战之商城系统】已经完成,目前代码已开发完成,先将全部内容整理分享,如有不足之处,还请指正。
106 0
|
8月前
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(六)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情,购物车等功能的开发,今天继续讲解订单管理功能开发,仅供学习分享使用,如有不足之处,还请指正。
214 0