如何组织企业级复合应用程序 (CAG)
-
23-10-2019 - |
题
CAG 文档中的所有快速入门和 RI 示例都很好,但我缺少更多企业级示例。
假设我们有 40 多个模块,每个模块都包含代理、外观、演示模型、模型和视图。每个模块还调用特定于模块的 WCF 服务,该服务将托管在 IIS 或独立控制台主机中。我们的方法是将 UI 模块、服务模块和相关测试纳入一个解决方案中,以便它们可以与其他模块分开开发和测试。
我的问题是当服务位于单独的模块中时应如何完成服务的托管,以及当我按 F5 时如何实际运行单独的模块与其余应用程序模块。这有最佳实践吗?我想以前已经做过了?
解决方案 2
我们最终获得了一个相当简单的解决方案,在该解决方案中,我们将托管项目作为解决方案中的“启动”项目。该项目设置为不构建和具有模块的依赖关系。
所有服务dll:s均输出到一个通用文件夹,主机项目正在动态加载它们,查找ServiceCectract属性并启动主机。
其他提示
您当然可以将每个模块托管为服务点的应用程序或虚拟目录实例,但我想要说的是,您是否允许解决方案分区的开发“便利性”决定您的服务的生产架构?我们通常基于层而不是模块分区来处理此问题 - 换句话说,您将拥有一个包含域/模型的项目和一个包含服务的项目,然后每个“模块”都可以引用公共服务池。我想这取决于模块的相互关联程度,有多少交叉通信等等。
每个服务都可以配置为在不同的端口或目标上运行,但同样,我感觉您的问题可能源于服务的体系结构,并且您可能会受益于跨模块共享的通用服务项目。
不隶属于 StackOverflow