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

MVC2.0入门必读教程程序源码 前言 ASP.NET MVC作为微软官方的MVC解决方案,推出有一段时间了。可以说自动推出以来,一直广受关注。在经历了漫长的Preview之后,前几天终于推出了其beta版。并且在官方文档中,微软声明最终的正式版与beta版相比不会有大的变化。所以,对于.NET平台的开发人员来说,是时候学习ASP.NET MVC了。 本系列文章作为一个ASP.NET MVC的入门教程,将不会长篇大论介绍其中的概念及理论。而是通过案例实践来学习ASP.NET MVC。在这系列文章中我将逐步完成一个“公告发布系统”。我的写作策略是:先动手做,遇到需要解释概念和理论的时候再解释,而不是先把概念和理论解释完再做东西。 另外,我还有几点要说明的: 1.为了将大家的关注点充分集中在ASP.NET MVC上,这个Demo的业务处理将使用Mock的方式。即不会真正去访问数据库,而是虚拟一些数据。 2.本Demo将不考虑任何美工问题。 下面,让我们一起开始ASP.NET MVC之旅吧。 配置环境 如果您还没有安装ASP.NET MVC的话,请到这里(http://www.microsoft.com/downloads/details.aspx?FamilyId=A24D1E00-CD35-4F66-BAA0-2362BDDE0766&displaylang=en)下载安装。 下载后,按提示安装就可以了。 新建项目 安装完ASP.NET MVC后,在VS里新建一个项目,可以看到有一个“ASP.NET MVC Web Application”的选项,选择它,新建一个项目,并命名为“MVCDemo”。 建完项目后,可以看到默认情况下已经建立了很多文件夹,这里简略说一下各个文件夹的作用。 Content——存放应用需要的一些资源文件,如图片、CSS等。 Controllers——存放控制器类。 Models——存放业务模型组件。 Scripts——存放JavaScript脚本文件。 Views——存放视图。 现在不了解一些概念没关系,后续文章将慢慢解释。 本程序中包括MVC基本的使用以及MVC内置拦截器( 在ASP.NET MVC中,有三种拦截器:Action拦截器、Result拦截器和Exception拦截器。)本程序中用到了第一种和第三种。其实也没什么神秘的,就是一个普通的类而已。只不过需要继承FilterAttribute基类,Action拦截器还要实现IActionFilter接口,而Exception拦截器需要实现IExceptionFilter接口。拦截器主要在Controllers目录下的Filters目录下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值