我创建的应用程序在数据库中有超过70个表,并且在接下来的阶段会增加。
我使用Asp.net MVC:模型,实体框架,视图模型,存储库,视图,控制器,动作过滤器,参考,多语言,....
我的解决方案中这些部件的最佳位置是什么?
我已经看到了拆分解决方案的不同方法。例如:
- Solution
- Core.UI
- Domain
- UI
- Models
- Persistence
- Core.Test
- UI
- Content
- Controller
- Views
- Scripts
或者其他人说将其拆分为
- Solution
- Model
- Entities
- Web
- References
或
...
您对DDD(域驱动设计)有何看法?以及如何实施它?你推荐它吗?
如果您可以帮我详细说明。
非常感谢...
答案 0 :(得分:3)
这里的关键是你要避免耦合,以便在整个应用程序开发过程中保持高效。为此,您需要执行面向服务的体系结构。
而不是将问题分解为水平切片(图层)的n层应用, 面向服务的体系结构取而代之的是应用程序(服务)的垂直切片。
Start with this video by Udi Dahan如果您想学习面向服务的体系结构的基本思想。提示:如果你已经设计了数据库,那么你就错了。
你想要阅读的两个人是Udi Dahan和Greg Young。我还建议DDD Google Group提出更详细的问题。 DDD问题并不总是适合StackOverflow以及其他计算问题,因为它们非常细致,并且通常需要大量的来回才能找到问题的根源。
答案 1 :(得分:1)
直接回答这个问题并不容易。这取决于您的业务需求,您的应用程序规模等。
Microsoft Spain提供了一个参考实现。虽然它有一些缺点,但它仍然是一个很好的起点。如果你有足够的时间,只需确定哪些概念/模式是必需的,哪些不是。