Erinevus WCF-i ja veebiteenuste vahel
WCF on kõigi varasemate veebiteenuste tehnoloogiate asendaja. Selle on välja töötanud Microsoft. See asendab seda, mida tavaliselt peetakse veebiteenuseks. Veebiteenus põhineb SOAP-il, mis tagastab andmed XML-kujul. See toetab lihtsalt HTTP-protokolli. Samuti pole see avatud lähtekoodiga ja seda võib kasutada iga klient, kes mõistab XML-i. Seda saab majutada ainult IIS-is.
Mis on WCF?
WCF põhineb SOAP-il ja tagastab andmed XML-kujul. See on veebiteenuse (ASMX) laiend ja toetab erinevaid protokolle nagu HTTP, HTTPS, TCP, Named Pipes, MSMQ jne. WCF-il on probleem oma tüütu ja ulatusliku konfiguratsiooniga. See pole avatud lähtekoodiga, kuid seda saab kasutada iga klient, kes mõistab XML-i. Seda saab hostida mitmel platvormil nagu rakenduses või IIS-is või kasutades aknateenust.
Millistes stsenaariumides tuleb WCF-i kasutada?
- Äritehingute tegemiseks pakub WCF meile turvalist serverit.
- Kaks või enam inimest saavad WCF-i peale üles ehitatud vestlusteenuse abil suhelda ja ka andmeid reaalajas vahetada.
- Armatuurlaua rakendus, mis küsib teavet ühe või mitme teenuse kohta ja esitleb seda loogiliselt.
- Töövoo paljastamine, mida rakendatakse Windows Workflow Foundationi abil WCF-teenusena.
Mis on veebiteenus?
Nagu eespool arutatud, töötavad veebiteenused kodakondsuseta keskkonnas. Sellele pääseb juurde ainult HTTP kaudu. WCF-i teenuseid saab hostida erinevat tüüpi rakendustes. Seetõttu on WCF erinevalt veebiteenustest paindlikum.
WCF-i saab hostida erinevatel stsenaariumidel. Sellised stsenaariumid hõlmavad selliseid teenuseid nagu WAS, IIS, isemajutus, hallatud Windowsi teenus jne.
Võrdlus WCF-i ja veebiteenuste vahel (infograafika)
Allpool on toodud 9 parimat erinevust WCF vs veebiteenuste vahel
Peamised erinevused WCF-i ja veebiteenuste vahel
Mõlemad WCF vs veebiteenused on turul populaarsed valikud; arutagem mõnda peamist erinevust WCF-i ja veebiteenuste vahel
- Andmete ühest rakendusest teise rakendusse ülekandmisel kasutab veebiteenus ainult HTTP-protokolli. Teisest küljest toetab WCF andmete transportimiseks rohkem protokolle kui ASP.NET veebiteenustega. Lisaks sõnumite saatmisele HTTP abil toetab WCF ka edastuse juhtimisprotokolli (TCP), Microsofti sõnumijärjekorda (MSMQ) ja nimetatud torusid.
- WCF on arhitektuuriliselt vastupidavam kui veebiteenus.
- XmlSerializerit kasutatakse veebiteenustes. WCF kasutab DataContractSerializerit, mis on jõudluse osas parem kui XmlSerializer.
- Suheldes mitme erinevatel platvormidel välja töötatud rakenduste vahel, kasutame WCF-i. WCF-i kasutamine on andmete edastamiseks ainus võimalik juhul, kui me edastame andmeid .NET-platvormilt muudesse rakendustesse, mis töötavad teistes opsüsteemides, näiteks Unix või Linux.
- WCF-i turvalisus on veebiteenusega võrreldes väga kõrge.
WCF vs veebiteenuste võrdlustabel
Allpool on toodud 9 parimat WCF-i ja veebiteenuste võrdlust
WCF-i ja veebiteenuste võrdluse alus |
WCF |
Veebiteenused |
Sissejuhatuse versioon | WCF-i teenusega tutvustati .NET versiooni 3.0. | Veebiteenus eksisteerib .net-raamistikus alates versioonist 1.0. |
Protokoll sõnumite vastuvõtmiseks ja saatmiseks | WCF-teenused kasutavad vaikimisi SOAP-i, kuid sõnumid võivad olla mis tahes vormingus ja edastada mis tahes transpordiprotokolli abil, näiteks WS-HTTP, TCP, Named Pipes, HTTP, HTTPs, MSMQ, P2P (punktist punkti) jne. | ASP.NET veebiteenused saavad SOAP-i kasutades sõnumeid saata ja vastu võtta ainult HTTP või HTTPS kaudu. |
Faili lisalaiend | Wcf-teenustel on laiend .svc. | Veebiteenustel on laiend .asmx |
Direktiiv | SVC-lehel on kasutatud „ServiceHost” direktiivi. | Asmxi leht kasutab „WebService” direktiivi |
Serialiseerimistehnika | Serialiseerimiseks kasutab System.RunTime.Serialization nimeruumi DataContractSerializer. | Seerialiseerimiseks põhinevad ASP.NET-i veebiteenused System.XML.Serialization-nimeruumi XmlSerializeril. Mõned XmlSerializer'i piirangud on järgmised:
|
Hosting mehhanism | WCF-i teenuseid saab hostida mitmel platvormil, näiteks IIS, Windowsi aktiveerimisteenused (WAS), Hallatud Windowsi teenused või isemajandamine jne. | ASP.net-i veebiteenust saab hostida ainult IIS-is. |
käsitsemata Erandkäsitlus | Käsitlemata erandeid ei tagastata klientidele SOAP-tõrgetena. | Käsitsemata erandid tagastatakse klientidele ASP.NET-veebiteenuste SOAP-tõrgetena. |
Mitme lõime tugi | WCF-teenused toetavad mitmekordset keermestamist. | Veebiteenustes mitut lõimetamist ei toetata. |
Etendus | WCF on veebiteenustega võrreldes kiirem | Kuna veebiteenused kasutavad serialiseerijaid, on need jõudluse osas aeglasemad kui WCF-teenused. |
WCF vs veebiteenuste näide
Allpool on toodud WCF vs veebiteenuste näited:
Veebiteenused
Järgmine koodilõik näitab meile, kuidas veebiteenuses teenust arendada.
(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
Järgmine koodilõik näitab meile, kuidas arendada teenust WCF-is
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;
)
)
Järeldus - WCF vs veebiteenused
Ülaltoodud arutelust järeldub, et WCF-teenus on kindlasti täiustatud tehnoloogia, mis veebiteenus. WCF on jõudluse osas kiirem kui veebiteenus. WCF pakub paremat turvalisust, toetab nii erinevaid protokolle kui ka sõnumivorminguid. Ainus arendajate jaoks mõeldud WCF-i hektiline ala on selle konfiguratsiooniosa. Kuid see probleem lahendati ka WCF4.0-ga, viies sisse vaikeseaded. On märgatud, et kuni.NET3.5 pakub visuaalstuudio veebiteenuse otsest malli. Alates saidist.NET4.0 ei saa me otsest veebiteenuse malli. Seetõttu peame looma veebirakenduse ja lisama sellele veebiteenuse.
Soovitatavad artiklid
See on juhend peamiste erinevuste vahel WCF vs veebiteenuste vahel. Siin käsitleme ka WCF vs veebiteenuste peamisi erinevusi infograafikaga ja võrdlustabelit. Lisateabe saamiseks võite vaadata ka järgmisi artikleid.
- Võrdlus - Ubuntu vs Windows 10
- Mobiilirakendus vs veebisaidid - kasulikud võrdlused
- Unerežiim vs talveunerežiim - kõige erinevused
- Microsoft Azure vs Amazon veebiteenused