3

I am going to write a WCF service and need help in structuring the project for the below scenario:

  1. Client and Service are going to share data contracts assembly-> http://code-magazine.com/Article.aspx?quickid=0809101

  2. WCF is in turn gonna call multiple services to populate data contract using Automapper.

What are the best practices to structure a WCF project? and how to best wire-up automapper in the middle of WCF project?

4

1 回答 1

11

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

  • Contracts(类库)

    包含所有服务、操作、故障和数据合同。可以在纯 .NET-to-.NET 场景中的服务器和客户端之间共享

  • Service implementation(类库)

    包含实现服务的代码,以及实现此目的所需的任何支持/帮助方法。没有其他的。

  • Service host(s)(可选 - 可以是 Winforms、Console App、NT 服务)

    包含用于调试/测试或可能还用于生产的服务主机。

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

在客户端:

  • Client proxies(类库)

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

  • 1-n actual clients(任何类型的应用程序)

    通常只会引用客户端代理程序集,或者也可能会引用合同程序集,如果它被共享的话。这可以是 ASP.NET、WPF、Winforms、控制台应用程序、其他服务 - 你可以命名它。

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

这是由 Miguel Castro 与 Carl Franklin 在 DotNet Rocks TV 上的Extreme WCF 屏幕投射的启发- 强烈推荐的屏幕投射!

于 2013-06-02T07:54:01.297 回答