2009年5月10日星期日

Professional ASP.NET MVC 1.0 第一章 NerdDinner 中译 Part 2

文件->新建项目

在Visual Studio 2008或者免费的Visual Web Developer 2008 Express选择文件->新建项目菜单,从而开始我们的NerdDinner应用。

这将引发“新建项目”对话框。我们选择对话框左手边的“Web”节点,然后选择右边的“ASP.NET MVC Web Application”工程模板,这就创建了一个新的ASP.NET MVC应用:

我们把工程命名为“NerdDinner”,然后点击“确定”创建它。

当我们点击“确定”时,Visual Studio还会显示一个额外的对话框,提示我们是否同时为这个新应用创建一个单元测试工程。这个单元测试工程能够让我们建立自动化的测试来检验应用的功能和行为(教程的稍后部分会覆盖到这个范围)。

“测试框架”下拉框会填入机器上面已经安装的所有可用的ASP.NET MVC单元测试工程模板。可以下载NUnit、MBUnit和XUnit版本。也支持内置的Visual Studio单元测试框架。

注意:只有Visual Studio 2008专业版和更高版本才有Visual Studio单元测试框架。如果你用的是VS 2008标准版或者Visual Web Developer 2008 Express你需要去下载安装ASP.NET MVC的NUnit、MBUnit或者XUnit扩展,这样这个对话框才会显示。如果这些测试框架都没有安装,这个对话框不会显示。

我们将使用默认的“NerdDinner.Tests”来命名建立的测试工程,用“Visual Studio Unit Test”框架选项。当我们点击“OK”按钮后,Visual Studio就会创建一个解决方案,里面有两个工程,一个是Web应用,另外一个是单元测试:

考察NerDinner目录结构

当你用Visual Studio创建了一个新的ASP.NET MVC应用,它会自动地在工程里面添加一些文件和目录:

ASP.NET MVC工程默认会有6个顶层目录:

目录

用途

/Controllers

放置处理URL请求的控制器类的地方

/Models

放置表示与操作数据的类的地方

/Views

放置负责渲染输出的UI模板文件的地方

/Scripts

放置JavaScript库文件和脚本(.js)

/Content

放置css和图片文件,以及其它非动态/非JavaScript的内容

/App_Data

放置想要读写的保存数据的文件

ASP.NET MVC并不硬性要求这样的结构。实际上,大型应用的开发者一般会把这个应用分散到多个工程中以便维护(例如:通常会从Web应用分出数据模型类到独立的类库工程)。不过,默认的工程结构确实提供了一个很好的默认目录惯例,用它我们能够保持我们应用的有关内容整洁。

展开 /Controllers 目录,会发现Visual Studio默认在项目里面添加了两个控制器类:HomeController和AccountController:

展开 /Views 目录,会发现项目中添加了三个子目录:/Home、/Account和 /Shared,每个子目录里面还有几个模板文件:

展开 /Content 和 /Script 目录,会发现有一个用于为整个网站的HTML提供样式的 Site.css 文件,还有为应用提供ASP.NET AJAX和jQuery支持的JavaScript库:

展开NerdDinner.Test项目,会发现包含两个控制器类的单元测试的两个类:

Visual Studio添加的这些默认文件提供给我们一个可运行的应用的基本结构:主页,关于页,账户登录、登出、注册页,还有一个未处理错误的页面(全部都已烹调完毕,开罐即食)。

运行NerdDinner应用

我们可以选择 调试->启动调试 或者 调试->开始执行(不调试) 菜单项来运行工程:

这将启动Visual Studio内置的ASP.NET Web服务器,并且运行我们的应用:

下面是我们的新项目的主页(URL:“/”):

 

点击“About”标签显示关于页(URL:“/Home/About”):

 

点击右上角的“Log On”链接进入登录页(URL:“/Account/LogOn”):

 

如果我们没有登录帐号,可以点击注册链接(URL:“/Account/Register”)来创建一个帐号:

 

实现上述主页、关于页、登录/登出/注册功能的代码,在我们创建新工程的时候已经默认添加了。我们将用它来作为我们的应用的起点。

测试NerdDinner应用

如果我们用的是Visual Studio 2008的专业版或者更高的版本,我们就能够使用其内置的单元测试IDE支持来测试项目:

选择上述的任何一个选项将会打开IDE里面的“测试结果”窗格,提供给我们新工程所包含的覆盖了内置功能的27个单元测试的通过/失败状态:

2009年5月4日星期一

Professional ASP.NET MVC 1.0 第一章 NerdDinner 中译 Part 1

译序

ASP.NET MVC看来是一个好东西,也许以后会用到。

Rob Conery、Scott Hanselman、Phil Haack和Scott Guthrie的《Professional ASP.NET MVC 1.0》的第一章讲述了用ASP.NET MVC建立一个完整系统的整个过程,虽然只是一章,但是却是学习ASP.NET MVC的一个很好的入门教材。而且这一章是以CC协议发布的,因此,翻译它貌似没有版权问题。

翻译一本书应该是学习它的最好方法了。希望不会太监。

译文当然也是CC发布。

NerdDinner

学习一个新的框架的最好办法莫过于用它弄弄一些东西。第一章就是从头过一遍来看怎么用ASP.NET MVC来建立一个五脏俱全的小麻雀,同时介绍隐藏其后的一些核心概念。
我们准备建立的这个应用名叫"NerdDinner"。NerdDinner让人们可以方便地在线找到和组织宴会:

NerdDinner允许注册用户创建、编辑及删除宴会。整个应用会执行一系列的验证和业务规则:

网站的访问者能够搜索到附近举办的宴会:

点击一个宴会将会进入一个详细介绍页面:

如果有兴趣则可以登录或者注册进入网站:

能够方便地报名参与腐败:



我们将在可视工作室(Visual Studio啦:)里面用 文件->新工程 命令来创建一个全新的ASP.NET MVC工程,开始实施NerdDinner这个应用。然后我们将逐步增加功能特性。一路走下去,我们将覆盖到如下课题:创建数据库、建立含有业务规则验证的模型、实现数据列表/细节的UI、提供CRUD(Create创建、Update更新、Delete删除)表单支持、实现高效的数据分页、用母版页和局部来重用UI、使用身份认证和授权来使应用安全、使用AJAX来发起动态更新和交互地图支持、实现自动化的单元测试。

你可以根据本章的内容一步步地建立自己的NerdDinner拷贝。另外,你也可以从下面这个网址下载一个完整的源代码版本: http://tinyurl.com/aspnetmvc

你既可以用Visual Studio 2008也可以用免费的Visual Web Developer 2008 Express来建立这个应用。你可以将数据库建立在SQL Server上,也可以用免费的SQL Server Express。

你可以用Microsoft Web Platform Installer来安装ASP.NET MVC、Visual Web Developer 2008和SQL Server Express。Microsoft Web Platform Installer可以在此获得: http://www.microsoft.com/web/downloads