Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SOA开发人员通常如何在VisualStudio中构建他们的Web服务(WCF)解决方案?_C#_Wcf_Soa - Fatal编程技术网

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

C# SOA开发人员通常如何在VisualStudio中构建他们的Web服务(WCF)解决方案?,c#,wcf,soa,C#,Wcf,Soa,我正处于应用程序设计的初始阶段。将有以下内容: 网络界面 网络服务 利用其他预先存在的web服务 我不熟悉windows服务和SOA,尤其是在VisualStudio环境中 我的问题是,如何在VisualStudio中设置此解决方案?例如,我会吗 将web UI和服务调用放在同一个项目中,将我的服务放在一个单独的项目中,然后将以上所有内容放在一个解决方案中 什么是开始构建我的解决方案的最佳方式,以便可以对其进行跟踪和测试?我喜欢这样构建我的WCF解决方案: 合同(类库) 包含所有服务、操

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

  • 网络界面
  • 网络服务
  • 利用其他预先存在的web服务
我不熟悉windows服务和SOA,尤其是在VisualStudio环境中

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

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

什么是开始构建我的解决方案的最佳方式,以便可以对其进行跟踪和测试?

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

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

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

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

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

在客户端:

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

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

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

这是米格尔·卡斯特罗与卡尔·富兰克林合作制作的“网络摇滚”电视剧的灵感来源——极力推荐的银幕演员