2009-08-08 31 views
1

我正在学习wcf,但我很难理解这些好处。我有没有想过使用传统的Web服务?尽管我读了,但仍然困惑于wcf

我读另一个线程具有以下优点:在模型

  • 选择使用特定属性
  • 更好的安全性
  • 没有必要担心结合(不明白这是怎么真正成员)
  • 无需担心XML

我读编程WCF服务然而,这是一个ADVAN通过C#书籍有点像CLR。我正在阅读学习WCF服务,并将阅读基本WCF(推荐)。

如果我使用普通类试图与Web /服务引用交谈,会发生什么情况?我知道这听起来很幼稚,这只是我缺乏Web服务的经验。

我正在编写一些WCF服务,所以我正在接触到具体细节。他们正在与我的虚拟主机提供的SOAP Web服务进行交互,以便我可以在我的网站上获得统计信息。这种方法有什么问题吗?

感谢

回答

0

你有你写,或者只是让你的脚弄湿特定的应用程序?

谷歌协议缓冲区,是一个很好的通信选择。 John Skeet & Marc Gravell都完成了C#实现。 See here

1

有许多现有的方法来构建分布式应用程序。这些包括Web服务,.NET Remoting,消息队列和COM服务。 Windows Communication Foundation将这些统一到一个框架中,用于构建和使用服务。 这是MSDN的链接Why Use Windows Communication Foundation?

2

WCF是统一的编程模型用于开发连接系统。这意味着您使用单个框架来开发面向服务的解决方案。 WCF可以让你的服务实现相对不知道,并且不需要关心服务被客户使用和处理通信的情况。这使您可以采取不同的方式对服务实施进行披露,并以不同的方式对其进行配置,而无需接触您的服务实施。这是统一的部分。没有WCF,你必须熟悉一个特定的通信技术框架,比如ASP.NET asmx web服务,.NET远程处理,MSMQ等,通常这些框架强加于你的服务实现和爬行,例如使用WebMethod属性或必须从MarshallByRefObject对象中派生出来,你不能把你的服务实现并轻松地将它暴露在另一个通信栈中。如果我有一个增加了两个数字的服务,为什么不能轻易通过http或tcp暴露出来,而不必担心低级细节?这是您的帖子中关于绑定的问题。绑定允许您接受服务并对其进行配置,以便它可以通过使用不同编码的不同传输和协议进行展示,而不会触及您的服务实现。

是否曾经有一段时间我想使用传统的Web服务?

Web服务使用良好定义,接受和使用的标准,如HTTP和SOAP。因此,如果您希望您的服务被广泛的客户使用,那么您希望将您的服务作为Web服务公开。 WCF附带预先配置的绑定,允许您的服务轻松地作为Web服务公开:basicHttpBinding和wsHttpBinding。您也可能想要考虑RESTful服务,这是一种适合HTTP模型更自然的体系结构风格。 WCF支持REST的服务以及

,如果我用一个正常的 类试着跟网络/服务 参考,会发生什么?我知道这听起来很真实,这只是我在web服务中缺乏经验 。

WCF服务可以像ASP.NET asmx web服务一样为服务公开wsdl。您可以通过简单地将服务引用添加到客户端项目来生成客户端代理。还有一个名为svcutil的命令行工具,它也生成客户端代码,使您可以轻松与服务进行通信。客户端服务类基本上反映了服务接口。您为服务创建客户端代理的实例,然后像调用其他.NET对象一样简单地调用它的方法。在封面下,您的方法调用将转换为消息并通过电线发送到服务器。在服务器端,该消息将被分派到适当的服务方法。

我希望这会有所帮助。有很多在线内容,例如MSDN和第9频道上的视频,您可以查看。你越是重视它,并将自己暴露在它,更清晰的WCF将得到我肯定。此外,WCF是THE框架Microsoft建议在.NET中开发连接系统。其他技术ASP.NET asmx,WSE和.NET Remoting很可能仍然可用,但可能不会得到支持和进一步开发。

1

WCF是真正的“新”标准和新一代Web服务 - 甚至更一般地说,通信 - .NET世界的协议和库。

每当你觉得需要让两个系统互相交谈时 - 想想WCF吧。无论是通过公司局域网中的企业防火墙,无论是通过互联网,通过直接呼叫还是延迟消息排队系统 - WCF都是您的答案。 Mehmet撰写了一篇关于WCF如何统一WCF之前Microsoft世界中存在的众多通信标准的非常好的总结。

我会认为与“学习WCF”的书,你应该比编程WCF好多了 - 这已经是相当先进的东西了!

WCF的主要支柱之一是您总是通过代理与您的服务对话的架构 - 无论该服务使用NetNamedPipe绑定运行在同一台计算机上,还是运行在服务器上的Down Under下,你总是通过代理。这也让WCF变得如此可扩展 - 由于代理始终位于客户端(您的应用程序)和服务之间,它提供了扩展WCF的行为和内部工作以满足您的喜好和需求的绝佳方式。

WCF基本上建立在SOAP通信的基础上 - 所以连接和使用现有的SOAP服务应该不成问题。借助WCF REST入门工具包和即将发布的.NET 4.0发布周期,如果这将是您的需求,WCF还将把它的范围扩展到REST风格的Web通信。所有这一切都表明了WCF最大的优势之一:它是一个统一的,极其灵活和可扩展的通信框架,它可以处理任何事情。仅凭这一点,就有足够的理由去学习WCF(我可以先开始学习,我同意!),并且你不会为你付出的努力感到后悔。

Marc

+0

RESTful不应该是一个要求,它应该是这样的。螺丝肥皂。 – PositiveGuy 2013-10-01 21:54:55