WCF 是所有早期 Web 服务技术的替代品,它是微软开发的。它取代了传统意义上的“web services”。Web 服务基于以 XML 形式返回数据的 SOAP。它只支持 HTTP 协议。它也不是开源的,任何理解 XML 的客户都可以使用它。它只能托管在 IIS 中。

什么是 WCF?

WCF 基于 SOAP,以 XML 形式返回数据。它是 Web 服务 (ASMX) 的扩展,支持各种协议,如 HTTP、HTTPS、TCP、命名管道、MSMQ 等。WCF 的繁琐和广泛的配置存在问题。它不是开源的,但任何理解 XML 的客户都可以使用它。它可以托管在多个平台上,如在应用程序或 IIS 上,或使用窗口服务。

什么场景必须使用WCF?

  • 为了进行业务交易,WCF 为我们提供了一个安全的服务器。
  • 两个或更多人可以使用构建在 WCF 之上的聊天服务进行实时通信和交换数据。
  • 一种仪表板应用程序,它轮询一个或多个服务以获取信息并以逻辑方式呈现它。
  • 将使用 Windows Workflow Foundation 实现的工作流公开为 WCF 服务。

什么是Web Service?

如上所述,Web Service在无状态环境中工作。它只能通过 HTTP 访问。WCF Service可以托管在不同类型的应用程序中。因此,与 Web Service不同,WCF 更加灵活。
WCF 可以托管在各种场景中。此类场景包括 WAS、IIS、自托管、托管 Windows 服务等服务。

WCF 和 Web Service之间的主要区别

两者都是市场上的热门选择,让我们讨论一些主要区别:

  • 在将数据从一个应用程序传输到另一个应用程序时,Web 服务仅使用 HTTP 协议。另一方面,对于传输数据,与 ASP.NET Web 服务相比,WCF 支持更多的协议。除了使用 HTTP 发送消息外,WCF 还支持传输控制协议 (TCP)、Microsoft 消息队列 (MSMQ) 和命名管道。
  • WCF 在架构上比 Web Service更健壮。
  • XmlSerializer 用于 Web Service。WCF 使用 DataContractSerializer,与 XmlSerializer 相比在性能方面更好。
  • 在不同平台上开发的多个应用程序之间进行通信时,使用 WCF。如果将数据从 .NET 平台传输到在其他操作系统(如 Unix 或 Linux)上运行的任何其他应用程序,则使用 WCF 是传输数据的唯一可能。
  • 与 Web Service相比,WCF 中的安全性非常高。

WCF 与 Web Service比较表

以下是 WCF 与 Web Service之间的 9 个最重要的比较 -

WCF 与 Web Service的示例

以下是 WCF 与 Web Service的示例,如下所示:

Web Service
以下代码片段向展示了如何在 Web Service 中开发服务。

[WebService] public class MyService
{
    [WebMethod] public SumClass SumOfNums(string JsonStr)
    {
        var ObjSerializer = new JavaScriptSerializer();
        var ObjSumClass = ObjSerializer.Deserialize<SumClass>(JsonStr);
            return new SumClass().GetSumClass(ObjSumClass.First, ObjSumClass.Second);
        }
        }
        public class SumClass
        {
        public int First, Second, Sum;
        public SumClass GetSumClass(int Num1, int Num2)
        {
        var ObjSum = new SumClass
        {
        Sum = Num1 + Num2,
        };
        return ObjSum;
    }
}

WCF
以下代码片段展示了如何在 WCF 中开发服务。

ServiceContract] blic class MyService : WebService
{
[OperationContract] public SumClass SumOfNums(string JsonStr)
{
var ObjSerializer = new JavaScriptSerializer();
var ObjSumClass = ObjSerializer.Deserialize<SumClass>(JsonStr);
return new SumClass().GetSumClass(ObjSumClass.First, ObjSumClass.Second);
}
}
[DataContract] public class SumClass
{
[DataMember] public int First;
[DataMember] public int Second;
[DataMember] public int Sum;
public SumClass GetSumClass(int Num1, int Num2)
{
var ObjSum = new SumClass
{
Sum = Num1 + Num2,
};
return ObjSum;
}
}

结论

从上面的讨论来看,WCF 服务绝对是比 Web Service更先进的技术。WCF 在性能方面比 Web Service快。WCF 提供更好的安全性,支持各种协议以及消息格式。对开发人员来说,WCF 唯一繁忙的领域是其配置部分。但是,通过引入默认配置设置,WCF4.0 也解决了这个问题。注意到Visual Studio .NET3.5 之前提供了直接的web Service模板。从.NET4.0开始,我们没有得到任何直接的web Service模板。因此,我们需要创建一个 Web 应用程序并向其添加 Web Service。

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:WCF和Web Services的区别
本文链接:https://www.vsdiffer.com/vs/wcf-vs-web-services.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。