洋葱体系结构讨论了如何分离UI、服务和数据层。通常给出的所有示例都涉及应用程序的单个部署模型。例如,在.net中,大多数示例是
应用程序
核心/域-简单类库
数据实体框架
如果我的应用程序有多种部署风格,会发生什么?例如,Azure资源相对于前提Server。解决方案是否分解为可共享的项目?当共享基础设施的各个部分时会发生什么?
主机-前提-只有Program.cs和启动类,连接所有的依赖关系。还具有为基础设施进行迁移/设置的逻辑。
主机- Azure -与上面相同
网络控制器、视图、模型--但it类库不是应用程序
核心/域-不会改变
基础设施- SQL
基础设施- Azure
基础设施-X
这个想法正确吗?“应用程序主机”是否应该尽可能的最小化,把所有的东西都连接起来呢?基础设施是否应该按照他们正在使用的基础设施或部署风格(前提与Azure)进行分离?有一个基础结构层而不是实现域层中定义的所有存储库,这是不是很奇怪?
发布于 2018-12-23 02:02:22
如果我的应用程序有多种部署风格,会发生什么?
你有一个处理这种味道的图层。不管它是什么。该层应该成功地从您的其他应用程序中抽象出这种风格。它应该封装你的应用程序。如果它成功地做到了这一点,应用程序的其余部分都不知道当下的味道是什么。
您可以通过构建一个由应用程序需求驱动的API来实现这一点。不是Azure想卖给你的东西。只要这个月的味道能满足这些需求,这个应用程序就不在乎它是什么。
保持API小,您将能够找到许多适合您的需求,并能够随时切换。
https://softwareengineering.stackexchange.com/questions/384368
复制相似问题