Skillnaden mellan WCF vs webbtjänster

WCF ersätter alla tidigare webbtjänsteknologier. Det är utvecklat av Microsoft. Det ersätter vad som traditionellt betraktas som ”webbtjänster”. Webbtjänsten är baserad på SOAP som returnerar data i XML-form. Det stöder bara HTTP-protokollet. Det är inte heller öppen källkod och kan konsumeras av alla klienter som förstår XML. Det kan endast värdas i IIS.

Vad är WCF?

WCF är baserat på SOAP och returnerar data i XML-form. Det är en förlängning av webbtjänsten (ASMX) och stöder olika protokoll som HTTP, HTTPS, TCP, Named Pipes, MSMQ, etc. WCF har ett problem med sin tråkiga och omfattande konfiguration. Det är inte öppen källkod men kan användas av alla klienter som förstår XML. Det kan vara värd på flera plattformar som i applikationen eller på IIS eller med fönstertjänst.

I vilka scenarier måste WCF användas?

  • För att göra affärstransaktioner tillhandahåller WCF oss en säker server.
  • Två eller flera personer kan kommunicera och utbyta data i realtid med hjälp av en chattjänst byggd ovanpå WCF.
  • En instrumentpanelapplikation som undersöker en eller flera tjänster för information och presenterar den logiskt.
  • Exponera ett arbetsflöde som implementeras med Windows Workflow Foundation som en WCF-tjänst.

Vad är en webbtjänst?

Som diskuterats ovan fungerar webbtjänster i en statslös miljö. Det kan bara nås via HTTP. WCF-tjänster kan värdas i olika typer av applikationer. Till skillnad från webbtjänster är WCF därför mer flexibel.

WCF kan vara värd i olika scenarier. Sådana scenarier inkluderar tjänster som WAS, IIS, Self-hosting, Managed Windows Service, etc.

Jämförelse mellan huvud och huvud mellan WCF vs webbtjänster (Infographics)

Nedan visas de 9 bästa skillnaderna mellan WCF vs Web Services

Viktiga skillnader mellan WCF vs webbtjänster

Båda WCF vs webbtjänster är populära val på marknaden; låt oss diskutera några av de största skillnaderna mellan WCF vs webbtjänster

  • Vid överföring av data från en applikation till en annan applikation använder webbtjänsten endast HTTP-protokoll. Å andra sidan, för transport av data, stöder WCF fler protokoll jämfört med ASP.NET webbtjänster. Förutom att skicka meddelanden med HTTP, stöder WCF också Transmission Control Protocol (TCP), Microsoft Message Queuing (MSMQ) och namngivna rör.
  • WCF är arkitektoniskt mer robust än webbtjänsten.
  • XmlSerializer används i webbtjänster. WCF använder DataContractSerializer, vilket är bättre jämfört med XmlSerializer när det gäller prestanda.
  • När vi kommunicerar mellan flera applikationer utvecklade på olika plattformar använder vi WCF. Att använda WCF är det enda möjliga för att överföra data i fall vi överför data från .NET-plattformen till alla andra applikationer som körs på andra operativsystem som Unix eller Linux.
  • Säkerheten i WCF är mycket hög jämfört med webbtjänsten.

WCF vs Web Services jämförelsetabell

Nedan visas den nio bästa jämförelsen mellan WCF vs Web Services

Basen för jämförelse mellan WCF vs webbtjänster

WCF

Webbservice

IntroduktionsversionWCF-tjänsten introducerades med .NET-version 3.0.Webbtjänsten finns i ett .net-ramverk från version 1.0.
Protokoll för att ta emot och skicka meddelandenWCF-tjänster använder SOAP som standard, men meddelandena kan vara i vilket format som helst och överföras genom att använda valfritt transportprotokoll som WS-HTTP, TCP, Named Pipes, HTTP, HTTPs, MSMQ, P2P (Point to Point) etc.ASP.NET Webbtjänster kan skicka och ta emot meddelanden med SOAP via endast HTTP eller HTTPS.
FIL ExtEnsionWcf-tjänster har ".svc" -tillägg.Webbtjänster har ".asmx" -tillägg
DirektivSvc-sidan använder "ServiceHost" -direktivet.Asmx-sidan använder "WebService" -direktivet
SerialiseringsteknikDen använder DataContractSerializer i System.RunTime.Serialization-namnutrymme för serialisering.För serialisering är ASP.NET webbtjänster baserade på XmlSerializer i System.XML.Serialization namnutrymme. Några av begränsningarna för XmlSerializer är:

  • En möjlighet till publicering av allmänna fastigheter / fält.
  • Serialiserad är endast möjlig för samlingsklasser som implementerar Icollection eller IEnumerable.
  • Serialisering är inte möjlig för klasser som implementerar IDScript, till exempel HashTable.
  • Det är inte möjligt att uttryckligen ange fält eller egenskaper som ska serialiseras till XML och identifiering av fält som ska ignoreras av serialiseraren.

VärdmekanismWCF-tjänster kan vara värd i flera plattformar som IIS, Windows Activation Services (WAS), Hanterade Windows-tjänster eller självhotande etc.ASP.net webbtjänst kan endast värdas i IIS.
obehandlad undantagshanteringUndantag som inte hanteras returneras inte till klienter som SOAP-fel.Undantag som inte hanteras returneras till klienter som SOAP-fel i ASP.NET-webbtjänster.
Stöd för flera trådarMultitrådning stöds av WCF-tjänster.Det finns inget stöd för flera trådar i webbtjänster.
PrestandaWCF är snabbare jämfört med webbtjänsterEftersom webbtjänster använder serielliserare är de därför långsammare än WCF-tjänster när det gäller prestanda.

Exempel på WCF vs webbtjänster

Nedan visas exemplet på WCF vs Web Services:

Webbservice

Följande kodavsnitt visar oss hur man utvecklar en tjänst i webbtjänsten.

(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

Följande kodavsnitt visar oss hur man utvecklar en tjänst i 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;
)
)

Slutsats - WCF vs webbtjänster

Från ovanstående diskussion är WCF-tjänsten definitivt en avancerad teknik som webbtjänsten. WCF är snabbare än webbtjänster när det gäller prestanda. WCF ger bättre säkerhet, stödjer olika protokoll samt meddelandeformat. Det enda hektiska WCF-området för utvecklare är dess konfigurationsdel. Men problemet löstes också med WCF4.0 genom att införa standardkonfigurationsinställningar. Det märks att upp till.NET3.5 ger den visuella studion en direkt mall för webbtjänst. Från.NET4.0 får vi ingen direkt mall för webbtjänst. Därför måste vi skapa en webbapplikation och lägga till en webbtjänst till den.

Rekommenderade artiklar

Detta har varit en guide till den största skillnaden mellan WCF vs Web Services. Här diskuterar vi också WCF vs Web Services viktiga skillnader med infografik och jämförelsetabell. Du kan också titta på följande artiklar för att lära dig mer.

  1. Jämförelse - Ubuntu vs Windows 10
  2. Mobilapp vs webbplatser - användbara jämförelser
  3. Viloläge vs Viloläge-Topp De flesta skillnader
  4. Microsoft Azure vs Amazon Web Services

Kategori: