我正处于为应用程序设计工作的初始阶段.将有以下内容:
我是Windows服务和SOA的新手,尤其是在Visual Studio环境中.
我的问题是,如何在Visual Studio中设置此解决方案?例如,我会
开始构建我的解决方案以便可以跟踪和测试的最佳方法是什么?
我喜欢这样构建我的WCF解决方案:
合同(类库)
包含所有服务,操作,故障和数据合同.可以在纯.NET到.NET方案中在服务器和客户端之间共享
服务实现(类库)
包含实现服务的代码,以及实现此目的所需的任何支持/帮助方法.没有其他的.
服务主机(可选 - 可以是Winforms,控制台应用程序,NT服务)
包含用于调试/测试或可能还用于生产的服务主机.
这基本上给了我服务器端的东西.
在客户端:
客户端代理(类库)
我喜欢将我的客户端代理打包到一个单独的类库中,以便多个实际的客户端应用程序可以重用它们.这可以使用svcutil或"添加服务引用"并手动调整生成的可怕app.config,或者通过使用ClientBase<T>或ChannelFactory<T>构造手动实现客户端代理(共享契约程序集时)来完成.
1-n个实际客户端(任何类型的应用程序)
通常只引用客户端代理程序集,或者也可以引用合同程序集(如果它正在共享).这可以是ASP.NET,WPF,Winforms,控制台应用程序,其他服务 - 您可以命名.
那样; 我有一个漂亮而干净的布局,我一遍又一遍地使用它,我真的认为这使我的代码更清洁,更容易维护.
这是受到Miguel Castro的极端WCF屏幕的启发,该屏幕采用了DotNet Rocks电视和卡尔富兰克林 - 强烈推荐的屏幕演员!