Rozdíl mezi WCF a webovými službami

WCF je náhradou za všechny dřívější technologie webových služeb. Je vyvíjen společností Microsoft. Nahrazuje to, co se tradičně považuje za „webové služby“. Webová služba je založena na SOAP, který vrací data ve formátu XML. Podporuje pouze protokol HTTP. Není to také otevřený zdroj a může být spotřebován kterýmkoli klientem, který rozumí XML. Může být hostována pouze ve službě IIS.

Co je WCF?

WCF je založeno na SOAP a vrací data ve formátu XML. Jedná se o rozšíření webové služby (ASMX) a podporuje různé protokoly, jako HTTP, HTTPS, TCP, Named Pipes, MSMQ atd. WCF má problém se svou zdlouhavou a rozsáhlou konfigurací. Není to otevřený zdroj, ale může jej použít každý klient, který rozumí XML. Může být hostována na více platformách jako v aplikaci nebo ve službě IIS nebo pomocí služby okna.

V jakých scénářích je třeba použít WCF?

  • Pro obchodní transakce nám WCF poskytuje zabezpečený server.
  • Dva nebo více lidí může komunikovat a také si vyměňovat data v reálném čase pomocí chatovací služby postavené na WCF.
  • Aplikace dashboardu, která dotazuje jednu nebo více služeb o informace a prezentuje je logicky.
  • Vystavení pracovního postupu implementovaného pomocí Windows Workflow Foundation jako služby WCF.

Co je to webová služba?

Jak je uvedeno výše, webové služby pracují v prostředí bez státní příslušnosti. Přístup je možný pouze přes HTTP. Služby WCF mohou být hostovány v různých typech aplikací. Na rozdíl od webových služeb je WCF flexibilnější.

WCF lze hostit v různých scénářích. Mezi takové scénáře patří služby jako WAS, IIS, Self-hosting, Spravovaná služba Windows atd.

Srovnání mezi hlavami mezi WCF a webovými službami (infografika)

Níže je uveden top 9 rozdíl mezi WCF a webovými službami

Klíčové rozdíly mezi WCF a webovými službami

Obě WCF vs webové služby jsou populární volby na trhu; pojďme diskutovat o některých hlavních rozdílech mezi WCF vs webové služby

  • Při přenosu dat z jedné aplikace do druhé používá webová služba pouze protokol HTTP. Na druhou stranu, pro přenos dat, WCF podporuje více protokolů ve srovnání s webovými službami ASP.NET. WCF kromě odesílání zpráv pomocí protokolu HTTP podporuje také protokol TCP (Transmission Control Protocol), Microsoft Message Queuing (MSMQ) a pojmenované kanály.
  • WCF je architektonicky robustnější než webové služby.
  • XmlSerializer se používá ve webových službách. WCF používá DataContractSerializer, což je ve srovnání s XmlSerializer lepší výkon.
  • Při komunikaci mezi více aplikacemi vyvinutými na různých platformách používáme WCF. Použití WCF je možné pouze pro přenos dat v případě, že přenášíme data z .NET platformy do jakékoli jiné aplikace, která běží na jiných operačních systémech, jako jsou Unix nebo Linux.
  • Zabezpečení v WCF je ve srovnání s webovými službami velmi vysoké.

Srovnávací tabulka WCF vs webové služby

Níže je 9 nejvyšších srovnání mezi WCF a webovými službami

Základ srovnání mezi WCF vs webové služby

WCF

Webové služby

Úvod VerzeSlužba WCF byla představena s .NET verze 3.0.Webová služba existuje v .net framework od verze 1.0.
Protokol pro příjem a odesílání zprávSlužby WCF používají ve výchozím nastavení SOAP, ale zprávy mohou být v libovolném formátu a mohou být přenášeny pomocí jakéhokoli přenosového protokolu, jako je WS-HTTP, TCP, pojmenované kanály, HTTP, HTTP, MSMQ, P2P (Point to Point) atd.Webové služby ASP.NET mohou odesílat a přijímat zprávy pomocí protokolu SOAP pouze prostřednictvím protokolu HTTP nebo HTTPS.
Přípona souboruSlužby WCF mají příponu „.svc“.Webové služby mají příponu „.asmx“
SměrniceStránka svc používá směrnici „ServiceHost“.Stránka asmx používá směrnici „WebService“
Serializační technikaPro serializaci používá DataContractSerializer v oboru názvů System.RunTime.Serialization.Pro serializaci jsou webové služby ASP.NET založeny na XmlSerializer v oboru názvů System.XML.Serialization. Některé z omezení XmlSerializer jsou:

  • Možnost serializace veřejných vlastností / polí.
  • Serializovaný je možný pouze pro třídy kolekce implementující Icollection nebo IEnumerable.
  • Serializace není možná pro třídy implementující IDictionary, například HashTable.
  • Explicitní označení polí nebo vlastností, které mají být serializovány do XML, a identifikace polí, která mají být serializátorem ignorována, není možný.

Mechanismus hostováníSlužby WCF mohou být hostovány na několika platformách, jako jsou IIS, Windows Activation Services (WAS), Managed Windows services nebo self-hosting atd.Webovou službu ASP.net lze provozovat pouze ve službě IIS.
neošetřené zpracování výjimekVýjimky, které jsou nezpracované, se klientům nevracejí jako chyby SOAP.Výjimky, které jsou nezpracované, jsou klientům vráceny jako chyby SOAP ve webových službách ASP.NET.
Podpora více vlákenSlužby více podprocesů podporují služby WCF.Ve webových službách neexistuje podpora pro více vláken.
VýkonWCF je ve srovnání s webovými službami rychlejšíProtože webové služby používají serializátory, jsou z hlediska výkonu pomalejší než služby WCF.

Příklad WCF vs webové služby

Níže je uveden příklad WCF vs. webové služby:

Webové služby

Následující fragment kódu ukazuje, jak vyvinout službu ve webové službě.

(WebService) public class MyService
(
(WebMethod) public SumClass SumOfNums(string JsonStr)
(
var ObjSerializer = new JavaScriptSerializer();
var ObjSumClass = ObjSerializer.Deserialize(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

Následující fragment kódu ukazuje, jak vyvinout službu v WCF

ServiceContract) blic class MyService : WebService
(
(OperationContract) public SumClass SumOfNums(string JsonStr)
(
var ObjSerializer = new JavaScriptSerializer();
var ObjSumClass = ObjSerializer.Deserialize(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;
)
)

Závěr - WCF vs. webové služby

Z výše uvedené diskuse je služba WCF rozhodně pokročilou technologií této webové služby. WCF je z hlediska výkonu rychlejší než webové služby. WCF poskytuje lepší zabezpečení, podporuje různé protokoly i formáty zpráv. Jedinou hektickou oblastí WCF pro vývojáře je její konfigurační část. Tento problém však byl vyřešen také s WCF4.0 zavedením výchozího nastavení konfigurace. Všimněte si, že až do.NET3.5 poskytuje vizuální studio přímou šablonu pro webové služby. From.NET4.0, nemáme žádnou přímou šablonu pro webové služby. Proto musíme vytvořit webovou aplikaci a přidat k ní webovou službu.

Doporučené články

Toto byl průvodce největším rozdílem mezi WCF a webovými službami. Zde diskutujeme také klíčové rozdíly WCF vs Web Services s infografikou a srovnávací tabulkou. Další informace naleznete také v následujících článcích.

  1. Porovnání - Ubuntu vs Windows 10
  2. Mobilní aplikace vs webové stránky - užitečné srovnání
  3. Režim spánku vs Největší rozdíly v režimu spánku
  4. Webové služby společnosti Microsoft Azure vs Amazon

Kategorie: