0

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

假设我们有 40 多个模块,每个模块都包含 Proxy、Facade、PresentationModel、Model 和 Views。每个模块还调用特定于模块的 WCF 服务,该服务将托管在 IIS 或独立控制台主机中。我们的方法是将 UI 模块、服务模块和相关测试包含在一个解决方案中,这样它们就可以与其他模块分开开发和测试。

我的问题是当服务位于单独的模块中时应该如何托管服务,以及当我按 F5 时如何实际运行单独的模块和其他应用程序模块。对此有最佳做法吗?我想它以前做过吗?

4

2 回答 2

1

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

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

于 2010-06-03T15:51:05.207 回答
1

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

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

于 2010-06-15T15:06:05.157 回答