Igo*_*rek 6 .net architecture domain-driven-design entity-framework repository
寻找有关如何解决此问题的建议,并了解Domain Driven Design是否真的是最好的模式.
我的客户正在重新设计其近乎过时的工具和服务堆栈.客户是一个快速扩张的电子商务.它的核心产品是其庞大的电子商务网站.在该网站周围,客户端具有向合作伙伴公开的各种数据馈送.大量内部应用程序,以帮助营销,销售,报告等.大量的用户支持和合作伙伴支持应用程序.大量的各种数据同步,ETL工作等...你得到了图片.
数据存储和数据提供商也很多.NOSQL基于云的超级可扩展存储提供了公共网站上的大部分内容.具有许多数据库的SQL服务器向内部应用程序提供数据.还有一些特殊的搜索服务器可以提供可加速搜索功能,以及应用程序从各种第三方供应商处消费的其他供稿.如果采用DDD,则计划是从数据存储特定的存储库基类继承各种存储库对象组
客户已经进行了一项练习,他们在"通用"级别上绘制了大部分业务实体:实体名称和关系.除了"通用"级别之外,跨应用程序的各种具体对象的重用量也相当大,并且根据应用程序的不同,实体的实现也会有所不同.
例如:电子商务网站上的订单实体可能看起来像X,而对于处理Y等支持调用的应用程序,以及对Z进行欺诈分析的人员.
我正在寻找关于如何调整DDD或其他架构模式来处理这个巨大混乱的建议:有一个可靠的企业策略,有助于重用,并允许在必要时分离逻辑.除了通常(可扩展,灵活,适应性强,可单元测试,简单等)标准之外.
由于数据存储的不同,DTO的结构看起来与数据存储到数据存储有很大不同.由于各种业务需求,各种应用程序需要不同版本的某些实体,并且由于公司正在快速扩张,未来非常不稳定,灵活性至关重要.
我想我最大的问题是找到一种方法将业务模型分离到不同的域,并且在存在大量共享或重用时仍然保持在一起,同时能够采用高级别的更改.
谢谢你的所有建议
PS该商店是微软商店.VS2010/.NET/SQL/Azure的
考虑 SOA + DDD
从表面上看,您似乎应该考虑面向服务的架构 (SOA) 以及领域驱动设计 (DDD)。类似于NServiceBus的东西。
Udi Dahan 在此处提供了有关 DDD + NServiceBus 的精彩视频:
DDD 旨在隔离您的业务逻辑*
DDD 的核心是将领域逻辑与应用程序和框架隔离,以便您可以确保正确地建模业务逻辑。DDD 并不适合每个项目,它绝对不适合小型企业应用程序,因为维护 DDD 的成本高于您从中获得的收益。
在你的情况下
您描述了一个相当复杂的业务规则集,IMO 将从 DDD 中受益匪浅。不过,我也会让您考虑一种 SOA,它允许您使用通用消息传递系统将多个架构集成到一个企业级框架中。
使用SOA
NServiceBus 是一个功能强大且轻量级的开源消息传递框架,用于设计分布式 .NET 企业系统。NServiceBus 完全可插拔且易于使用,使程序员在开发健壮、可扩展和可维护的服务层和长期运行的业务流程方面处于领先地位。
| 归档时间: |
|
| 查看次数: |
513 次 |
| 最近记录: |