Ero WCF: n ja verkkopalvelujen välillä
WCF korvaa kaikki aikaisemmat verkkopalvelutekniikat. Sen on kehittänyt Microsoft. Se korvaa sen, mitä perinteisesti pidetään ”verkkopalveluna”. Verkkopalvelu perustuu SOAPiin, joka palauttaa tiedot XML-muodossa. Se tukee vain HTTP-protokollaa. Se ei ole myöskään avoimen lähdekoodin käyttö, ja kuka tahansa asiakas, joka ymmärtää XML: ää, voi käyttää sitä. Sitä voidaan ylläpitää vain IIS: ssä.
Mikä on WCF?
WCF perustuu SOAP: iin ja palauttaa tiedot XML-muodossa. Se on verkkopalvelun (ASMX) laajennus ja tukee erilaisia protokollia, kuten HTTP, HTTPS, TCP, Named Pipes, MSMQ jne. WCF: llä on ongelma tylsää ja laaja-alaista kokoonpanoaan varten. Se ei ole avoimen lähdekoodin, mutta sitä voi käyttää kuka tahansa asiakas, joka ymmärtää XML: ää. Sitä voidaan isännöidä useilla alustoilla kuten sovelluksessa tai IIS: ssä tai käyttämällä ikkunapalvelua.
Missä tilanteissa WCF: ää on käytettävä?
- Liiketoimien suorittamiseen WCF tarjoaa meille suojatun palvelimen.
- Kaksi tai useampi ihminen voi kommunikoida ja myös vaihtaa tietoja reaaliajassa WCF: n päälle rakennetun chat-palvelun avulla.
- Kojelaudan sovellus, joka kysyy yhdestä tai useammasta palvelusta tietoa ja esittää sen loogisesti.
- Paljastetaan työnkulku, joka on toteutettu Windows Workflow Foundation -ohjelmalla WCF-palveluna.
Mikä on verkkopalvelu?
Kuten edellä käsiteltiin, verkkopalvelut toimivat valtiottomassa ympäristössä. Sitä voidaan käyttää vain HTTP: n kautta. WCF-palveluita voidaan ylläpitää erityyppisissä sovelluksissa. Siksi, toisin kuin Web Services, WCF on joustavampi.
WCF: ää voidaan isännöidä erilaisissa tilanteissa. Tällaisia skenaarioita ovat esimerkiksi palvelut, kuten WAS, IIS, omaisäyttö, hallittu Windows-palvelu jne.
Head to Head -vertailu WCF: n ja verkkopalvelujen välillä (infografia)
Alla on 9 parasta eroa WCF: n ja Web-palveluiden välillä
Keskeiset erot WCF: n ja verkkopalvelujen välillä
Sekä WCF vs. Web Services ovat suosittuja valintoja markkinoilla; keskustelemme joistakin suurimmista eroista WCF: n ja verkkopalvelujen välillä
- Siirtäessäsi tietoja yhdestä sovelluksesta toiseen, Web-palvelu käyttää vain HTTP-protokollaa. Toisaalta tietojen siirtämiseen WCF tukee enemmän protokollia kuin ASP.NET-verkkopalvelut. Viestien lähettämisen lisäksi HTTP: llä, WCF tukee myös TCP: tä (Transmission Control Protocol), Microsoft Message Queuing (MSMQ) ja nimettyjä putkia.
- WCF on arkkitehtonisesti vahvempi kuin Web Service.
- XmlSerializeria käytetään verkkopalveluissa. WCF käyttää DataContractSerializeria, joka on suorituskyvyn suhteen parempi kuin XmlSerializer.
- Kun kommunikoimme useilla eri alustoilla kehitettyjen sovellusten välillä, käytämme WCF: ää. WCF: n käyttö on ainoa mahdollinen tiedonsiirto, jos siirrämme tietoja .NET-alustasta mihin tahansa muuhun sovellukseen, joka toimii muissa käyttöjärjestelmissä, kuten Unix tai Linux.
- WCF: n tietoturva on erittäin korkea verrattuna verkkopalveluun.
WCF vs. Web Services -vertailutaulukko
Alla on 9 korkeinta vertailua WCF: n ja Web-palveluiden välillä
WCF: n ja verkkopalvelujen vertailun perusta |
WCF |
Web palvelut |
Johdanto-versio | WCF-palvelu esiteltiin .NET-version 3.0 kanssa. | Verkkopalvelu on olemassa .net-kehyksessä versiosta 1.0. |
Protokolla viestien vastaanottamiseen ja lähettämiseen | WCF-palvelut käyttävät oletusarvoisesti SOAP, mutta viestit voivat olla missä tahansa muodossa ja välittää millä tahansa siirtoprotokollalla, kuten WS-HTTP, TCP, Named Pipes, HTTP, HTTPs, MSMQ, P2P (Point to Point) jne. | ASP.NET-verkkopalvelut voivat lähettää ja vastaanottaa viestejä SOAP: n kautta vain HTTP: n tai HTTPS: n kautta. |
Tiedostopääte | Wcf-palveluilla on .svc-laajennus. | Web-palveluilla on ”.asmx” -laajennus |
Direktiivi | Svc-sivu käyttää ”ServiceHost” -direktiiviä. | Asmx-sivu käyttää ”WebService” -direktiiviä |
Sarjakuvaustekniikka | Se käyttää DataContractSerializeria System.RunTime.Serialization-nimitilassa sarjanumerointiin. | Sarjallistamista varten ASP.NET-verkkopalvelut perustuvat System.XML.Serialization-nimitilan XmlSerializer-ohjelmaan. Jotkut XmlSerializerin rajoituksista ovat:
|
Isäntämekanismi | WCF-palveluita voidaan ylläpitää useilla alustoilla, kuten IIS, Windows Activation Services (WAS), Managed Windows -palvelut tai itseisäyttö jne. | ASP.net-verkkopalvelua voidaan ylläpitää vain IIS: ssä. |
käsittelemätön Poikkeuskäsittely | Käsittelemättömiä poikkeuksia ei palauteta asiakkaille SOAP-virheinä. | Käsittelemättömät poikkeukset palautetaan asiakkaille SOAP-virheinä ASP.NET-verkkopalveluissa. |
Monisäikeinen tuki | WCF-palvelut tukevat monisäiettä. | Verkkopalvelujen monisäikeistämistä ei tueta. |
Esitys | WCF on nopeampi verrattuna verkkopalveluihin | Koska verkkopalvelut käyttävät serialisaattoreita, ovat ne suorituskyvyn suhteen hitaampia kuin WCF-palvelut. |
Esimerkki WCF vs. verkkopalveluista
Alla on esimerkki WCF vs. Web Services:
Web palvelut
Seuraava koodinpätkä näyttää meille kuinka kehittää palvelua Web Service -palvelussa.
(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
Seuraava koodinpätkä näyttää meille kuinka kehittää palvelua WCF: ssä
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;
)
)
Johtopäätös - WCF vs. verkkopalvelut
Yllä olevasta keskustelusta käy ilmi, että WCF-palvelu on ehdottomasti edistyksellinen tekniikka, joka tarjoaa Web-palvelun. WCF on suorituskyvyn suhteen nopeampi kuin verkkopalvelu. WCF tarjoaa paremman tietoturvan, tukee erilaisia protokollia ja viestimuotoja. Ainoa hektisten WCF-alue kehittäjille on sen kokoonpano-osa. Tämä ongelma ratkaistiin kuitenkin myös WCF4.0: lla ottamalla käyttöön oletusasetukset. On huomattava, että jopa.NET3.5: een asti visuaalinen studio tarjoaa suoran mallin verkkopalvelulle. From.NET4.0, meillä ei ole suoraa mallia verkkopalvelulle. Siksi meidän on luotava verkkosovellus ja lisättävä siihen verkkopalvelu.
Suositellut artikkelit
Tämä on opas WCF: n ja Web-palveluiden suurimpaan eroon. Tässä keskustellaan myös WCF vs Web Services -yrityksen keskeisistä eroista infografioiden ja vertailutaulukon kanssa. Saatat myös katsoa seuraavia artikkeleita saadaksesi lisätietoja.
- Vertailu - Ubuntu vs. Windows 10
- Mobiilisovellus vs. verkkosivustot - hyödyllisiä vertailuja
- Lepotila vs. horrostila-alkuun useimmat erot
- Microsoft Azure vs Amazon Web Services