Razlika med WCF in spletnimi storitvami

WCF je nadomestilo za vse prejšnje tehnologije spletnih storitev. Razvil jo je Microsoft. Nadomešča tisto, kar tradicionalno velja za „spletne storitve“. Spletna storitev temelji na SOAP-u, ki podatke vrača v obliki XML. Samo podpira protokol HTTP. Prav tako ni odprte kode in ga lahko zaužije vsak odjemalec, ki razume XML. Gostuje lahko le v IIS.

Kaj je WCF?

WCF temelji na SOAP-u in podatke vrača v obliki XML. Gre za razširitev spletne storitve (ASMX) in podpira različne protokole, kot so HTTP, HTTPS, TCP, Named Pipes, MSMQ itd. WCF ima težavo s svojo dolgočasno in obsežno konfiguracijo. To ni odprtokodni vir, vendar ga lahko uporablja kateri koli odjemalec, ki razume XML. Gostijo ga lahko na več platformah, kot je v aplikaciji ali na IIS, ali pa uporabljate okensko storitev.

V katerih scenarijih se mora uporabljati WCF?

  • WCF nam za izvajanje poslovnih transakcij nudi varen strežnik.
  • Dve ali več oseb lahko komunicira in izmenjuje podatke v realnem času s pomočjo klepetalne storitve, ki je zgrajena na strani WCF.
  • Aplikacija na nadzorni plošči, ki anketira eno ali več storitev za informacije in jih logično predstavi.
  • Izpostavitev delovnega toka, ki se izvaja s pomočjo programa Windows Workflow Foundation kot storitve WCF.

Kaj je spletna storitev?

Kot je razloženo zgoraj, spletne storitve delujejo v okolju brez državljanstva. Dostop do njega je mogoč samo prek HTTP-ja. WCF storitve lahko gostimo v različnih vrstah aplikacij. Zato je za razliko od spletnih storitev WCF bolj prilagodljiv.

WCF lahko gostimo v različnih scenarijih. Takšni scenariji vključujejo storitve, kot so WAS, IIS, samostojno gostovanje, storitev Upravljanega sistema Windows itd.

Primerjava med podjetji WCF in spletnimi storitvami (Infographics)

Spodaj je zgornjih 9 razlik med WCF in spletnimi storitvami

Ključne razlike med WCF in spletnimi storitvami

Oba WCF v primerjavi s spletnimi storitvami sta priljubljeni izbiri na trgu; pogovorimo se o nekaterih glavnih razlikah med WCF in spletnimi storitvami

  • Medtem ko podatki prenašajo podatke iz ene aplikacije v drugo, spletna storitev uporablja samo protokol HTTP. Po drugi strani WCF za prenos podatkov podpira več protokolov v primerjavi s spletnimi storitvami ASP.NET. WCF poleg pošiljanja sporočil prek HTTP podpira tudi protokol za nadzor prenosa (TCP), čakalno vrsto za sporočila Microsoft (MSMQ) in imenovane cevi.
  • WCF je arhitekturno močnejši od storitve Web Service.
  • XmlSerializer se uporablja v spletnih storitvah. WCF uporablja DataContractSerializer, ki je v primerjavi z XmlSerializer boljši glede na učinkovitost.
  • Pri komunikaciji med več aplikacijami, razvitimi na različnih platformah, uporabljamo WCF. Uporaba WCF je edina možna za prenos podatkov, če podatke prenašamo s platforme .NET v katero koli drugo aplikacijo, ki deluje v drugih operacijskih sistemih, kot sta Unix ali Linux.
  • Varnost v WCF je v primerjavi s spletno storitvijo zelo visoka.

WCF vs primerjalna tabela spletnih storitev

Spodaj je 9 najvišjih primerjav med WCF in spletnimi storitvami

Osnova primerjave med WCF in spletnimi storitvami

WCF

Spletne storitve

Uvodna različicaWCF storitev se je predstavila z .NET različico 3.0.Spletna storitev obstaja v .net okviru od različice 1.0.
Protokol za sprejem in pošiljanje sporočilStoritve WCF privzeto uporabljajo SOAP, vendar so sporočila lahko v kateri koli obliki in poslana z uporabo katerega koli transportnega protokola, kot so WS-HTTP, TCP, Named Pipes, HTTP, HTTPs, MSMQ, P2P (od točke do točke) itd.Spletne storitve ASP.NET lahko pošiljajo in prejemajo sporočila z uporabo SOAP-a prek samo HTTP ali HTTPS.
FILE EXEnsionWcf storitve imajo razširitev ".svc".Spletne storitve imajo razširitev ".asmx"
DirektivaStran svc uporablja direktivo "ServiceHost".Stran asmx uporablja direktivo "WebService"
Tehnika serializacijeZa serijsko uporabo uporablja DataContractSerializer v System.RunTime.Serialization namespaceu.Za serializacijo spletne storitve ASP.NET temeljijo na XmlSerializer v imeniškem prostoru System.XML.Serialization. Nekatere omejitve XmlSerializer so:

  • Možnost serializacije javnih lastnosti / polj.
  • Serializirano je mogoče le za razrede zbiranja, ki izvajajo Icollection ali IEnumerable.
  • Serializacija ni mogoča za razrede, ki izvajajo IDictionary, na primer HashTable.
  • Izrecna navedba polj ali lastnosti, ki jih je treba serijsko pretvoriti v XML, in identifikacija polj, ki jih mora zanemariti serializer, ni mogoča.

Gostovalni mehanizemStoritve WCF lahko gostite na več platformah, kot so IIS, Windows Activation Services (WAS), storitve Upravljanega sistema Windows ali samostojno gostovanje itd.Spletno storitev ASP.net lahko gosti le v IIS.
neobdelano ravnanje z izjemamiIzjeme, ki se ne obravnavajo, se strankam ne vrnejo kot napake SOAP.Izjeme, ki se ne obdelujejo, se strankam vrnejo kot napake SOAP v spletnih storitvah ASP.NET.
Podpora z več nitmiStoritve WCF podpirajo večnarezno navoje.V spletnih storitvah ni podpore za več nit.
IzvedbaWCF je hitrejši v primerjavi s spletnimi storitvamiKer spletne storitve uporabljajo serializatorje, so zato storitve počasnejše od storitev WCF.

Primer WCF vs spletnih storitev

Spodaj je primer WCF vs Web Services:

Spletne storitve

Naslednji delček kode nam pokaže, kako razviti storitev v spletni storitvi.

(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

Naslednji delček kode nam pokaže, kako razviti storitev 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;
)
)

Zaključek - WCF vs spletne storitve

Iz zgornje razprave je storitev WCF vsekakor napredna tehnologija, ki spletna storitev. WCF je glede na delovanje hitrejši od spletnih storitev. WCF zagotavlja boljšo varnost, podpira različne protokole in tudi oblike sporočil. Edino hecno območje WCF za razvijalce je njegov konfiguracijski del. Vendar se je ta problem rešil tudi z WCF4.0 z uvedbo privzetih nastavitev konfiguracije. Opazimo, da do.NET3.5 vizualni studio ponuja neposredno predlogo za spletno storitev. From.NET4.0 ne dobimo nobene neposredne predloge za spletno storitev. Zato moramo ustvariti spletno aplikacijo in ji dodati spletno storitev.

Priporočeni članki

To je vodilo za največjo razliko med WCF in spletnimi storitvami. Tukaj razpravljamo tudi o ključnih razlikah WCF vs Web Services z infografiko in primerjalno tabelo. Če želite izvedeti več, si lahko ogledate tudi naslednje članke.

  1. Primerjava - Ubuntu in Windows 10
  2. Mobilna aplikacija proti spletnim mestom - koristne primerjave
  3. Način mirovanja v primerjavi z mirovanjem-najbolj večina razlik
  4. Microsoft Azure vs Amazon Web Services