我们目前正在修改我们的架构和应用程序的设计。我们刚刚完成了数据访问层的设计,它是通用的,它使用XML和反射来持久化数据。
无论如何,我们现在正处于设计业务层的阶段。我们已经阅读了一些与企业架构和设计相关的书籍,因此我们发现可以应用于业务层的模式很少。表模式和域模型就是这样的模式的例子。此外,我们还发现了领域驱动设计。
早些时候,我们决定针对表对象构建实体。但是我们发现当涉及到DDD时,实体和值对象是不同的。对于那些经历过这种设计的人来说。请指导我相关的模式,实践和样品。
提前谢谢你!另外,如果你不明白我的观点,请随时讨论。
发布于 2010-06-10 10:57:12
@Adil,这不是对你最初问题的回答,但我建议你修改你的决定,推出你自己的数据访问层。你注意到你想去NHibernate:现在就去做。
除非您有一些非常具体的限制,否则编写ORM是浪费时间。有大量的选择,已经投入了数百小时的努力。利用它!LINQ2SQL,Entity framework,NHibernate,Subsonic,LLBLGen都很好,而且还有更多。
还要注意的是,如果你使用你自己的,你将无法使用LINQ的好处,如果没有很多努力的话。
就分层而言,尽量不要发疯:控制住层的数量,专注于在它们之间构建一个有价值的接口,以防止您的抽象泄露。
我见过许多非常“模式化”的、层次分明的项目,在使用过程中,到处都是逻辑,到处都是持久性抽象。保持简单!
发布于 2010-05-25 13:30:44
CSLA.NET作为业务层的基础工作得很好。
发布于 2010-05-25 16:57:41
@Adil,
我不是一个非常有经验的用户,不管怎样,这是我正在使用的模型(也适用于NHibernate)。
NHibernate负责创建新对象实例的目录DAL -负责实现与GUI交互的类的地方。NHibernate映射文件在这里。
Model - BLL和DAL用来在对象之间进行数据传输的类库。
使用不同的模式。例如,BLL和DAL有一个允许访问接口的Factory类。目录是单例类。所有的目录都可以使用表示我的业务逻辑顶级对象的主单实例类来访问(例如,“企业”=> "Enterprise.PeopleCatalog“。
不管怎样,希望它能帮上忙。
@AngryHacker,谢谢你的提示,你能举一个CSLA.NET的例子吗?
https://stackoverflow.com/questions/2902181
复制相似问题