Różnica między usługami sieciowymi a WCF

Usługi sieciowe a WCF

Zarówno usługi sieciowe, jak i WCF to technologie internetowe opracowane przez Microsoft. Usługi sieciowe zostały wprowadzone we wcześniejszych wersjach .NET, a WCF został dodany do .NET Framework w późniejszych wersjach. Usługi sieciowe są używane do tworzenia aplikacji, które mogą wysyłać / odbierać wiadomości za pomocą SOAP przez HTTP. WCF służy do budowania aplikacji rozproszonych w celu wymiany wiadomości za pomocą protokołu SOAP za pośrednictwem dowolnego protokołu transportowego.

Usługi internetowe

Usługa sieci Web (czasem znana jako technologia ASMX w .NET) to metoda komunikacji przez sieć. Według W3C usługa sieciowa to system dedykowany do obsługi transakcji maszyna-maszyna w sieci. Jest to interfejs API sieci Web opisany w WSDL (język opisu usługi sieci Web), a usługi sieci Web są zwykle samodzielne i samoopisują się. Usługi sieciowe można wykryć za pomocą protokołu UDDI (Universal Description, Discovery and Integration). Dzięki wymianie komunikatów SOAP (Simple Object Access Protocol) zwykle przez HTTP (z XML) inne systemy mogą wchodzić w interakcje z usługami internetowymi. Usługi sieciowe są używane na wiele sposobów, takich jak RPC (Remote Procedural Call Calls), SOA (Service Oriented Architecture) i REST (Representational State Transfer). Istnieją dwie metodologie automatycznego projektowania do tworzenia usług sieciowych. Podejście oddolne dotyczy najpierw utworzenia klas, a następnie użycia narzędzi do generowania WSDL, aby skomponować te klasy jako usługi sieci Web. Podejście odgórne dotyczy definiowania specyfikacji WSDL, a następnie używania narzędzi do generowania kodu w celu wygenerowania odpowiednich klas. Usługi sieciowe mają dwa główne zastosowania. Mogą być używane jako komponenty aplikacji wielokrotnego użytku i / lub do łączenia aplikacji internetowych działających na różnych platformach.

WCF

WCF (Windows Communication Foundation) to .NET API (interfejs programowania aplikacji), który zapewnia ujednolicony model programowania do tworzenia aplikacji połączonych i zorientowanych na usługi. Mówiąc dokładniej, służy do opracowywania i wdrażania aplikacji rozproszonych za pomocą SOA. SOA dotyczy przetwarzania rozproszonego, w którym konsumenci korzystają z usług. Wielu konsumentów może korzystać z jednej usługi i odwrotnie. WCF obsługuje zaawansowane standardy usług internetowych, takie jak WS-Addressing, WS-ReliableMessaging, WS-Security i RSS syndication (dostępne po .NET 4.0). Klient WCF używa Punktu końcowego do łączenia się z usługą WCF. Każda usługa może mieć wiele punktów końcowych ujawniających jej umowę. Termin ABC odnosi się do adresu / powiązania / umowy usługi WCF. Komunikacja między klientami i usługami odbywa się za pośrednictwem kopert SOAP.

Jaka jest różnica między usługami sieci Web a WCF?

Istnieją pewne kluczowe różnice między usługami sieci Web a usługami WCF. Usługi sieciowe są używane do tworzenia aplikacji, które mogą wysyłać / odbierać wiadomości za pomocą SOPA przez HTTP. Jednak WCF służy do budowania aplikacji rozproszonych w celu wymiany wiadomości za pomocą SOAP i dowolnego protokołu transportowego, takiego jak HTTP, TCP, nazwane potoki i kolejkowanie wiadomości Microsoft (MSMQ) itp. Ponadto, WCF można rozszerzyć do współpracy z dowolnym innym protokołem transportowym. Chociaż usługi sieciowe są bardzo proste i łatwe do wdrożenia, WCF jest bardziej niezawodne architektonicznie niż usługa internetowa. Usługi sieciowe mogą być hostowane tylko w IIS, a bezpieczeństwo jest ograniczone. Ale WCF może być hostowany w IIS, serwerach samoobsługowych z aplikacjami konsolowymi lub usługami Win NT lub dowolnym innym serwerem. Ponadto, w przeciwieństwie do usług sieciowych, WCF obsługuje binarną komunikację .NET - .NET, transakcje rozproszone, specyfikacje WS- *, wiadomości w kolejce i komunikację Restful.