【翻译】Building a Simple Blog Engine with ASP.NET MVC and LINQ - Part 1

摘要

微软发布了ASP.NET 3.5 Extensions的第一个CTP版本,它包含ASP.NET 3.5的一个重要的extensions:ASP.NET MVC Framework。本系列文章拟使用ASP.NET MVC和LINQ建立一个简单的Blog系统,在第一部分,Keyvan介绍了MVC模式、ASP.NET MVC Framework以及简单Blog系统的基本原理。
原文地址:Building a Simple Blog Engine with ASP.NET MVC and LINQ - Part 1

内容

  • 简介
  • 什么是MVC?
  • 什么是ASP.NET MVC Framework?
  • KBlog基础
  • 创建项目
  • 开始
  • 进一步阅读
  • 小结

简介

几周前发布了ASP.NET 3.5 Extensions的第一个CTP版本,它包含了ASP.NET MVC Framework的第一个公共版本。网络上已经有了很多教程、博文和Web Cast,它们都是学习这个MVC Framework的优秀资源。

我打算写几篇关于ASP.NET MVC Framework的文章,使用MVC和LINQ来建立一个简单的Blog系统。我将为您呈现所有步骤的细节,并对一些深层次的话题展开讨论。我现在还没有完成该系统,我将在撰文的同时编写代码。

这个简单的应用包含在ASP.NET MVC Toolkit中,但还没有详细的描述。为什么在已经有了相似教程的情况下,我还要写这个系列呢?在我看来,学习MVC Framework的曲线必须遵循几个步骤,建立一个简单Bolg系统并且描述其过程,将是学习ASP.NET MVC Framework的一个非常好的例子。

本文是该系列文章(我将在几周内完成这个系列)的第一篇,主要介绍一些基本信息。

什么是MVC?

是啊,什么是MVC呢?其他人已经更好的阐述了这个概念,但我想用自己的语言来复述。

MVC是一个方法论,它基于将实现划分为Model、View和Controller三种角色的理念来构建应用。

让我们再来看看上面的句子。我们认为MVC是一个方法而非技术,因此在微软将它用于ASP.NET前已经有了许多应用。我强调这一点是因为曾经看到一些家伙认为MVC是一种专为ASP.NET设计的技术。

我仍然需要简单的介绍一下这三个角色:

  • Model:维持状态的角色。通常是描述数据库中数据的类。
  • View:通过用户界面向最终用户呈现数据的角色。它可能是一组用户界面元素,如文本框、编辑器或按钮。
  • Controller:负责接收用户输入并进行处理的角色。事实上,Controller实现当前逻辑以处理用户请求。

要设计依赖于数据交互的应用,使用MVC是一个非常好的方法。MVC最大的优点是可以轻松的实现单元测试。通过Controller可以很方便的对MVC应用进行单元测试以及实现测试驱动的流程(Red-Green-Refactor)。

图1展示了MVC模式的结构,Model独立于Controller和View,这使得Model的测试更加容易。另一方面,Model、View和Controller的分离可以使开发者轻松的测试MVC应用。实际上,将作为用户界面元素的View和Controller、Model分离是非常重要的,它简化了测试过程。

图1 MVC结构

 


对于MVC我不再进行过多的讨论,你可以参考Scott Guthrie's postWikipedia,这些足够你入门了。

什么是ASP.NET MVC Framework?

ASP.NET MVC Framework是微软将MVC在ASP.NET中的应用,在ASP.NET 3.5中,提供了建立基于MVC的Web应用所必须的特性。

ASP.NET MVC Framework目前仍在构建中,并且作为ASP.NET 3.5 Extensions CTP的一部分,只有一个公共版本可供下载。

当你下载并安装了这个组件,你就可以感受到来自ASP.NET Extensions方方面面的优点,它还在Visual Studio 2008上自动安装了一些项目模板。

与这个下载组件一起的,还有一个MVC toolkit package,它提供了开发MVC时一些有用的工具。在本系列文章中我也将使用它们。

KBlog基础

在本系列文章中,我将创建一个简单的Bolg工具,我称之为KBlog。

该Bolg系统支持Blog发布、评论和分类。一篇Blog只能有一个种类,但可以有任意多的评论。该系统只面向单一用户,并且包含一些URL模式以处理公共和私有页面。所有这些都包括自己的ID。简便起见,KBlog不支持将name作为URL的一部分。

作为第一步,我将使用SQL Express作为数据库。我手工填入一些数据,在完成公共页面的讨论之后,我将介绍管理页面,用户可以通过管理页面输入数据。

创建项目

显然,第一步是在Visual Studio中创建一个项目。如果成功安装了ASP.NET 3.5 Extensions CTP,在Web类别下,可以看到"ASP.NET MVC Web Application"项目。我将该系统命名为KBlog(图2)。

图2 新建一个ASP.NET MVC Web Application项目

 


之后,Visual Studio将按照预定义的模板和结构生成项目。

开始

Visual Studio生成了一个结构简单的ASP.NET Web Application项目。

3 ASP.NET MVC解决方案结构

 


该项目包含一些引用,最重要的一个是System.Web.Extensions装配件。另外还包括四个文件夹,Content、Controllers、Models和Views。

  • Content文件夹仅保存一个默认的CSS样式文件。
  • Controllers文件夹保存Controller类。
  • Models文件夹保存Model类。
  • View保存视图文件,并且包含一些含有aspx和master文件的文件夹。

正如你所见,Controllers、Models和Views对我们来说更重要一些,因为它们是用来保存Controller、Model和View的。这样的命名并不是定死的,你可以用自己的结构来替代。

除此之外,还有一些众所周知的ASP.NET文件夹,它们的额外定义稍后会介绍。

需要说明的一点是文件Default.aspx,正如它的内容所描述的那样,为了使IIS在用户访问到该页时为应用程序激活MVC,你不能删除该文件。

本文介绍到这里已经差不多了。循序渐进地,我将在接下来的文章中为该项目添加一些实现。

进一步阅读

下面的列出了一些非常优秀的Blog资源,你可以阅读以进一步了解ASP.NET MVC Framework,它们已经包含了有关ASP.NET MVC的极好的资料。这项技术对于ASP.NET来说是全新的,因此目前的资源并不是很多,但幸运的是,MVC在开发中已经十分流行,在这短短几周中,我们已经看到了业内的强烈反响。

小结

在该ASP.NET MVC Framework系列文章的第一篇中,我想您介绍了MVC模式、MVC的基本原理、ASP.NET MVC Framework以及将在该系列文章中编写的简单Blog系统的基本信息。我还在ASP.NET MVC中保留了MVC解决方案的结构。

在接下来的部分中,我将逐步建立这个Blog系统,并介绍有关ASP.NET MVC Framework的原则和技术。

 

posted @ 2008-01-30 17:12 麒麟.NET 阅读(...) 评论(...) 编辑 收藏