拙人新书《ASP.NET3.5前沿技术与实战案例精粹》上架,有问题的读者请到本页面论坛处提出。对此不便(需要先在IT168注册),表示真诚的歉意!

以MVC#框架重构ASP.NET MVC Store示例网站(模型层设计)

上一篇 / 下一篇  2008-07-08 20:00:02 / 个人分类:ASP.NET MVC

朱先忠 编译

(原文URL
http://aspalliance.com/1651_Reworking_ASPNET_MVC_Store_with_MVC_Framework

【摘要】在本文中,我们将介绍如何使用MVC#框架来改造一个现有的由Scott Guthrie编写的ASP.NET MVC应用程序。在介绍的过程中,我们主要立足于对比使用MVC#ASP.NET MVC两种框架开发Web应用程序所各自经历的各个阶段的相同与区别之处。

一.         简介

前不久,微软新研发了一种称为ASP.NET MVC的模型-视图-控制器框架。它遵循基本的MVC模式并提供了一组构建良构的可测试的三层应用程序的工具集。然而,MVC并不仅仅是一个构造三层应用程序的结构化方案。与之形成对比的是,还存在另一个为众人周知的开发方案,称为模型-视图-描述模式(简称为“MVP”)。其实,MVP模式是在MVC方案出现大约10年以后才出现的。其设计目的是为了改进传统的MVC框架,达到消除MVC框架所既存缺陷并进而予以改进之目的。事实上,MVP也的确存在较之于MVC方案不少的优越之处,以致于许多人都优先考虑选择MVP而不是MVC框架来开发Web应用程序。

在本文中,我们将探讨.NET平台下的一个新的称为MVC#http://www.mvcsharp.org/)的MVP框架。为了方便起见,本文直接基于Scott Guthrie编写的ASP.NET MVC示例应用程序(原工程参考地址为
http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx
)。但是,我们在此想使用MVC#框架来重新实现这个工程,从而展示MVC#(以及所有MVP模式)优越于ASP.NET MVC框架的地方。

【提示】强烈建议读者结合Scott Guthrie的博客中文版URL
http://blog.joycode.com/scottgu/archive/2007/11/14/111385.aspx
http://blog.joycode.com/scottgu/archive/2007/12/04/112249.aspx
http://blog.joycode.com/scottgu/archive/2007/12/07/112355.aspx
http://blog.joycode.com/scottgu/archive/2007/12/10/112465.aspx

处的中文示例进行对比学习与研究。

二.         Scott GuthrieASP.NET MVC Store示例网站功能简介

我们要重构的这个ASP.NET MVC应用程序包括若干视图。在本文中,我们主要讨论四个视图,它们分别是:欢迎视图、产品种类视图、产品视图(用于列出相应于某个特定产品种类的产品的详细信息),以及产品编辑视图。

当一名用户点击产品种类列表下的某一种类时,他将被导航到此种类相应的产品视图。如果他在产品视图中点击一种产品处对应的“Edit”命令,那么此产品对应的“编辑产品”视图将被打开。最后,用户就可以在产品修改视图中修改产品细节,并且可以通过点击“保存”按钮提交所作的修改结果。图1展示了这个示例网站运行过程中几个主要的界面。

1Scott GuthrieASP.NET MVC Store示例网站主要界面

三.         模型层设计

模型是每一个应用程序的核心。它包含了应用程序的其他部分所依赖的应用程序域的定义。这也正是设计应用程序为什么经常从构造模型开始。

至于实现模型层的方法,有多种方式。开发者可以使用常规的.NET 2.0数据集,或更时髦的面向对象的Linq+实体框架工具集,或者是使用例如NHibernateCapableObjects ECO等第三方工具。无论如何,ASP.NET MVCMVC#框架都无法限制开发者选择实现模型层的技术。

在本文示例中,我们的模型将包括三个域概念:CategoriesSuppliersProducts。这些概念间的关系非常简单:每一个产品隶属于某一种产品类别和一个产品供应商。为了最大限度地扩展程序,我们将使用类型化数据集来实现模型层。因此,我们的模型在Visual Studio数据集设计器中将看上去如图2所示。


2—使用Visual Studio数据集设计器构建数据模型及其关联关系

为了使用一种一致的方式来访问模型对象,我们还使用Singleton模式来设计数据集类。于是,我们可以很容易地通过NorthwindDataSet实例对象来实现对于域对象的访问。


TAG: mvc

引用 删除 Guest   /   2011-08-10 10:16:04
原帖由Guest于2011-02-16 14:00:41发表
引用 删除 Guest   /   2011-08-10 10:15:56
5
引用 删除 Guest   /   2011-02-16 14:00:41
5
引用 删除 Guest   /   2011-01-18 08:38:46
-5
引用 删除 Guest   /   2010-09-08 13:15:37
3
引用 删除 Guest   /   2009-11-13 10:08:14
-5
引用 删除 Guest   /   2009-09-09 16:42:27
-5
引用 删除 Guest   /   2009-08-08 20:32:06
5
引用 删除 Guest   /   2009-08-01 17:16:27
5
引用 删除 Guest   /   2009-07-06 16:26:02
垃圾 大便
引用 删除 Guest   /   2009-07-06 16:25:29
-5
引用 删除 大大   /   2009-06-09 15:52:42
引用 删除 hcbnerd   /   2009-05-31 08:11:53

引用 删除 Guest   /   2009-04-22 13:26:02
-5
引用 删除 Guest   /   2009-04-02 15:32:56
5
引用 删除 Guest   /   2009-02-24 09:17:51
5
引用 删除 Guest   /   2008-11-08 23:04:49
-5
引用 删除 rr   /   2008-10-17 22:25:51
5r4
引用 删除 Guest   /   2008-10-14 20:32:42
1
引用 删除 hmily_hong   /   2008-09-24 09:11:12
5
引用 删除 Guest   /   2008-09-09 15:42:46
-5
引用 删除 Guest   /   2008-09-07 16:04:33
-5
引用 删除 Guest   /   2008-08-13 09:10:01
3
引用 删除 小鱼   /   2008-08-04 14:38:41
引用 删除 Guest   /   2008-08-04 14:38:19
1
引用 删除 Guest   /   2008-07-13 14:55:07
5
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2012-02-10  
   1234
567891011
12131415161718
19202122232425
26272829   

数据统计

  • 访问量: 176810
  • 日志数: 479
  • 图片数: 2
  • 文件数: 39
  • 书签数: 74
  • 建立时间: 2008-06-11
  • 更新时间: 2012-01-18

RSS订阅

Open Toolbar