Forskellen mellem WCF og Web API
Hvad er WCF?
WCF stรฅr for Windows Kommunikation Foundation. Det bruges til at skabe en distribueret og interoperabel applikation. WCF er en effektiv platform til udvikling af serviceorienterede applikationer. Det giver udviklere mulighed for at skabe sikre, pรฅlidelige og hรธjprofilerede udviklingslรธsninger, som kan integreres pรฅ tvรฆrs af platforme og interoperere med eksisterende investeringer.
Hvad er Web API?
ASP.NET Web API er en ramme, som giver dig mulighed for at bygge HTTP-tjenester til browsere og mobile enheder. Det er en ideel platform til udvikling RESTful applikationer pรฅ ASP .NET Framework.
ASP.NET Web API er en udvidelsesbar ramme til opbygning af HTTP-baserede tjenester, der kan tilgรฅs i forskellige applikationer pรฅ forskellige platforme sรฅsom web, windows, mobile enheder osv.
Nรธgleforskel
- WCF tilbyder anmodning-svar, en-vejs eller duplex, mens Web API som standard kun er anmodning-svar.
- WCF bruges til at udvikle SOAP-baserede tjenester, hvorimod Web API bruges til bรฅde SOAP-baserede og RESTful-tjenester.
- WCF tilbyder ingen understรธttelse af MVC-funktioner, hvorimod Web API understรธtter MVC-funktioner.
- WCF understรธtter HTTP, UDP og brugerdefineret transportprotokol, hvorimod Web API kun understรธtter HTTP-protokol.
- WCF tilbyder understรธttelse af tekst, MTOM og binรฆr kodning, mens Web API understรธtter UTF-8-kodningsformatet.
- WCF understรธtter meddelelseskรธer, meddelelsessikkerhed, duplekskommunikation, transaktion, hvorimod Web API ikke understรธtter.
- WCF stรฅr for Windows Kommunikation Foundation hvorimod API stรฅr for Application Program Interface.
Hvorfor bruge WCF?

Her er fordele/fordele ved at bruge WCF:
- WCF er en ideel mulighed, hvis du planlรฆgger at bruge .NET Framework 3.5.
- WCF understรธtter flere protokoller sรฅsom HTTP, TCP, Named pipe.
- WCF-tjenesten er nyttig, hvis du vil bygge service med standarder som Transactions Messaging-sikkerhed og Reliable Message Security.
- Du kan bruge Request-Reply, One Way og Duplex-meddelelsesudvekslingsmรธnstre med WCF.
Hvorfor brugte Web API?
Her er fordele/fordele ved at bruge web API:
- Web API understรธtter konventionsbaserede CRUD-handlinger, da det fungerer med HTTP-verber (GET, PUT, POST og DELETE)
- Det er nemt at definere, eksponere og forbruge pรฅ en REST-fuld mรฅde.
- ASP.Net Web API giver dig mulighed for at fremvise dine data og tjenester til forskellige enheder.
- Web API er open source, sรฅ det er en ideel mulighed for at skabe RESTful tjenester over .NET platformen.
- Giver dig mulighed for skalerbar, afkoblet udvikling af en webtjeneste, som kan deles og bruges af andre udviklere til at fรฅ adgang til webtjenester.
- Det er ogsรฅ nyttigt at bygge enkle, ikke-SOAP-baserede HTTP-tjenester.
Karakteristika for WCF
- Meget konfigurerbare transporter
- Bedre muligheder for serialisering
- Velintegreret med IIS
- Nem til selv-hosting
- Meget rige metadata
- Kompleks model til udgivelse
- Rige datakontrakter
Karakteristika for Web API
- Tรฆt koblet til HTTP
- Let at teste
- Tilbyder support til indholdsforhandling
- Tillader รฅben formatering
- Ingen afhรฆngighed af en platform
- Solid ressourceorientering
- Niveau 2 erfaring med spirende hypermediestรธtte
WCF vs webservice
| Parameter | WCF | Web API |
|---|---|---|
| Beskedudvekslingsmรธnster | Anmod om svar, envejs eller dupleks. | Som standard kun anmodning-svar. Yderligere beskedmรธnster kan dog understรธttes med web-sockets-integration. |
| Hosting | IIS hosting, Self-hosting & Works aktiveringstjenester. | Self-hosting & IIS-hosting. |
| Open Source | Det er ikke open source-software. | Den leveres med.Net framework. Den er ogsรฅ tilgรฆngelig som en uafhรฆngig download. |
| Understรธttelse af MVC-funktioner | WCF yder ingen support til MVC-funktioner som controllere, routing, filter, auktionsresultater osv. | ASP.NET Web API understรธtter MVC-funktioner som routing, controllere, resultater, filter, handling osv. |
| Understรธttelse af kodning | Tekst, MTOM og binรฆr. | Standardunderstรธttelse af UTF-8-kodningsformat. |
| Stรธtte til | Understรธttelse af HTTP, UDP og tilpasset transportprotokol. | Understรธtter kun HTTP-protokol |
| Brug af model | Brugertilskrevet baseret programmeringsmodel. | Maps HTTP verber til metoder |
| Konfiguration | Bruger web.config og attributter til at konfigurere en HttpConfiguration-klasse, men ikke pรฅ web.config-tjenesten. | Web API kan konfigureres ved hjรฆlp af web.config service. |
| RESTful tjenester | Det tilbyder understรธttelse af RESTFUL service, men med begrรฆnsninger. | Ideel til at bygge RESTFUL services. |
Den afgรธrende faktor for WCF vs. Web API
Fรธlgende er en hurtig tjekliste for at hjรฆlpe med at afgรธre, om der skal bruges WCF eller Web API
| Scenario | WCF 4.5 | ASP.NET Web API |
|---|---|---|
| Krรฆver understรธttelse af scenarier som meddelelseskรธer, ende til ende meddelelsessikkerhed, duplekskommunikation, distribuerede transaktioner osv. | Type | Vรฆlg IKKE |
| Nรฅr du allerede har eksisterende fungerende WCF-tjenester og รธnsker at tilfรธje HTTP-understรธttelse yderligere. | Type | Vรฆlg IKKE |
| รn kodebase til at understรธtte bรฅde SOAP- og RESTful-endepunkter. | Type | Vรฆlg IKKE |
| รnsker at skabe en ressourceorienteret service over HTTP. | Vรฆlg IKKE | Type |
| Dit projekt er en MVC-applikation og รธnsker noget funktionalitet over HTTP. | Vรฆlg IKKE | Type |
| Du รธnsker kun at bygge en HTTP / RESTful-tjenester | Vรฆlg IKKE | Type |

