ASP.NET MVC3实践--入门

1、引言

  MVC3是ASP.NET框架下的MVC框架,随MVC3同期发布的还有ASP.NET的最新引擎Razor,关于MVC3和Razor的详细文档参见MSDN

MSDN:MVC3 MSDN上的MVC3参考,建议快速浏览

MSDN:Razor Razor的整体介绍,建议未使用过的读者详细了解下

本博客从本文开始,将陆续推出ASP.NET MVC3的系列文章,旨在介绍ASP.NET的MVC框架,以及如何利用此框架进行高效的WEB开发。对于本文的读者,需要了解ASP.NET、MVC构架、以及Entity Framework的基础知识。好的,废话不多说,让我们开始ASP.NET的MVC之旅吧!

2、ASP.NET框架下的MVC应用程序的执行

阶段

详细信息

接收对应用程序的第一个请求

在 Global.asax 文件中,Route 对象将添加到 RouteTable 对象中。

执行路由

UrlRoutingModule 模块使用 RouteTable 集合中第一个匹配的 Route 对象来创建 RouteData 对象,然后使用所创建的对象创建 RequestContext 对象。

创建 MVC 请求处理程序

MvcRouteHandler 对象将创建 MvcHandler 类的实例,并将 RequestContext 实例传递给处理程序。

创建控制器

MvcHandler 对象使用 RequestContext 实例标识用于创建控制器实例的 IControllerFactory 对象(通常是 DefaultControllerFactory 类的实例)。

执行控制器

MvcHandler 实例调用控制器的 Execute 方法。

调用操作

对于从 ControllerBase 类继承的控制器,与该控制器关联的 ControllerActionInvoker 对象将决定要调用的 controller 类的操作方法,然后调用该方法。

执行结果

操作方法将接收用户输入,准备合适的响应数据,然后通过返回结果类型来执行结果。 可执行的内置结果类型包括:ViewResult(呈现视图并且是最常用的结果类型)、RedirectToRouteResultRedirectResultContentResultJsonResultFileResultEmptyResult



3、开发环境

  Visual Studio 2010的安装包只包含MVC2,需要单独安装,建议使用http://www.asp.net/mvc/mvc3上的web installer安装,如果使用单独的asp.net mvc3安装包,可能在个别步骤出现挂起的现象。

  数据库方面,为了方便使用Entity Framwork,本文使用Sql Server。配置方面不用过多关注,只需要默认配置就能够运行本文提供的内容。

与J2EE框架下的MVC繁琐的开发环境搭建不同,在ASP.NET下,只需要如下工具即可:

Visual Studio Web Developer Express 2010

ASP.NET MVC 3 Tools

Sql Server 2008 Express

下面的链接有asp.net站点提供的Web Developer Express+MVC3的web installer。

http://www.asp.net/mvc/mvc3

不过对于有条件的读者,建议使用Visual Studio的完整版本。


4、辅助工具NuGet

  NuGet是.NET平台下面向开发者的包管理器,对于曾经挣扎在Struts、Hibernate等东西的配置文件的读者来说,NuGet是一开发者的福音。NuGet的使用类似于Linux下的包管理器,但也许更为简单。对于一个项目,NuGet可以做下面这些事情:

1. 搜索包;

2. 下载包到本地并添加到项目中(包括添加引用和dll等文件);

3. 根据包自动配置Web项目的config文件。

关于NuGet的更多内容,请参考codeplex上的NuGet项目:

http://nuget.codeplex.com/

这里,我们演示如何使用NuGet在一个空MVC3项目中加入Ajax Control Toolkit,这将是一个非常简单的过程^_^。

首先新建一个MVC3项目,选择空模板,Project Layout如图1所示:

图1.

ASP.NET MVC3实践--入门

然后,右键单击项目中的“引用”,在弹出菜单中点击“Manage NuGet Packages”,在搜索框中键入要搜索包的名字即可,如图2所示:

图2.

ASP.NET MVC3实践--入门

然后点击Install,然后,就没有然后了,NuGet会为你完成所有的配置!

Tips:MVC3的项目模板,包括Empty的模板,会安装如EntityFramework、JQuery等几个常用的包,这些包都可以使用NuGet来进行管理。

;