2010-06-03 54 views
0

CAG文档中的所有QuickStart和RI示例都很好,但我缺少更多Enterprise示例。如何组织企业级复合应用程序(CAG)

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

我的问题是当服务在不同的模块中时应该如何进行服务托管,以及当我按F5时如何实际将单独的模块与其余的应用程序模块一起运行。对此有最佳做法吗?我想它已经完成了?

回答

1

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

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

1

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

每个服务都可以配置为运行在不同的端口或目标上,但是我觉得也许你的问题来自于服务,并且您可以从跨模块共享的通用服务项目中受益。

+0

我们创建“模块”的第一个目标是缩短开发周期和持续测试的周转时间,因此我们希望能够独立开发和测试垂直行业。 今天,在开发过程中,我们没有使用IIS进行托管,但也许这是前进的方向。然后,每当我想构建和运行解决方案并将文件部署到IIS所指向的文件夹时,该解决方案就没有真正负责启动新的“控制台主机”。 – David 2010-06-09 06:50:23

相关问题