Verschil tussen WCF en webservices

WCF is een vervanging voor alle eerdere webservicetechnologieën. Het is ontwikkeld door Microsoft. Het vervangt wat traditioneel wordt beschouwd als "webservices". Webservice is gebaseerd op SOAP die gegevens in XML-vorm retourneert. Het ondersteunt alleen het HTTP-protocol. Het is ook geen open source en kan worden gebruikt door elke client die XML begrijpt. Het kan alleen worden gehost in IIS.

Wat is WCF?

WCF is gebaseerd op SOAP en retourneert gegevens in XML-vorm. Het is een uitbreiding van de webservice (ASMX) en ondersteunt verschillende protocollen zoals HTTP, HTTPS, TCP, Named Pipes, MSMQ, enz. WCF heeft een probleem met zijn saaie en uitgebreide configuratie. Het is geen open source, maar kan worden gebruikt door elke client die XML begrijpt. Het kan worden gehost op meerdere platforms zoals in de applicatie of op IIS of met behulp van Windows-service.

In welke scenario's moet WCF worden gebruikt?

  • Voor zakelijke transacties biedt WCF ons een beveiligde server.
  • Twee of meer mensen kunnen in realtime communiceren en gegevens uitwisselen met behulp van een chatservice die bovenop WCF is gebouwd.
  • Een dashboardtoepassing die een of meer services om informatie vraagt ​​en deze logisch presenteert.
  • Blootstelling van een workflow die wordt geïmplementeerd met Windows Workflow Foundation als een WCF-service.

Wat is een webservice?

Zoals hierboven besproken, werken webservices in een staatloze omgeving. Het is alleen toegankelijk via HTTP. WCF-services kunnen worden gehost in verschillende soorten applicaties. Daarom is WCF in tegenstelling tot webservices flexibeler.

WCF kan in verschillende scenario's worden gehost. Dergelijke scenario's omvatten services zoals WAS, IIS, Self-hosting, Managed Windows Service, etc.

Head-to-head vergelijking tussen WCF en webservices (infographics)

Hieronder staat het top 9 verschil tussen WCF en Web Services

Belangrijkste verschillen tussen WCF en webservices

Beide WCF versus Web Services zijn populaire keuzes in de markt; laten we enkele van de belangrijkste verschillen tussen WCF en webservices bespreken

  • Bij het overbrengen van gegevens van de ene naar de andere applicatie, gebruikt de webservice alleen het HTTP-protocol. Aan de andere kant ondersteunt WCF voor het transport van gegevens meer protocollen in vergelijking met ASP.NET-webservices. Naast het verzenden van berichten via HTTP, ondersteunt WCF ook Transmission Control Protocol (TCP), Microsoft Message Queuing (MSMQ) en named pipes.
  • WCF is architectonisch robuuster dan Web Service.
  • XmlSerializer wordt gebruikt in webservices. WCF gebruikt DataContractSerializer, wat beter is in vergelijking met XmlSerializer in termen van prestaties.
  • Wanneer we communiceren tussen meerdere applicaties die op verschillende platforms zijn ontwikkeld, gebruiken we WCF. Het gebruik van WCF is de enige mogelijkheid voor het overbrengen van gegevens in het geval we gegevens overbrengen van .NET-platform naar een andere toepassing die wordt uitgevoerd op andere besturingssystemen zoals Unix of Linux.
  • Beveiliging in WCF is zeer hoog in vergelijking met webservice.

WCF versus Web Services Vergelijkingstabel

Hieronder vindt u de 9 bovenste vergelijking tussen WCF en webservices

De basis van vergelijking tussen WCF en Web Services

WCF

Webservices

IntroductieversieWCF-service werd geïntroduceerd met .NET-versie 3.0.Webservice bestaat in een .net-framework vanaf versie 1.0.
Protocol voor het ontvangen en verzenden van berichtenWCF-services gebruiken standaard SOAP, maar de berichten kunnen in elk formaat zijn en worden overgebracht met behulp van elk transportprotocol zoals WS- HTTP, TCP, Named Pipes, HTTP, HTTPs, MSMQ, P2P (Point to Point) etc.ASP.NET-webservices kunnen berichten verzenden en ontvangen met behulp van SOAP via alleen HTTP of HTTPS.
BestandsextensieWcf-services hebben de extensie ".svc".Webservices hebben de extensie ".asmx"
RichtlijnDe svc-pagina maakt gebruik van de "ServiceHost" -richtlijn.De asmx-pagina gebruikt de "WebService" -richtlijn
Serialisatie techniekHet gebruikt DataContractSerializer in de naamruimte System.RunTime.Serialization voor serialisatie.Voor serialisatie zijn ASP.NET-webservices gebaseerd op de XmlSerializer in System.XML.Serialization-naamruimte. Enkele beperkingen van XmlSerializer zijn:

  • Een mogelijkheid van openbare eigenschappen / velden serialisatie.
  • Serialized is alleen mogelijk voor collectieklassen die Icollection of IEnumerable implementeren.
  • Serialisatie is niet mogelijk voor klassen die IDictionary implementeren, bijvoorbeeld HashTable.
  • Expliciete indicatie van velden of eigenschappen die in XML moeten worden geserialiseerd en identificatie van velden die door serializer moeten worden genegeerd, is niet mogelijk.

HostingmechanismeWCF-services kunnen worden gehost op meerdere platforms zoals IIS, Windows Activation Services (WAS), Managed Windows-services of zelfhosting etc.ASP.net-webservice kan alleen worden gehost in IIS.
onverwerkt Behandeling van uitzonderingenUitzonderingen die niet worden verwerkt, worden niet als SOAP-fouten aan clients geretourneerd.Uitzonderingen die niet worden verwerkt, worden als SOAP-fouten in ASP.NET-webservices aan clients geretourneerd.
Ondersteuning voor meerdere threadsMulti-threading wordt ondersteund door WCF-services.Er is geen ondersteuning voor multi-threading in webservices.
PrestatieWCF is sneller in vergelijking met webservicesOmdat webservices serializers gebruiken, zijn ze daarom qua prestaties langzamer dan WCF-services.

Voorbeeld van WCF versus webservices

Hieronder ziet u het voorbeeld van WCF versus webservices:

Webservices

Het volgende codefragment laat ons zien hoe we een service in Web Service kunnen ontwikkelen.

(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

Het volgende codefragment laat ons zien hoe we een service in WCF kunnen ontwikkelen

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;
)
)

Conclusie - WCF versus webservices

Uit de bovenstaande discussie is WCF-service absoluut een geavanceerde technologie die webservice. WCF is sneller dan webservice in termen van prestaties. WCF biedt betere beveiliging, ondersteunt verschillende protocollen en berichtformaten. Het enige hectische gebied van WCF voor ontwikkelaars is het configuratiegedeelte. Dit probleem werd echter ook opgelost met WCF4.0 door standaardconfiguratie-instellingen te introduceren. Opgemerkt wordt dat tot .NET3.5 de visuele studio een directe sjabloon voor webservice biedt. Vanaf.NET4.0 krijgen we geen directe sjabloon voor webservice. Daarom moeten we een webtoepassing maken en er een webservice aan toevoegen.

Aanbevolen artikelen

Dit is een gids geweest voor het grootste verschil tussen WCF en webservices. Hier bespreken we ook de belangrijkste verschillen tussen WCF en Web Services met infographics en vergelijkingstabel. U kunt ook de volgende artikelen bekijken voor meer informatie.

  1. Vergelijking - Ubuntu versus Windows 10
  2. Mobiele app versus websites - nuttige vergelijkingen
  3. Slaapmodus versus Hibernate-Top Meeste verschillen
  4. Microsoft Azure versus Amazon Web Services