思归呓语

衣带渐宽终不悔,为伊消得人憔悴
随笔 - 409, 评论 - 2969, 引用 - 245

导航

关于

标签

每月存档

最新留言

广告

 

有位网友把微软的PetShop 3.* 用开源技术重写了,要我提提意见。

首先,我要对这位网友表示感谢,支持和鼓励,让我们见识到了Java世界里时兴的技术/模式在.NET开发中的具体应用。随着这些时兴技术不断地移植到.NET中,我们开发人员会有越来越多的选择。你不需要等ObjectSpaces,类似技术已经在这里

我的看法是,微软的PetShop 3.*,除了跟Sun的J2EE版本做比较外,主要是提供了一个可做参考的样品,在当前.NET的框架,类库下,怎么手工实现分层应用。这里面涉及很多细节,怎么设计业务层/持久层,怎么做事务,业务层与持久层怎么交互,表现层怎么跟应用层交互,等等,这对初学者来说,是个很好的指导,让人了解在多层应用中,具体都需要做什么。由于O/R的差别,在大型项目中,很多时候大概会用专门的O/R Mapper或持久框架。象NHibernate这样transparent,non-intrusive的技术,指明了很好的方向。但不管用什么,多层应用里所涉及的细节都是需要了解的。在这一点上,对一个.NET开发人员而言,我想,微软的PetShop serves its purpose。

我同意,微软的PetShop要真正成为Best Practice的样板,有不少需要提高,完善的地方。譬如他们的Domain Model,用Martin Fowler的说法是有点贫血(Anemic),但这也许是因为这应用本身没有多少业务逻辑,有人指出过里面不少的缺点,也有人指出过SQL Server / Oracle的实现是否用Bridge模式来实现更恰当些。

但我觉得,这位网友把几个层都做了大改动,基本上就是重写了,不再是“重构”了。而且我觉得这位网友没必要局限于微软的PetShop implementation,而应该从原来的J2EE的blueprint出发,用那些开源技术完全重新实现PetShop,也许更可体现这些技术的好处。同时希望这位网友能把其中的要点写成文章发表。

需要指出的是,象NHibernate/Spring.Net等技术还是在Beta甚至Alpha阶段,在正式的production项目中,要慎用

打印 | 张贴于 2005-02-05 21:28:00 | Tag:暂无标签

留言反馈

#PetShop is Evil? 编辑
PetShop,本来是当年MS在推.Net时,对应Java的PetStore推出的一个演示demo,这个东西本来就是演示性的,或者说很大的用处是对初学者如何快速地对平台框架了解以及基本的企业级开发概念学习——换言之,你并不应该把它当作Best Practice来指导知道开发,因为就一个真正的企业级开发模型来说,它还是不够称职,但是由于.Net开发界的重代码轻架构的风气(你看看多少讨论代码技巧组件设计的文章就知道了),它竟然成了很多.Net程序员进行架构设计的圭臬,实在是太拔高PetShop了!
2007-09-20 16:12:00 | [匿名用户:leon1005]
#PetShop is Evil? 编辑
文章转摘自:http://abluedog.cnblogs.com/archive/2006/04/22/382391.html

PetShop is E
2006-05-29 20:40:00 | [匿名用户:博学而笃志、切问而近思------About Boz's Wor]
#re: PetShop.NET 编辑
Good... How do I get the source code?
2005-06-21 22:19:00 | [匿名用户:Alan]
#re:PetShop.NET 编辑
PetShop.NETooeess
2005-06-02 11:31:00 | [匿名用户:粗糙度仪]
#re:PetShop.NET 编辑
^_~,pretty good!18showsseeoo
2005-04-25 20:56:00 | [匿名用户:测厚规]
#re:PetShop.NET 编辑
^_^,Pretty Good!
2005-04-14 14:03:00 | [匿名用户:旋转粘度计]
#re:PetShop.NET 编辑
^_^,Pretty Good!
2005-04-10 19:39:00 | [匿名用户:测汞]
#re: PetShop.NET 编辑
ORM真的可以搞定一切的话数据库都不需要存在于那么多形式了
我是说有些东西和ms提倡的不符
一般说来这样就会比较危险(归纳结果~)
2005-02-06 20:26:00 | [匿名用户:sunmast]
#re: PetShop.NET 编辑
我有两个问题

如果NHibernate已经运用比较广泛了,ObjectSpace出来还有市场么?

另外我感觉DataSet提供了自动序列化机制,远程传送比较方便,还有数据绑定机制. 现在是否有好的对象组装层框架,将 .NET Plain Object 组装成可序列化DTO之类的东西?
2005-02-06 09:50:00 | [匿名用户:evan]
#re: PetShop.NET 编辑
p2p
2005-02-06 00:39:00 | [匿名用户:p2p]
#re: PetShop.NET 编辑
p2p
2005-02-06 00:39:00 | [匿名用户:p2p]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.1.8