Forskjellen mellom WCF vs webtjenester

WCF er en erstatning for alle tidligere webtjenesteteknologier. Den er utviklet av Microsoft. Det erstatter det som tradisjonelt betraktes som "webtjenester". Web Service er basert på SOAP som returnerer data i XML-form. Den støtter bare HTTP-protokollen. Det er heller ikke åpen kildekode og kan konsumeres av enhver klient som forstår XML. Det kan bare vert i IIS.

Hva er WCF?

WCF er basert på SOAP og returnerer data i XML-form. Det er en utvidelse av webtjenesten (ASMX) og støtter forskjellige protokoller som HTTP, HTTPS, TCP, Named Pipes, MSMQ, etc. WCF har et problem med den kjedelige og omfattende konfigurasjonen. Det er ikke åpen kildekode, men kan brukes av alle klienter som forstår XML. Det kan hostes på flere plattformer som i applikasjonen eller på IIS eller ved hjelp av vindustjeneste.

I hvilke scenarier må WCF brukes?

  • For å gjøre forretningstransaksjoner gir WCF oss en sikker server.
  • To eller flere personer kan kommunisere og også utveksle data i sanntid ved hjelp av en chat-tjeneste bygget oppå WCF.
  • Et instrumentpanelapplikasjon som avstemmer en eller flere tjenester for informasjon og presenterer den logisk.
  • Å avsløre en arbeidsflyt som er implementert ved bruk av Windows Workflow Foundation som en WCF-tjeneste.

Hva er en webtjeneste?

Som diskutert ovenfor, fungerer Web Services i et statsløst miljø. Det kan bare nås via HTTP. WCF-tjenester kan hostes i forskjellige typer applikasjoner. Derfor, i motsetning til Web Services, er WCF mer fleksibel.

WCF kan arrangeres i forskjellige scenarier. Slike scenarier inkluderer tjenester som WAS, IIS, Self-hosting, Managed Windows Service, etc.

Sammenligning fra topp mot hodet mellom WCF vs webtjenester (infografikk)

Nedenfor er topp 9-forskjellen mellom WCF vs Web Services

Viktige forskjeller mellom WCF vs webtjenester

Begge WCF vs webtjenester er populære valg i markedet; la oss diskutere noen av de viktigste forskjellene mellom WCF vs webtjenester

  • Når du overfører data fra ett program til et annet program, bruker webtjenesten bare HTTP-protokoll. På den annen side, for transport av data, støtter WCF flere protokoller sammenlignet med ASP.NET webtjenester. Bortsett fra å sende meldinger ved hjelp av HTTP, støtter WCF også Transmission Control Protocol (TCP), Microsoft Message Queuing (MSMQ) og navngitte rør.
  • WCF er arkitektonisk mer robust enn Web Service.
  • XmlSerializer brukes i webtjenester. WCF bruker DataContractSerializer, som er bedre sammenlignet med XmlSerializer når det gjelder ytelse.
  • Når vi kommuniserer mellom flere applikasjoner utviklet på forskjellige plattformer, bruker vi WCF. Å bruke WCF er det eneste mulige for å overføre data i tilfelle vi overfører data fra .NET-plattformen til et hvilket som helst annet program som kjører på andre operativsystemer som Unix eller Linux.
  • Sikkerheten i WCF er veldig høy sammenlignet med webtjenesten.

WCF vs webtjenester sammenligningstabell

Nedenfor er den 9 øverste sammenligningen mellom WCF vs Web Services

Sammenligningsgrunnlaget mellom WCF vs webtjenester

WCF

Nettjenester

IntroduksjonsversjonWCF-tjenesten ble introdusert med .NET versjon 3.0.Webtjeneste finnes i et .net-rammeverk fra versjon 1.0.
Protokoll for mottak og sending av meldingerWCF-tjenester bruker SOAP som standard, men meldingene kan være i hvilket som helst format og formidles ved å bruke hvilken som helst transportprotokoll som WS-HTTP, TCP, Named Pipes, HTTP, HTTPs, MSMQ, P2P (Point to Point) etc.ASP.NET Web-tjenester kan sende og motta meldinger ved hjelp av SOAP over bare HTTP eller HTTPS.
FilutvidelseWcf-tjenester har utvidelsen “.svc”.Webtjenester har utvidelsen ".asmx"
direktivSvc-siden bruker “ServiceHost” -direktivet.Asmx-siden bruker “WebService” -direktivet
SerialiseringsteknikkDen bruker DataContractSerializer i System.RunTime.Serialization navnefelt for serialisering.For serialisering er ASP.NET Web-tjenester basert på XmlSerializer i System.XML.Serialization navnefelt. Noen av begrensningene til XmlSerializer er:

  • En mulighet for offentlige eiendommer / feltforklaringer.
  • Serialisert er bare mulig for samlingsklasser som implementerer Icollection eller IEnumerable.
  • Serialisering er ikke mulig for klasser som implementerer IDictionary, for eksempel HashTable.
  • Eksplisitt indikasjon på felt eller egenskaper som skal serialiseres til XML og identifisering av felt som skal ignoreres av serialiser er ikke mulig.

Hosting mekanismeWCF-tjenester kan hostes i flere plattformer som IIS, Windows Activation Services (WAS), Managed Windows-tjenester eller selvhosting osv.ASP.net webtjeneste kan bare vert i IIS.
uhåndtert unntakshåndteringUnntak som ikke er håndtert blir ikke returnert til klienter som SOAP-feil.Unntak som ikke er håndtert blir returnert til klienter som SOAP-feil i ASP.NET Web-tjenester.
Støtte for flere tråderMultitråding støttes av WCF-tjenester.Det er ingen støtte for multi-threading i webtjenester.
OpptredenWCF er raskere sammenlignet med webtjenesterSiden webtjenester bruker serialiserere, er de derfor tregere enn WCF-tjenester når det gjelder ytelse.

Eksempel på WCF vs webtjenester

Nedenfor er eksemplet på WCF vs Web Services som følger:

Nettjenester

Følgende kodebit viser oss hvordan du utvikler en tjeneste i Web Service.

(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ølgende kodebit viser oss hvordan du utvikler en tjeneste 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;
)
)

Konklusjon - WCF vs webtjenester

Fra diskusjonen ovenfor er WCF-tjenesten definitivt en avansert teknologi som Web-tjenesten. WCF er raskere enn nettjeneste når det gjelder ytelse. WCF gir bedre sikkerhet, støtter forskjellige protokoller samt meldingsformater. Det eneste hektiske WCF-området for utviklere er konfigurasjonsdelen. Imidlertid ble dette problemet også løst med WCF4.0 ved å innføre standard konfigurasjonsinnstillinger. Det blir lagt merke til at det opp til.NET3.5 gir det visuelle studioet en direkte mal for webtjeneste. Fra.NET4.0 får vi ingen direkte mal for webtjeneste. Derfor må vi lage en webapplikasjon og legge til en webtjeneste til den.

Anbefalte artikler

Dette har vært en guide til den største forskjellen mellom WCF vs Web Services. Her diskuterer vi også WCF vs Web Services viktige forskjeller med infografikk og sammenligningstabell. Du kan også se på følgende artikler for å lære mer.

  1. Sammenligning - Ubuntu vs Windows 10
  2. Mobilapp vs nettsteder - nyttige sammenligninger
  3. Hvilemodus vs dvalemodus-de fleste forskjeller
  4. Microsoft Azure vs Amazon Web Services