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-versioWCF-palvelu esiteltiin .NET-version 3.0 kanssa.Verkkopalvelu on olemassa .net-kehyksessä versiosta 1.0.
Protokolla viestien vastaanottamiseen ja lähettämiseenWCF-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ääteWcf-palveluilla on .svc-laajennus.Web-palveluilla on ”.asmx” -laajennus
DirektiiviSvc-sivu käyttää ”ServiceHost” -direktiiviä.Asmx-sivu käyttää ”WebService” -direktiiviä
SarjakuvaustekniikkaSe käyttää DataContractSerializeria System.RunTime.Serialization-nimitilassa sarjanumerointiin.Sarjallistamista varten ASP.NET-verkkopalvelut perustuvat System.XML.Serialization-nimitilan XmlSerializer-ohjelmaan. Jotkut XmlSerializerin rajoituksista ovat:

  • Mahdollisuus julkisten kiinteistöjen / kenttien sarjanumerointiin.
  • Sarjakuvaus on mahdollista vain keräysluokissa, joissa toteutetaan Icollection tai IEnumerable.
  • Sarjakuvaus ei ole mahdollinen luokissa, joissa toteutetaan ID-sanakirja, esimerkiksi HashTable.
  • XML-sarjaksi serialisoitavien kenttien tai ominaisuuksien selkeä osoittaminen ja sarjoittimen huomioimatta jäävien kenttien tunnistaminen ei ole mahdollista.

IsäntämekanismiWCF-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äsittelyKäsittelemättömiä poikkeuksia ei palauteta asiakkaille SOAP-virheinä.Käsittelemättömät poikkeukset palautetaan asiakkaille SOAP-virheinä ASP.NET-verkkopalveluissa.
Monisäikeinen tukiWCF-palvelut tukevat monisäiettä.Verkkopalvelujen monisäikeistämistä ei tueta.
EsitysWCF on nopeampi verrattuna verkkopalveluihinKoska 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.

  1. Vertailu - Ubuntu vs. Windows 10
  2. Mobiilisovellus vs. verkkosivustot - hyödyllisiä vertailuja
  3. Lepotila vs. horrostila-alkuun useimmat erot
  4. Microsoft Azure vs Amazon Web Services