.Net Petshop详解(一): petshop概览和准备工作

.NetPetshop是一个基于.NET平台的电子商务示例应用,采用三层架构设计,实现用户账号管理、产品浏览及购物等功能。
.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的三层应用程序结构作详细的剖析。
关键是系统架构代码学习两方面,对初学提高有很大帮助 petshop5.0比较大,代码已经解压出来 4.03.0没有解压出来,自行安装解压(需要SqlServer数据做连接或者在安装到数据库连接时直接拷贝出来) petshop5.0 基于.NET Framework 3.5 ------------ 使用LINQ to SQL改进数据访问层 PetShop.Model.DataContext.MSPetShop4DataContext 继承System.Data.Linq.DataContext PetShop.Model.ProductInfo与PetShop.Model.CategoryInfo实体类分别映射数据库表 PetShop.Model.ProductInfo其中的Category属性存在的关系 PetShop.Model.CategoryInfo中的Products属性存在对多的关系 使用WCF来提供RSS, web/FeedService.svc目录下 PetShop.SyndicationFeeds 并在UI层上做些改进,如使用ASP.NET AJAX,ListView控件等。 在PetShop 5.0中引入了异步处理机制。 插入订单的策略可以分为同步异步,两者的插入策略明显不同,但对于调用者而言,插入订单的接口是完全样的,所以PetShop 5.0中设计了IBLLStrategy模块。 虽然在IBLLStrategy模块中,仅仅是简单的IOrderStategy,但同时也给出了个范例信息,那就是在业务逻辑的处理中,如果存在业务操作的多样化,或者是今后可能的变化,均应利用抽象的原理。或者使用接口,或者使用抽象类,从而脱离对具体业务的依赖。 不过在PetShop中,由于业务逻辑相对简单,这种思想体现得不够明显。 也正因为此,PetShop将核心的业务逻辑都放到了个模块BLL中,并没有将具体的实现抽象严格的按照模块分开。所以表示层业务逻辑层之间的调用关系,其耦合度相对较高: PetShop4.0源代码 .NET Pet Shop4 应用程序的设计说明了构建企业 n 层 .NET 2.0 应用程序的最佳做法,这种应用程序可能需要支持各种数据库平台部署方案。 .NET Pet Shop 4 项目的目标是: 工作效率:减少了 .NET Pet Shop 3 的代码数量 - 我们减少了近 25% 的代码。 利用 ASP.NET 2.0 的新功能 - 我们利用母版页、成员身份配置文件,并设计出个新的、吸引人的用户界面。 企业体系结构:构建个灵活的最佳做法应用程序 - 我们实现了设计模式,以及表示层、业务层数据层的分离。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值