![]() |
1
61
好的,我们开始吧。首先,Michele Leroux Bustamante的书已经为VS2008进行了更新。这本书的网站还没有消失。它现在就在上面,它有很多很棒的WCF信息。在该网站上,她为书中的所有示例提供了与VS2008兼容的更新代码。如果你从亚马逊订购,你会得到更新的再版。 WCF不是 只有 ASMX的替代品。当然,它可以(并且做得很好)取代ASMX,但真正的好处是它允许您的服务自托管。WSE的大部分功能都是从一开始就已经实现的。框架是 高度地 可配置,并且能够在多个协议上为多个端点提供服务,这是令人惊讶的,IMO。 虽然您仍然可以从“添加服务引用”选项生成代理类,但这不是必需的。您真正需要做的就是复制ServiceContract接口,告诉代码在哪里可以找到服务的端点,就这样。您可以使用很少的代码从服务调用方法。使用此方法,您可以完全控制实现。不管您选择哪种方法来生成代理类,Michele都会在其中显示和使用这两种方法。 杰出的 关于这个主题的一系列网络广播。 Michele有很多很棒的资料,我建议你看看她的网站。以下是一些在我学习WCF时对我非常有用的链接。我希望您能够认识到WCF有多强大,实现起来有多容易。学习曲线有点陡峭,但是你的时间投资回报是值得的:
我建议你至少看一次米歇尔的网络广播。她是一个非常有效的演讲者,她显然在WCF方面知识渊博。她做了一个伟大的工作,使自上而下的世界自然基金会内部工作的神秘化。 |
![]() |
2
15
我通常使用谷歌来查找我的wcf答案,并在以下博客中找到自己: 有价值的WCF文章的博客
我发现的其他贵重物品 |
![]() |
3
14
我很难知道什么时候应该或将使用WCF。为什么?因为我把工作效率和简单性放在首位。为什么ASMX模型如此成功,因为它工作了,并且让它工作得很快。与2005和.NET2.0wsdl.exe相比,它提供了非常好的、兼容的服务。 在现实生活中,您的体系结构中应该只有很少的通信协议。这使它简单易维护。如果您需要访问遗留系统,请为它们编写特定的适配器,以便它们能够在漂亮的、闪亮的SOA世界中发挥作用。 |
![]() |
4
13
WCF比ASMX强大得多,它以多种方式扩展了它。ASMX仅限于HTTP,而WCF可以使用多个协议进行通信(当然,HTTP仍然是大多数人使用它的方式,至少对于需要互操作的服务而言)。WCF也更容易扩展。至少,可以以ASMX无法扩展的方式扩展它。”“简单”可能是在拉伸它。=) 在我看来,WCF提供的附加功能远远超过了它所增加的复杂性。我还觉得编程模型更简单。例如,DataContracts比使用具有公共属性的XML序列化来序列化所有内容要好得多。它在本质上也更具声明性,这也很好。 |
![]() |
5
6
等待。。。。你曾经用过.NET远程处理吗,因为这是它真正的替代品。.NET远程处理本身相当复杂。我发现WCF更容易和更好的布局。 |
![]() |
6
4
我不认为它经常提到,但是你 可以 仍然使用WCF实现相当简单的服务,非常类似于ASMX服务。例如:
您仍然需要在web.config中注册端点,但这并不坏。 消除分离的数据、服务和操作契约的冗长,对于我来说,使WCF更易于管理有很大的帮助。 |
![]() |
7
4
VS2008包含“添加服务引用”上下文菜单项,它将在后台为您创建代理。 如前所述,WCF不仅仅是作为ASMX Web服务类型的替代,而是为所有可互操作的服务提供一致、安全和可扩展的方法,无论是通过HTTP、TCP、命名管道还是msmq传输。 我承认,我确实对WCF有其他问题(例如,在通过basichtp公开服务时重新编写方法签名-请参阅 here 但总的来说,我认为这是一个明确的改进 |
![]() |
8
3
如果您正在使用VS2008并创建一个WCF项目,那么当您点击run/debug时,您将自动获得一个测试工具,并且您可以添加一个引用而不必使用svcutil。 |
![]() |
9
2
我最初对WCF的想法完全一样!以下是一些解决方案:
|
![]() |
10
2
WCF 是以前所有人的替代品 Web服务 微软的技术。它也比传统的“Web服务”做得更多。 WCF“Web服务”是通过WCF实现的更广泛远程通信范围的一部分。与传统的ASMX相比,在WCF中执行操作的灵活性和可移植性要高得多,因为WCF的设计从一开始就是为了总结Microsoft提供的所有不同的分布式编程基础架构。WCF中的一个端点可以通过SOAP/XML和TCP/Binary一样轻松地进行通信,而更改这个媒介仅仅是一个配置文件mod。理论上,这可以减少移植或更改业务需求、目标等时所需的新代码量。
Web服务只能通过HTTP访问,它在无状态环境中工作,而WCF是灵活的,因为它的服务可以托管在不同类型的应用程序中。托管WCF服务的常见方案有IIS、WAS、自托管、托管Windows服务。 主要区别在于Web服务使用XmlSerializer。但WCF使用的DataContractSerializer性能比XmlSerializer要好。 在什么情况下必须使用WCF
WCF的特点
|
![]() |
11
1
MSDN?我通常对图书馆参考文献本身做得很好,我通常希望在那里找到有价值的文章。 |
![]() |
12
1
就它提供的内容而言,我认为答案是兼容性。ASMX服务是相当小的软件。并不是说他们没有尝试与其他消费者兼容;但除了ASP.NET网页和其他一些自定义的微软消费者外,该模型并不适合其他消费者。然而,由于WCF的体系结构,它允许您的服务拥有非常开放的基于标准的端点,例如REST、JSON等,以及常见的SOAP。其他人可能会比您的ASMX更容易花费您的WCF服务。 (这基本上都是从比较的MSDN阅读中推断出来的,因此了解更多的人应该可以随时纠正我。) |
![]() |
13
1
WCF不应被认为是ASMX的替代品。从它的位置和微软内部使用的方式来看,它实际上是一个基本的体系结构,可用于任何类型的跨边界通信。 |
![]() |
14
1
我相信WCF确实在许多方面促进了ASMX Web服务实现。首先,它提供了一个非常好的分层对象模型,有助于隐藏分布式应用程序的内在复杂性。 第二,您可以拥有多个请求重播消息模式,包括从服务器到客户机的异步通知(纯HTTP不可能),第三,从XML消息中抽象出底层传输协议,从而优雅地支持HTTP、HTTPS、TCP等。与“第一代”Web服务的向后兼容性也是一个优点。 WCF使用XML标准作为内部表示格式。这可能被视为优势或劣势,尤其是随着越来越流行的“XML的无脂肪替代品”如JSON的出现。 |
![]() |
15
1
我在WCF中发现的困难是管理客户机和服务器的配置,并排除不太好的故障状态异常。 如果有人有捷径或小窍门,那就太好了。 |
![]() |
16
1
我发现这是一种痛苦;因为我在两端都有.NET,在两端都加载了相同的“契约”DLL等,但是之后我必须处理很多细节,比如“knowntype”属性。 WCF还默认只允许1或2个客户机连接到服务,直到您更改了大量配置。从代码中更改配置并不容易,运送大量Comfig文件不是一个选项,因为很难将我们的更改合并到客户升级时所做的任何更改中(而且我们不希望客户使用WCF设置!) .NET远程处理通常只起作用。 我想试着 假装 基于.NET到.NET对象的通信与向未知系统发送位so-of-text(XML)相同,这是一个太远的步骤。 (几次我们使用WCF与Java系统交谈时,我们发现Java系统给出的XSD与它想要的XML不匹配,因此不得不手工编写很多XML映射。) |
![]() |
user755806 · 从Rest服务返回JSON响应? 6 年前 |