【翻译】使用ASP.NET MVC 和 LINQ 创建一个Blog引擎实例-第一节
摘要
微软发布了第一个CTP 的 ASP.NET 3.5 Extensions 并且包含ASP.NET MVC Framework 为ASP.NET 3.5的主要扩展。这篇连载文章的第一部分是如何使用 ASP.NET MVC 和 LINQ 创建一个Blog引擎实例,Keyvan 介绍了MVC 模式,ASP.NET MVC Framework, 和一个Blog引擎实例的基础。
说明
几周前微软发布了第一个CTP的 ASP.NET 3.5 Extensions ,它包含了一个公开版本的 ASP.NET MVC Framework。在Blog和web cast上有很多非常好的关于MVC Framework 的web教程资源。
我要写的这篇文章是关于ASP.NET MVC Framework 创建基于 MVC 和 .NET 3.5 的 LINQ 的一个Blog引擎实例,并且显示了所有的详细步骤,然后扩展出更多的问题进行深入的讨论。
ASP.NET MVC工具包中提供了这样的一个示例程序,但是还没有一个对它的说明。但是为什么我要做类似与这个实例的其他教程呢?个人认为,这个MVC Framework 的学习曲线组成了一个工作流程进度的几个步骤。这里遵循以上主要步骤,来创建这个Blog引擎实例,并且过程的描述是一个非常好的 ASP.NET MVC Framework的例子。
所以这里是这一系列的第一部分(我想在最近几周结束它),他是一个对基础知识的介绍。
什么是MVC?
是的,到底什么是MVC?其他人介绍过了,但是我依然要重复下。
Model View Controller (MVC)是构建一个将应用程序底层分隔成三个角色的概念:Model ,View ,Controller
让我们来看下第二句。从上面的句子中我相信MVC是一个方法而不是技术,所以Microsoft在ASP.NET引入这个概念之前我们就在使用它。因为有些人说这个技术是专门为ASP.NET设计的,我坚定的认为是错误的。
我还需要介绍下包含的三种角色:
- Model:这个角色主要是维护一个状态。通常这些类代表的是数据库中的数据。(数据实体类)
- View: 第二个角色是在用于界面上显示最终用户的数据。这可能是在用户界面放文本框,编辑框和按钮等许多元素。
· Controller: 最后一个角色是负责用户录入和处理的交互。实际上,controller 是实现用户请求后的实际处理逻辑。
MVC是一个非常好的数据交互的应用程序设计方法。最重要的是MVC使得应用程序的单元测试变的更简单,因为你可以在MVC应用程序的Controller中轻松应用TDD工作流(Red-Green-Refactor)进行单元测试。
Figure 1 显示MVC模型结构,Model是独立于 Controller 和 View,所以这个使 Model 能够从 Controller 和 View 中更容易进行测试。另一方面,这是一个分离的 Model,View,Controller 使得开发者测试这个MVC应用程序变得更简单。实际上View就像用户界面元素、Controller、Model的分离重要的是简化了程序的测试过程。
Figure 1: MVC结构
我不在讨论关于MVC的更多内容,你可以去查看Scott Guthrie's post中关于它的文章,或者去Wikipedia上查看相关的内容,这些足够可以使你入门。
什么是ASP.NET MVC Framework?
ASP.NET MVC Framework 是微软采用 MVC 到 ASP.NET 3.5版本的技术,这个MVC的新特性必须建立在一个web应用程序上。
ASP.NET MVC Framework 是还在完善。现在唯一公共发布和下载的版本是ASP.NET 3.5 Extensions CTP。
一旦你下载和安装了这个包,你会在ASP.NET 3.5 Extensions 的其他部分也将获益,并且在你的Visual Studio 2008中自动安装该项目模板。
MVC toolkit package 下载包是为你在开发MVC时提供了许多有用的工具。我可能会在文章使用它。
KBlog摘要
这个文章系列,我建立一个Blog工具样板示例,我给他起名叫KBlog。这个Blog引擎的将在顶部生成一些注意事项的描述。
这个Blog引擎支持Blog文章发布,回复和分类。一个Blog文章拥有一个分类和许多可允许的回复。这个Blog引擎是单独用户,拥有一些公有和私有页面URL的模式。每个内容将有一个ID,KBlog不支持文章发布名称作为URL的一部分,使应用程序更简单一些。
第一步,我将使用SQL Express为我的数据库。我手动填充这个数据库,并且完成我的讨论和公共页面,我将跳到管理员页面的详细信息,用户可以在这里录入数据。
创建一个工程
很明显,第一步我要在 Visual Studio 中创建一个工程。在Web分类下选择ASP.NET MVC Web 应用程序项目标签,前提是你要正确的安装ASP.NET 3.5 Extensions CTP。我的项目名字叫KBlog(Figure 2)。
Figure 2: 创建一个新的ASP.NET MVC Web 应用程序项目
完成后,Visual Studio 会生成一个你使用的模板和结构的项目。
入门
乍一看,Visual Studio 生成了一个实例架构的ASP.NET web 应用程序项目
Figure 3: ASP.NET MVC解决方案架构
看一下这个项目,你认为项目添加了一些引用和一个重要的System.Web.Extensions程序集引用。他们也就是包含了四个有效的文件夹 Content,Controllers,Models,Views。
· Content 文件夹只是一个站点的默认外观的CSS样式表文件。
· Controllers 文件夹是负责保存Controller类。
· Models 文件夹是负责保存Model类。
· Views 文件夹是负责保存View文件,包含有ASPX和Mater文件内容的文件夹。
就像你看到的,Controllers,Models,Views 都是很重要的。当它生成用于保存Controllers,Models,Views,这不是规则,你可以在我们的架构中替换它。
这些文件夹旁边,是一些众所周知的 ASP.NET文件,当然这些额外定义的我将会在后面描述他们。
这里要提及一点关于Default.aspx文件并且这个内容页面所提到的,你不应该删除这个文件,在当用户操作这个页面时IIS会激活MVC应用程序。
现在足够了。一步一步的,在后面的文章中我将添加我的项目实现。
其他阅读材料
这里有一些很好的Blog 你可以使用这些关于ASP.NET MVC Framework的材料更进一步的理解,并且他们已经包含了关于ASP.NET MVC 的优秀信息。在ASP.NET中这是个全新的技术,所以我们希望在将来看到更多关于它的资源,但是幸运的MVC在开发者中将变的非常受欢迎,并且我们会在最近几周里看到针对它好的反应。
概要
我的系列文章第一部分是关于新的ASP.NET MVC Framework,我想你介绍了MVC模式,基本的Model View Controller 和ASP.NET MVC framework,以及关于我将要写的这个系列中的一个Blog引擎示例的基础信息。我也在ASP.NET MVC覆盖了关于MVC的结构。在将来的文章中,我将一步一步的创建这个Blog引擎,并且向你展示一些关于ASP.NET MVC Framework的原理和技巧。
原文地址