c# - SOA 开发人员通常如何在 Visual Studio 中构建他们的 Web 服务 (WCF) 解决方案?

标签 c# wcf soa

我正处于应用程序设计的初始阶段。会有以下内容:

  • 网络界面
  • 网络服务
  • 利用其他预先存在的网络服务

我是 Windows 服务和 SOA 的新手,尤其是在 Visual Studio 的上下文中。

我的问题是,如何在 Visual Studio 中设置此解决方案?例如,我会

  • 将 Web UI 和服务调用放在同一项目中,将我的服务放在单独的项目中,然后将上述所有内容放在一个解决方案中?

开始构建我的解决方案以使其可追溯和测试的最佳方式是什么?

最佳答案

我喜欢这样构建我的 WCF 解决方案:

契约(类库)
包含所有服务、操作、故障和数据协定。可以在纯 .NET 到 .NET 的场景中在服务器和客户端之间共享

服务实现(类库)
包含实现服务的代码,以及实现此服务所需的任何支持/帮助方法。没有别的。

服务主机(可选 - 可以是 Winforms、控制台应用程序、NT 服务)
包含用于调试/测试或可能也用于生产的服务主机。

这基本上给了我服务器端的东西。

在客户端:

客户端代理(类库)
我喜欢将我的客户端代理打包到一个单独的类库中,以便它们可以被多个实际的客户端应用程序重用。这可以使用 svcutil 或“添加服务引用”并手动调整生成的可怕的 app.config 来完成,或者通过使用 ClientBase<T> 手动执行客户端代理(共享契约(Contract)程序集时)来完成。或 ChannelFactory<T>构造。

1-n 个实际客户(任何类型的应用)
通常只会引用客户端代理程序集,或者也可能引用契约(Contract)程序集,如果它被共享的话。这可以是 ASP.NET、WPF、Winforms、控制台应用程序、其他服务 - 随便你说。

那样;我有一个漂亮干净的布局,我一遍又一遍地始终如一地使用它,我真的认为这让我的代码更干净,更容易维护。

这是受米格尔卡斯特罗的启发 Extreme WCF screen cast在 DotNet Rocks TV 上与 Carl Franklin 一起 - 强烈推荐截屏!

关于c# - SOA 开发人员通常如何在 Visual Studio 中构建他们的 Web 服务 (WCF) 解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10462579/

相关文章:

c# - WCF 中的 "endpoint"是什么?

soa - 在 Microsoft 技术堆栈上构建 SOA

java - 如何使用自上而下的方法构建 REST Web 服务?

javascript - 建立一个包含模型的链接

c# - 对用 years 填充 ComboBox 感到困惑

c# - 从 .NET 使用 SAP Web 服务会抛出异常 ServiceModel.FaultException

c# - 此 WCF 配置是否导致我的 400 错误请求?

rest - 事件驱动架构的 API 网关

c# - WPF 应用程序 : Uncatchable Exception?

c# - 在 asp.net 环境中处理缓存