Verschil tussen WCF en Web-API
Wat is WCF?
WCF staat voor Windows Communicatie Foundation. Het wordt gebruikt om gedistribueerde en interoperabele toepassingen te creëren. WCF is een effectief platform voor het ontwikkelen van servicegerichte toepassingen. Het stelt ontwikkelaars in staat om veilige, betrouwbare en opvallende ontwikkelingsoplossingen te creëren die op meerdere platforms kunnen worden geïntegreerd en kunnen samenwerken met bestaande investeringen.
Wat is Web-API?
ASP.NET Web API is een raamwerk waarmee u HTTP-services voor browsers en mobiele apparaten kunt bouwen. Het is een ideaal platform om te ontwikkelen RESTful-applicaties op het ASP .NET Framework.
De ASP.NET Web API is een uitbreidbaar framework voor het bouwen van HTTP-gebaseerde services die toegankelijk zijn in verschillende applicaties op verschillende platforms, zoals het web, Windows, mobiele apparaten, etc.
BELANGRIJK VERSCHIL:
- WCF biedt aanvraag-antwoord, eenrichtingsverkeer of duplex, terwijl Web API standaard alleen aanvraag-antwoord ondersteunt.
- WCF wordt gebruikt voor het ontwikkelen van op SOAP gebaseerde services, terwijl Web API wordt gebruikt voor zowel SOAP-gebaseerde als RESTful-services.
- WCF biedt geen ondersteuning voor MVC-functies, terwijl Web API MVC-functies ondersteunt.
- WCF ondersteunt HTTP, UDP en aangepast transportprotocol, terwijl Web API alleen het HTTP-protocol ondersteunt.
- WCF biedt ondersteuning voor tekst-, MTOM- en binaire codering, terwijl Web API het UTF-8-coderingsformaat ondersteunt.
- WCF ondersteunt berichtenwachtrijen, berichtbeveiliging, duplexcommunicatie en transacties, terwijl Web API dit niet ondersteunt.
- WCF staat voor Windows Communicatie Foundation terwijl API staat voor Application Program Interface.
Waarom WCF gebruiken?
Hier zijn de voor- en voordelen van het gebruik van WCF:
- WCF is een ideale optie als u van plan bent dit te gebruiken .NET-framework 3.5.
- WCF ondersteunt meerdere protocollen zoals HTTP, TCP en Named pipe.
- De WCF-service is handig als u een service wilt bouwen met standaarden zoals Transactions Messaging-beveiliging en Reliable Message Security.
- U kunt Request-Reply-, One Way- en Duplex-berichtenuitwisselingspatronen gebruiken met WCF.
Waarom Web-API gebruiken?
Hier volgen de voor- en voordelen van het gebruik van de web-API:
- Web API biedt ondersteuning voor op conventies gebaseerde CRUD-acties, omdat het werkt met HTTP-werkwoorden (GET, PUT, POST en DELETE)
- Het is gemakkelijk te definiëren, bloot te leggen en op een RUST-volle manier te consumeren.
- Met ASP.Net Web API kunt u uw gegevens en services op verschillende apparaten presenteren.
- Web API is open source, dus het is een ideale optie voor het creëren van RESTful-services via het .NET-platform.
- Hiermee kunt u een schaalbare, ontkoppelde ontwikkeling van een webservice mogelijk maken die door andere ontwikkelaars kan worden gedeeld en gebruikt om toegang te krijgen tot webservices.
- Het is ook nuttig om eenvoudige, niet-SOAP-gebaseerde HTTP-services te bouwen.
Kenmerken van WCF
- Zeer configureerbare transporten
- Betere opties voor serialisatie
- Goed geïntegreerd met IIS
- Gemakkelijk voor zelfhosting
- Zeer rijke metadata
- Complex model voor publicatie
- Rijke datacontracten
Kenmerken van de web-API
- Nauw gekoppeld aan HTTP
- Makkelijk te testen
- Biedt ondersteuning bij inhoudelijke onderhandelingen
- Maakt opmaak met een open einde mogelijk
- Geen afhankelijkheid van een platform
- Solide resource-oriëntatie
- Ervaring op niveau 2 met opkomende hypermedia-ondersteuning
WCF versus webservice
Parameter | WCF | Web-API |
---|---|---|
Berichtuitwisselingspatroon | Vraag om antwoord, enkelzijdig of dubbelzijdig. | Standaard alleen verzoek-antwoord. Er kunnen echter extra berichtpatronen worden ondersteund met websockets-integratie. |
hosting | IIS-hosting, zelfhosting en werkactiveringsdiensten. | Zelfhosting en IIS-hosting. |
Open-Source | Het is geen open source-software. | Het wordt geleverd met het.Net-framework. Het is ook beschikbaar als onafhankelijke download. |
Ondersteuning voor MVC-functies | WCF biedt geen ondersteuning voor MVC-functies zoals controllers, routing, filter, veilingresultaten, enz. | ASP.NET Web API ondersteunt MVC-functies zoals routering, controllers, resultaten, filter, actie, enz. |
Ondersteuning voor codering | Tekst, MTOM en binair. | Standaardondersteuning voor UTF-8-coderingsformaat. |
Ondersteuning | Ondersteuning voor HTTP, UDP en aangepast transportprotocol. | Ondersteunt alleen het HTTP-protocol |
Gebruik van modellen | Op gebruikers toegeschreven gebaseerd programmeermodel. | Wijst HTTP-werkwoorden toe aan methoden |
Configuratie | Gebruikt web.config en attributen om een HttpConfiguration-klasse te configureren, maar niet voor de web.config-service. | Web-API kan worden geconfigureerd met behulp van de web.config-service. |
REST-services | Het biedt ondersteuning voor RESTFUL-service, maar met beperkingen. | Ideaal voor het bouwen van RESTFUL-diensten. |
De beslissende factor voor WCF versus web-API
Hieronder vindt u een korte checklist om te bepalen of u WCF of Web API moet gebruiken
Scenario | WCF 4.5 | ASP.NET Web-API |
---|---|---|
Vereist ondersteuning voor scenario's zoals berichtenwachtrijen, end-to-end berichtbeveiliging, duplexcommunicatie, gedistribueerde transacties, enz. | kies | NIET selecteren |
Wanneer u al bestaande werkende WCF-services heeft en bovendien HTTP-ondersteuning wilt toevoegen. | kies | NIET selecteren |
Eén codebasis die zowel SOAP- als RESTful-eindpunten ondersteunt. | kies | NIET selecteren |
Wil een resource-georiënteerde service creëren via HTTP. | NIET selecteren | kies |
Uw project is een MVC-toepassing en wil enige functionaliteit via HTTP. | NIET selecteren | kies |
U wilt alleen een HTTP/RESTful-service bouwen | NIET selecteren | kies |