** .Net Petshop ** ** 详解(一): ** ** petshop ** ** 概览和准备工作 ** ** **
Youther
** 前言 ** ** **
Microsoft 公司为了配合推出 .NET 战略 , 不仅发布了一系列的开发工具和开发平台 , 同时还推出了 .NET 平台上的示范应用 . 其中的 .Net Petshop 就是极好的一例 . 这个电子商务的开发应用是为了应对 J2EE 平台而出炉的 , 在 J2EE 平台上 Sun 公司也有一个完整的实例 ----J2EE Petstore, 它体现 J2EE 的 BluePrint 。二者解决的问题是一样的,功能也大同小异,界面也是如出一辙。自然是公说公有礼,婆说婆有礼了,我们姑且不管双方怎么声称自己的东西好,但是从中也能足见 .NET 和 J2EE 平台上的完美杰作是怎么样的一个实现。在这里,本人无意去争辩问题的胜负,也不打算去探讨 J2EE 是怎么样的解决方案和实现,只是作为纯粹的技术角度来管窥 .NET 平台上的 .Net Petshop 是如何一套的解决方案和实现的。我想,最好的学习,莫过于钻研这样的一套大的经典的系统,从设计的思想到最好的编码,毫无疑问对于我们将是大有裨益的。在这里,我将陆续的系列中逐步与大家一起探讨详解 .Net Petshop 的方方面面。希望大家多多指正!
** .NET Pet Shop ** ** 解决问题的描述 ** ** **
.NET Pet Shop 是一个电子商务的实例,是在 Microsoft 的 .NET 平台上的一个具体实现。这个系统包含了 B2C 和 B2B 的实现。在这里我主要将的是 B2C 实现的部分, B2B 在 .NET Pet Shop 里面不是重点要解决的问题。
.NET Pet Shop 是一个在线的宠物购物系统,用户可以通过各种能够连接到 internet 的终端(包括移动终端)进行在线购物(具体界面见图一)。在这里,我将列出它将要实现的功能,也就是需求了:
(1) 用户帐号的管理功能:包括帐号创建,帐号登录,帐号维护;
(2) 产品浏览功能:类别浏览,具体产品浏览,详细信息,库存信息等等;
(3) 用户购物功能:添加购物,计算总价,下订单等等。
** 图一 ** .NET Pet Shop ** 系统的登录主界面 **
** .NET Pet Shop ** ** 的逻辑结构 ** ** **
.NET Pet Shop 按照三层的分层模型来部署整个系统。 .NET Pet Shop 分为数据展示层,中间层,数据层。这三层被清晰的分割为分布式应用的三个方面。其中数据展示层主要是完成界面和与最终用户交互的功能,在应用程序里面是一些 aspx 的页面和代码;中间层用于封装商业逻辑和规则,在应用程序里面被封装为 .NET 组件;数据访问通过中间层中的数据访问组件与 SQL Server Provider 交互,所有的数据获取依靠存储过程来进行,而不是通过 SQL 语句。图二是参考 petshop 的白皮书说明 .NET Pet Shop 的物理部署结构。
图二 .NET Pet Shop 部署结构
** .NET Pet Shop ** ** 的开发环境支持 ** ** **
Microsoft 的 .NET 战略是如此的宏大,同样的 .NET Pet Shop 需要的开发环境同样是很壮观的。以下是我调试 .NET Pet Shop 的环境,有些东西是可以替换的,有些不是必须的。大家可以根据自己的情况调整。
(1) 操作系统 win2000 server , web 服务器 IIS5.0 ,数据库服务器 SQL Server 2000;
(2) 开发工具 Visual Studio.NET 企业设计版。
在这里如果大家想很快的知道 .NET Pet Shop 的 UML 模型,可以利用 Visio 来进行反向工程,就可以自动生成静态的类图(但是不可能生成用例图和序列图等等的)。同时 Visio 也可以对已经有的 petshop 数据库进行反向工程,生成数据库模型,从而对理解 .NET Pet Shop 大有帮助,也能够管窥一点微软的建模方法和设计过程。
** .NET Pet Shop ** ** 系统的安装 ** ** **
.NET Pet Shop 的示例程序代码和白皮书可以在 Microsoft 的 msdn 网站上下载到,也可以到 http://www.gotdotnet.com/compare 去下载。
在 petshop 的文件夹下有 database 、 petshopdoc 和 web 以及 webservice 几个文件夹。 Database 是数据库的安装脚本,将你的数据库的 sa 密码设置为空即可直接运行这些脚本安装。 Petshopdoc 是英文的白皮书,后面的比较有参考价值了。 Web 是我们将要讨论的大部分程序代码。 Webservice 是用于发布的 web 服务。
下一篇我将就 .NET Pet Shop 的三层应用程序结构作详细的剖析。