NerdDinner教程(翻译)-----Introduce&part1

注:最近学习MVC,在看scottgu的nerddinner教程(原文地址:http://nerddinnerbook.s3.amazonaws.com/Intro.htm),不过全E文的,现学现翻译,有用的可以了解下,本人会陆续将所有的part翻译完毕。因本人E文水平有限,难免有误,望不吝赐教。

NerdDinner教程

学习一个框架最好的方法是用它去建立一个东西。这个教程一步一步的讲解如何用ASP.NET MVC去建立一个小的,但是完整的项目.

我们将去建立的项目称为“NerdDinner”, NerdDinner为人们去寻找或者组织一个宴会提供了一个方便的在线途径。

clip_image002

NerdDinner 允许用户创建、编辑以及删除宴会,它通过这个项目执行一套一致的验证和商业规则

clip_image004

来访者可以应用AJAX地图去搜索即在他们附近将到来的宴会

clip_image006

点击这个宴会将给出一个详细的页面以便他们能了解更多关于这个宴会的情况。

clip_image008

如果他们对出席这个宴会感兴趣,那么他们就可以在这个网站上登陆并且登记。

clip_image010

然后他们可以单击一个基于AJAX的回复链接出席活动

clip_image012

clip_image014

NerdDinner实施计划

我们将要开始我们的NerdDinner项目利用Visual Studio 中的“文件”->“新建项目”命令去创建一个新的ASP.NET MVC项目,然后,我们将逐步增加功能和特点,我们会按照以下的步骤:

1. 如何创建一个ASP.NET MVC项目

2. 如何创建数据库

3. 如何建造带有验证和业务规则的模型

4. 如何使用控制器和视图实现数据列表和细节界面

5. 如何实现CRUD(创建,读取,更新,删除)数据表单输入

6. 如何使用ViewModel模式将信息从控制器中传给视图

7. 如何使用用户控件和母版页在网站上重用界面

8. 如何实现高效数据分页

9. 如何使用认证和授权实现应用安全

10. 如何使用AJAX实现动态更新

11. 如何使用AJAX添加可交互性地图支持

12. 如何执行自动化的单元测试(包括依赖注入和mocking)

你可以创建你自己的NerdDinner 从零开始一步一步的跟着我们的章节。做为选择,你可以从http://nerddinner.codeplex.com/下载一个完整版本的源代码,如果你离线阅读这个教程,你也可以下载一个PDF版本的教程

你可以用Studio 2008或者免费的Visual Web Developer 2008 Express去创建这个项目,你可以用SQL Serve或者免费的SQL Server Express去创建数据库。

你可以利用第二版的Microsoft Web Platform Installer安装ASP.NET MVC, Visual Web Developer 2008 Express, and SQL Server Expres(都是免费的)。

现在让我们开始吧……

现在我们已经知道什么是NerdDinner,那现在让我们卷起袖子(作者用的是sleaves,译者认为打错了,应该为sleeves )写代码吧。

我们将开始用Visual Studio 中的“文件”->“新建项目”去创建NerdDinner项目

NerdDinner 第一步:文件->新建项目

[这是免费的讲解如何用ASP.NET MVC建立一个小的,但是完整的web项目“NerdDinner”的教程的第一步]

我们将从选择Visual Studio 2008 或者 免费的 Visual Web Developer 2008 Express 中的“文件”->“新建项目菜单” 开始我们的NerdDinner项目。

这将弹出一个“新建项目”的窗体,为了创建ASP.NET MVC项目,我们将选择这个窗体的左手边的“Web”节点,然后在右边选择“ASP.NET MVC Web Application”项目模板

clip_image016

注意:确定你已经下载并安装了ASP.NET MVC,否则我们将看不到这样的新建项目的窗体,如果你还没有下载,可以使用第二版的Microsoft Web Platform Installer( "Web Platform->Frameworks and Runtimes" 节点刻意看到ASP.NET MVC)

我们将为我们即将创建的项目命名为“NerdDinner”,然后点击确定按钮创建。

当我们点击了确定按钮后,Visual Studio将弹出另外一个窗体,它允许我们同时为新项目创建一个单元测试的项目,这个单元测试的项目使我们能够创建我们这个项目的自动化测试,验证功能和行为。

clip_image018

在上述对话框的“Test framework”下拉框中位所有可用的安装在你机器上ASP.NET MVC设计单元测试项目模板。可以下载不同版本的的NUnit , MBUnit ,以及XUnit 。内置在Visual Studio单元测试框架也支持。

注意:Visual Studio单元测试框架尽可在Visual Studio 2008专业版及更高版本可用,如果你用的是VS2008标准版或者Visual Web Developer 2008快速开发版,为了该窗体能过显示,你将需要下载并且安装NUnit, MBUnit 或者 XUnit ASP.NET MVC的插件。如果没有安装任何测试框架这个窗体将不会显示

我们将用默认的“NerdDinner.Tests”为测试项目命名,并且使用“Visual Studio Unit Test”框架选项,当我们点击确定按钮后,Visual Studio会为我们创建一个包含两个项目的解决方案:一个是我们的web项目,另外一个为我们的单元测试

clip_image020

NerdDinner目录结构的解释

但我们用Visual Studio创建了一个新的ASP.NET MVC项目,它将为这个项目自动的添加一些文件和目录。

clip_image022

ASP.NET MVC项目默认的有6个顶级目录。

目录

目的

/Controllers

放置处理URL请求的Controller 类

/Models

放置表现和控制数据的类

/Views

放置显示输出的界面模板文件

/Scripts

放置JS库文件 (.js)

/Content

放置CSS和图片文件,以及其他非动态和非JS的你为荣

/App_Data

放置你要读取和写入的存储数据文件

ASP.NET MVC非必须为此结构,事实上,,工作于大型项目的开发者会通过建立多个项目去分割项目,使之易于管理(比如:数据模型类通常在一个独立于web项目的类库项目中)。这个默认的项目结构,是提供了一个好的默认目录习惯,这可以保持我们的项目更关注与简洁。

当我们展开/Controllers目录,我们会发现Visual Studio已经默认的为这个项目添加了2个controller 类- HomeController 和AccountController

clip_image024

当我们展开/Views目录,我们将会发现三个子目录-/Home,/Account和/Sharded–,同时默认的为该项目添加了一些模板文件

clip_image026

当我们展开/Content和/Scripts文件,我们会发现一个用来风格化这个网站上所有的HTML的Site.css的文件,同时还有可以启用ASP.NET AJAX和在本项目中支持jQuery的JS类库

clip_image028

当我们展开NerdDinner.Tests项目,我们会发现包含了为我们的controller单元测试2个类:

clip_image030

这些 Visual Studio默认添加的文件提供了一个可以工作的项目的基本结构-完整的包含首页、关于页面、账户登录/登出/注册页面,以及一个没有处理的错误页面(all wired-up and working out of the box)

运行这个NerdDinner项目

我们可与运行这个项目用,“调试”->“启动调试”或者“调试”->“开始执行(不调试)”菜单

clip_image032

这将启动来自于Visual Studio的ASP.NET内置的 Web-server

clip_image034

下面是我们的项目运行时的首页(地址:”/”)

clip_image036

点击“About”的标签将会显示关于页面(地址:”/Home/About”):

clip_image038

点击右上方的“Log On”链接将会带我们到登陆页面(地址:”/Account/LogOn”)

clip_image040

如果我们没有登录账户,我们可以点击regiter link(地址:”/Account/Regeister”)创建一个

clip_image042

执行上面的home, about, and logout/ register功能的代码在我们创建新项目时已经被默认添加。我们将利用它作为我们项目的出发点

测试 NerdDinner项目

如果使用的是Visual Studio 2008的专业版或者更高版本,我们可以使用Visual Studio内置的单元测试IDE支持区测试这个项目

clip_image044

选择一个上面的选项将会打开该IDE的“测试结果”面板,并且提供给我们新项目中涵盖的27个单元测试的“通过/失败”状态。

clip_image046

接下来的教程我们将讨论更多的自动化测试,并且添加另外的我们完成的项目功能的单元测试。

接下来的步骤

我们现在已经有了一个基本的项目结构,让我们开始为存储项目数据创建一个数据库

[注意:你可以下载一个完整版本的NerdDinner 项目: http://nerddinner.codeplex.com]

------------------------------------------------------------------------------------

更多技术文章,欢迎登陆www.qx-net.cn

------------------------------------------------------------------------------------

撤了撤了,太简单了,也有人已经翻过了,地址在评论中看。 

posted @ 2009-06-17 14:44  itboy  阅读(1202)  评论(6编辑  收藏  举报