如何组织企业规模复合应用程序(CAG)

时间:2010-06-03 07:19:29

标签: c# .net visual-studio-2010 prism cag

CAG文档中的所有QuickStart和RI示例都很好,但我缺少更多企业级示例。

假设我们有40多个模块,每个模块包含一个代理,外观,PresentationModel,模型和视图。每个模块还调用特定于模块的WCF服务,该服务将托管在IIS或独立控制台主机中。我们的方法是将UI模块,服务模块和相关测试纳入一个解决方案,以便可以与其他模块分开开发和测试。

我的问题是如何在服务处于单独的模块中时完成服务的托管,以及当我按F5时如何与其他应用程序模块一起实际运行单独的模块。这是最好的做法吗?我想之前已经完成了吗?

2 个答案:

答案 0 :(得分:1)

您当然可以将每个模块作为服务点的应用程序或虚拟目录实例托管,但我想说的是,您是否允许开发“方便”的解决方案分区决定了服务的生产架构?我们通常基于层而不是模块分区来处理这个问题 - 换句话说,您将拥有一个包含域/模型的项目和一个包含服务的项目,然后每个“模块”都可以引用公共服务池。我想这取决于相互关联的模块是多少,交叉通信有多少等等。

每个服务都可以配置为在不同的端口或目标上运行,但同样,我感觉您的问题可能源于服务的体系结构,您可能会从拥有跨模块共享的公共服务项目中受益。

答案 1 :(得分:1)

我们最终得到了一个相当简单的解决方案,其中我们将Hosting项目作为解决方案中的“启动”项目。该项目设置为不构建并具有模块的依赖关系。

所有服务DLL:s被输出到主机项目动态加载它们的公共文件夹,查找ServiceContract属性并启动主机。