繁体   English   中英

业务层设计

[英]Design of Business Layer

我们目前正在改进我们的架构和应用程序设计。 我们刚刚完成了数据访问层的设计,它是通用的,因为它使用XML和反射来保存数据。

现在我们处于设计业务层的阶段。 我们已经阅读了一些与企业架构和设计相关的书籍,因此我们发现可以在业务层上应用的模式很少。 表格模式和域模型是此类模式的示例。 我们也发现了域驱动设计。

之前我们决定针对表对象构建实体。 但是我们发现实体和价值对象在DDD方面存在差异。 对于那些经历过这种设计的人。 请指导我关于模式,练习和样本。

先感谢您! 如果你没有得到我的任何观点,请随时讨论。

@Adil,这不是你原来问题的答案,但我建议你修改你推出自己的数据访问层的决定。 你注意到你想去NHibernate:现在就去做吧。

IMO,写一个ORM是浪费时间,除非你有一些非常具体的限制。 那里有很多选择,已经有数百小时的努力。 利用它! LINQ2SQL,实体框架,NHibernate,Subsonic,LLBLGen都很好,还有更多。

还要注意,如果你自己动手,你就不会花费很多精力来使用LINQ的优点。

就分层而言,尽量不要坚持:保持层数,并集中精力在它们之间建立一个有价值的界面,以防止你的抽象泄漏。

我已经看到了一些非常“模式化”,精美分层的项目,这些项目在使用中最终到处都是逻辑,并且持久性抽象在整个地方泄露。 把事情简单化!

CSLA.NET非常适合作为业务层的基础。

@Adil,

我不是很有经验的用户,无论如何,这是我正在使用的那种模型(也与NHibernate一样)。

GUI - 包含所有Web表单等BLL - 负责创建新对象实例的目录DAL - 实现负责与NHibernate交互的类的位置。 NHibernate映射文件在这里。

Model - BLL和DAL用于数据传输对象的类库。

使用不同的模式。 例如,BLL和DAL具有允许访问接口的Factory类。 目录是Singleton类。 可以使用表示我的业务逻辑顶级对象的主Singleton类来访问所有目录(例如“Enterprise”=>“Enterprise.PeopleCatalog”。

无论如何,希望它有所帮助......

@AngryHacker,感谢您的提示,您能举一个CSLA.NET的例子吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM