将MS的PetShop3.2进行了比较大的重构

lihao9806 2005-02-04 01:35:16
1、重构原因:

微软的PetShop作为标准企业应用示例中的一个已经推出了很多个版本,目前的3.2版本和以前的版本相比较,平心而论确实有了很大的提高(1.0版本无论是体系结构还是代码编写都足可以作为一个很好的反面示例,呵呵)。但是还是非常的不理想,很多.net程序员居然把它视为以面向对象方式开发的.net应用的经典。为了纠正目前这种落后的实现方式(意识),做了这次重构,希望可以给大家做一个参考,实现的很仓促,肯定还有很多的不足,大家多提意见继续完善这个例子。(不过目前我觉得由于这个例子太过简单,不能真正做到示例OOD、OOP的目的。)

2、重构内容:
1、数据访问层由于改用nhibernate实现比重构前减少了1000多行代码。重构前支持oracle和MsSql,重构后可以支持任意的数据库。
2、业务逻辑层由领域模型,取代了重构前的“贫血的实体类” + “控制类”模式。
3、业务逻辑层不再直接依赖于COM+,更易于测试。(这个DEMO没有加入单元测试)

注:为了增强说明性和更好的进行对比,保持了原有的表示层和关系模型。实际上,我觉得最应该重构的就是它的关系模型,不过一个比较“烂”的关系模型可能会更好的示例nhibernate吧,呵呵。重构后的代码总量比重构前减少了三分之一。

3、系统环境:
1、.net1.1
2、nant0.85 + nantcontrib-0.85-rc1(这个我没放到包里,自己下载吧)
3、log4net1.2.0.30714
4、nhibernate-beta-0.6
5、sping.net0.6(不是目前官方release的那个,是通过目前cvs下载编译的。API和配置文件和以前都有些变化)

4、项目目录:
BLL: Domain Model
DAO: DAO
Web: 表示层
TransHelper:提供分布式事务支持能力(实现方式请参考 http://www.gotdotnet.com/team/dbox/default.aspx?key=2004-07-12T08:40:44Z)

注:其余目录有些是遗留的,我觉得还有用的就没删。

其他:

1、这个项目是用SVN管理的,如果想看到重构的“脚印”,可以给我发email(agilecoder@sina.com)
2、向大家推荐一款 NHibernate Query Analyzer,这个项目还处于发展中不是很成熟,但是想法很好。先加载好各种配置文件,然后你就可以随便写HQL语句了,它会自动即时生成SQL语句,即时提供错误信息。执行时会给出SQl Result(记录集)和HQL Result(对象图)。降低了编写和优化HQL的门槛和难度。( http://developer.berlios.de/projects/nqa/ )这个项目还是用SVN管理的,我很喜欢。

下载地址:http://forum.javaeye.com/viewtopic.php?p=59528
...全文
2661 97 打赏 收藏 转发到动态 举报
写回复
用AI写文章
97 条回复
切换为时间正序
请发表友善的回复…
发表回复
magiccoder 2005-05-26
  • 打赏
  • 举报
回复
leon-zxd@163.com
thanks
sfanpu 2005-05-26
  • 打赏
  • 举报
回复
嘿嘿,想看看
www141421com 2005-05-25
  • 打赏
  • 举报
回复
lifergb@hotmail.com
谢谢
smartcoffee 2005-05-19
  • 打赏
  • 举报
回复
mark
wwh207 2005-05-03
  • 打赏
  • 举报
回复
wwh207@tom.com
claus2001 2005-05-02
  • 打赏
  • 举报
回复
mark
fengyi999 2005-05-02
  • 打赏
  • 举报
回复
jf
singlepine 2005-04-30
  • 打赏
  • 举报
回复
singlepine@sina.com
强啊.
kv4000 2005-04-30
  • 打赏
  • 举报
回复
看到强贴,做个记号
麻烦楼主发一份
finesite@163.com
realljx 2005-04-21
  • 打赏
  • 举报
回复
QuitGame@gmail.com

多谢楼主 希望学习一下
gyf19 2005-04-19
  • 打赏
  • 举报
回复
yhcnux 2005-04-19
  • 打赏
  • 举报
回复
谢谢大家的支持!

我现在很想搞一个.net方面的研究和讨论各种开源框架技术的中文论坛呢。

不知道有兴趣的人多吗?
----------------------------------------------------------------

很支持这个想法,其实我在国内一直没有看到一个像javaeye那样,讨论问题能达到那种深度的论坛。。。。其实dotnettools不错(ccboy那个),可惜人气就差了些,而且现在更少有发文了,版面也少了点。楼主如果有想法,我想可以和ccboy联系一下,大家一起努力,把dotnettools办成一个dotnet方面的高级论坛,像javaeye那样的定位。
gaohaidong 2005-04-18
  • 打赏
  • 举报
回复
PetShop3.2最新版本的下载地址?
gaohaidong 2005-04-18
  • 打赏
  • 举报
回复
一个字

不过最好吧完整的项目提供下载
xubinhui 2005-04-16
  • 打赏
  • 举报
回复
多谢:xubinhui2001@163.com
alipaymate 2005-04-08
  • 打赏
  • 举报
回复
athossmth 2005-03-27
  • 打赏
  • 举报
回复
>>谢谢大家的支持!
>>我现在很想搞一个.net方面的研究和讨论各种开源框架技术的中文论坛呢。
>>不知道有兴趣的人多吗?

我很感兴趣……不过只是学习的兴趣……看了楼主的程序,感慨自己要学习的还很多很多……多谢楼主分享!
kirinboy 2005-03-27
  • 打赏
  • 举报
回复

kirinboy@163.com
多谢
zjz678 2005-03-26
  • 打赏
  • 举报
回复
Java视线论坛注册了用户,但是登录不了,麻烦给我发一份:
zjz7411@sina.com
xjbx 2005-03-24
  • 打赏
  • 举报
回复
xjbnet@162.net

谢了
加载更多回复(77)

17,748

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧