【问题标题】:Why should I use Visual Studio service references over svcutil?为什么我应该使用 Visual Studio 服务引用而不是 svcutil?
【发布时间】:2023-03-09 13:57:02
【问题描述】:

因此,在 Visual Studio 中将 WCF 服务代理代码导入项目时,我似乎有几个主要选项:

  1. Service References使用Visual Studio的内置工具

  2. 使用 简单的 svcutil 命令,例如 svcutil http://[my endpoint] /namespace:[my namespace] /noconfig(因为我使用了一些 跨项目相当标准的绑定),并拖动结果 文件到我的项目中(或就地升级)。

需要明确的是,选项 2 感觉是最好的一个,尽管没有用于更新的内置工具。但服务参考对话框生成的文件数不胜数。 我缺少 VS 服务引用的任何隐晦好处吗?

【问题讨论】:

  • 它们基本上是一回事。
  • Visual Studio 基本上是在后台调用 svcutil。然而,许多程序员都害怕打开命令提示符并运行命令行工具——这就是为什么 Visual Studio 有 Add Service Reference 对话框 ....
  • 是的,我知道它们在幕后是一样的,但它是否使用一些 /awesome 开关来生成所有这些 XSD 和其他文件以获得一些好处?
  • 所以这最初是关于为什么 VS 服务引用添加所有其他疯狂的文件(迪斯科等),但这些答案和一点谷歌搜索让我相信没有真正令人信服的好处。所以...我们将通过 NuGet 共享代理和/或合同
  • 可能重复“Visual Studio 2008 是否使用 SvcUtil.exe,如果“否”,使用 svcutil 有什么缺点吗? stackoverflow.com/questions/408217/…

标签: visual-studio wcf service-reference


【解决方案1】:

与您使用 VS 构建 .net 项目而不是从命令行手动调用编译器的原因相同。 IDE 的 I 代表 Integrated,它为您做事,因此您无需从许多单独的地方和程序手动执行这些操作。

通常有一种方法可以手动或使用文本编辑器和命令提示符来完成其中许多事情,但让我们高效:-)

【讨论】:

  • 同意 UI 工具与命令行。所以你是说可用性是唯一的好处吗?
【解决方案2】:

如果您还拥有该服务,我会说不要使用任何一种。相反,将您的合同、实体和客户端代理分解为不同的程序集,您可以在服务和客户端上使用它们。

有点像WCF The Manual Way... The Right Way中的描述。

【讨论】:

  • 我在很多地方都听说过这个,我认为它甚至在某个 iDesign 文档中(也许是一个单独的问题),但我是否也需要一个重量级的管理策略下载和更新这些程序集?我已经完成了 svn:externals 并为此考虑过 NuGet,但除了易于更新(并且 svn:externals 几乎太容易意外地将代码潜入构建中)之外,我不确定我除了买什么稍微更干的代码。
  • 如果你拥有所有的代码,这应该没问题。您不必引用程序集;您可以引用服务引用的相同项目。每次构建时,您的客户端也会更新。
猜你喜欢
  • 2016-05-23
  • 1970-01-01
  • 2018-05-10
  • 2014-03-12
  • 2012-12-13
  • 2013-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多