Razlika između WCF-a i Web API-ja
Što je WCF?
WCF je skraćenica za Windows komunikacija Foundation. Koristi se za stvaranje distribuiranih i interoperabilnih aplikacija. WCF je učinkovita platforma za razvoj servisno orijentiranih aplikacija. Omogućuje razvojnim programerima stvaranje sigurnih, pouzdanih i visokoprofilnih razvojnih rješenja koja se mogu integrirati na više platformi i interoperirati s postojećim ulaganjima.
Što je Web API?
ASP.NET Web API okvir je koji vam omogućuje izradu HTTP usluga za preglednike i mobilne uređaje. To je idealna platforma za razvoj RESTful aplikacije na ASP .NET Frameworku.
ASP.NET Web API je proširiv okvir za izgradnju HTTP usluga kojima se može pristupiti u različitim aplikacijama na različitim platformama kao što su web, Windows, mobilni uređaji itd.
KLJUČNA RAZLIKA
- WCF nudi zahtjev-odgovor, jednosmjerni ili dupleks dok je Web API prema zadanim postavkama samo zahtjev-odgovor.
- WCF se koristi za razvoj usluga temeljenih na SOAP-u, dok se Web API koristi i za usluge temeljene na SOAP-u i za RESTful usluge.
- WCF ne nudi nikakvu podršku za MVC značajke, dok Web API podržava MVC značajke.
- WCF podržava HTTP, UDP i prilagođeni transportni protokol, dok Web API podržava samo HTTP protokol.
- WCF nudi podršku za tekst, MTOM i binarno kodiranje, dok Web API podržava UTF-8 format kodiranja.
- WCF podržava redove poruka, sigurnost poruka, dvostruku komunikaciju, transakcije, dok Web API ne podržava.
- WCF je skraćenica za Windows komunikacija Foundation dok API označava sučelje aplikacijskog programa.
Zašto koristiti WCF?
Ovdje su prednosti/prednosti korištenja WCF-a:
- WCF je idealna opcija ako planirate koristiti .NET Framework 3.5.
- WCF podržava više protokola kao što su HTTP, TCP, Named pipe.
- WCF usluga je korisna ako želite izgraditi uslugu sa standardima kao što su Transactions Messaging Security i Reliable Message Security.
- S WCF-om možete koristiti obrasce za razmjenu poruka Request-Reply, One Way i Duplex.
Zašto koristiti Web API?
Ovdje su prednosti/prednosti korištenja web API-ja:
- Web API pruža podršku za CRUD radnje temeljene na konvenciji budući da radi s HTTP glagolima (GET, PUT, POST i DELETE)
- Lako ju je definirati, izložiti i konzumirati na REST-ful način.
- ASP.Net Web API omogućuje vam da svoje podatke i usluge prikažete različitim uređajima.
- Web API je open source, stoga je idealna opcija za kreiranje RESTful servisa preko .NET platforme.
- Omogućuje vam skalabilni, razdvojeni razvoj web-usluge koju mogu dijeliti i koristiti drugi programeri za pristup web-uslugama.
- Također je korisno izgraditi jednostavne HTTP usluge koje se ne temelje na SOAP-u.
Karakteristike WCF-a
- Visoko konfigurabilni transporti
- Bolje opcije za serijalizaciju
- Dobro integriran s IIS-om
- Jednostavno za samostalno hosting
- Vrlo bogati metapodaci
- Kompleksni model za objavu
- Ugovori s bogatim podacima
Karakteristike Web API-ja
- Čvrsto povezan s HTTP-om
- Jednostavan za testiranje
- Nudi podršku za pregovaranje o sadržaju
- Omogućuje otvoreno oblikovanje
- Bez oslanjanja na platformu
- Čvrsta usmjerenost na resurse
- Iskustvo 2. razine s novonastalom podrškom za hipermedije
WCF protiv web servisa
Parametar | WCF | WebAPI |
---|---|---|
Uzorak razmjene poruka | Zatražite odgovor, jednosmjerno ili dupleks. | Prema zadanim postavkama samo zahtjev-odgovor. Međutim, dodatni uzorak poruke može biti podržan s integracijom web utičnica. |
Hosting | IIS hosting, Self-hosting i usluge aktivacije radova. | Samostalno hosting & IIS hosting. |
Open Source | To nije softver otvorenog koda. | Isporučuje se s okvirom .Net. Također je dostupan kao neovisno preuzimanje. |
Podrška za MVC značajke | WCF ne pruža nikakvu podršku za MVC značajke kao što su kontroleri, usmjeravanje, filter, rezultati dražbe itd. | ASP.NET Web API podržava MVC značajke kao što su usmjeravanje, kontroleri, rezultati, filtar, akcija itd. |
Podrška za kodiranje | Tekst, MTOM i binarni. | Zadana podrška za format kodiranja UTF-8. |
Podrška za | Podrška za HTTP, UDP i prilagođeni transportni protokol. | Podržava samo HTTP protokol |
Upotreba modela | Model programiranja koji se temelji na atribuciji korisnika. | Preslikava HTTP glagole u metode |
konfiguracija | Koristi web.config i atribute za konfiguriranje klase HttpConfiguration, ali ne na usluzi web.config. | Web API se može konfigurirati pomoću usluge web.config. |
RESTful usluge | Nudi podršku za RESTFUL uslugu, ali uz ograničenja. | Idealno za izgradnju ODMORNIH usluga. |
Odlučujući faktor za WCF u odnosu na Web API
Slijedi brzi popis za provjeru koji će vam pomoći da odredite hoćete li koristiti WCF ili Web API
scenario | WCF 4.5 | ASP.NET Web API |
---|---|---|
Zahtijeva podršku za scenarije kao što su redovi poruka, sigurnost poruka s kraja na kraj, dvostruka komunikacija, distribuirane transakcije itd. | odabrati | NEMOJTE odabrati |
Kada već imate postojeće WCF usluge koje rade i želite dodatno dodati HTTP podršku. | odabrati | NEMOJTE odabrati |
Jedna baza koda za pružanje podrške za SOAP i RESTful krajnje točke. | odabrati | NEMOJTE odabrati |
Želi stvoriti uslugu orijentiranu na resurse preko HTTP-a. | NEMOJTE odabrati | odabrati |
Vaš projekt je MVC aplikacija i želi neke funkcije preko HTTP-a. | NEMOJTE odabrati | odabrati |
Želite izgraditi samo HTTP / RESTful usluge | NEMOJTE odabrati | odabrati |