Diferența dintre WCF și Web API
Ce este WCF?
WCF înseamnă Windows Comunicarea Foundation. Este folosit pentru a crea aplicații distribuite și interoperabile. WCF este o platformă eficientă pentru dezvoltarea aplicațiilor orientate spre servicii. Permite dezvoltatorilor să creeze soluții de dezvoltare sigure, fiabile și de mare profil, care pot fi integrate pe platforme și pot interopera cu investițiile existente.
Ce este Web API?
ASP.NET Web API este un cadru care vă permite să construiți servicii HTTP pentru browsere și dispozitive mobile. Este o platformă ideală pentru dezvoltare Aplicații RESTful pe ASP .NET Framework.
ASP.NET Web API este un cadru extensibil pentru construirea de servicii bazate pe HTTP care pot fi accesate în diferite aplicații pe diferite platforme, cum ar fi web, ferestre, dispozitive mobile etc.
DIFERENȚA CHEIE
- WCF oferă cerere-răspuns, unidirecțional sau duplex, în timp ce API-ul Web este în mod implicit numai cerere-răspuns.
- WCF este utilizat pentru dezvoltarea serviciilor bazate pe SOAP, în timp ce API-ul Web este utilizat atât pentru serviciile bazate pe SOAP, cât și pentru cele RESTful.
- WCF nu oferă suport pentru funcțiile MVC, în timp ce API-ul Web acceptă funcțiile MVC.
- WCF acceptă HTTP, UDP și protocolul de transport personalizat, în timp ce Web API acceptă numai protocolul HTTP.
- WCF oferă suport pentru text, MTOM și codificare binară, în timp ce API-ul Web acceptă formatul de codare UTF-8.
- WCF acceptă cozile de mesaje, securitatea mesajelor, comunicarea duplex, tranzacția, în timp ce Web API nu acceptă.
- WCF înseamnă Windows Comunicarea Foundation în timp ce API înseamnă Application Program Interface.
De ce să folosiți WCF?

Iată avantajele/beneficiile utilizării WCF:
- WCF este o opțiune ideală dacă intenționați să o utilizați .NET Framework 3.5.
- WCF acceptă mai multe protocoale, cum ar fi HTTP, TCP, Named pipe.
- Serviciul WCF este util dacă doriți să construiți un serviciu cu standarde precum securitatea mesajelor tranzacțiilor și securitatea mesajelor de încredere.
- Puteți utiliza modele de schimb de mesaje Request-Reply, One Way și Duplex cu WCF.
De ce ai folosit Web API?
Iată avantajele/beneficiile utilizării API-ului web:
- Web API oferă suport pentru acțiuni CRUD bazate pe convenții, deoarece funcționează cu verbe HTTP ( GET, PUT, POST și DELETE)
- Este ușor de definit, expus și consumat într-un mod REST-ful.
- ASP.Net Web API vă permite să vă prezentați datele și serviciile pe diferite dispozitive.
- Web API este open source, deci este o opțiune ideală pentru crearea de servicii RESTful pe platforma .NET.
- Vă permite dezvoltarea scalabilă, decuplată a unui serviciu web, care poate fi partajat și utilizat de alți dezvoltatori pentru a accesa serviciile web.
- De asemenea, este util să construiți servicii HTTP simple, care nu sunt bazate pe SOAP.
Caracteristicile WCF
- Transporturi extrem de configurabile
- Opțiuni mai bune pentru serializare
- Bine integrat cu IIS
- Ușor pentru auto-găzduire
- Metadate foarte bogate
- Model complex de publicare
- Contracte bogate de date
Caracteristicile Web API
- Strâns cuplat la HTTP
- Ușor de testat
- Oferă suport pentru negocierea conținutului
- Permite formatarea deschisă
- Fără încredere pe o platformă
- Orientare solidă către resurse
- Experiență de nivel 2 cu suport hipermedia în curs de dezvoltare
WCF vs Web Service
| Parametru | WCF | API Web |
|---|---|---|
| Model de schimb de mesaje | Solicitați răspuns, unidirecțional sau duplex. | În mod implicit, numai cerere-răspuns. Cu toate acestea, modelul de mesaj suplimentar poate fi acceptat cu integrarea socket-urilor web. |
| hosting | Servicii de găzduire IIS, auto-găzduire și activare a lucrărilor. | Găzduire automată și găzduire IIS. |
| Open Source | Nu este un software open source. | Este livrat cu framework.Net. Este disponibil și ca descărcare independentă. |
| Suport pentru funcțiile MVC | WCF nu oferă suport pentru caracteristicile MVC, cum ar fi controlere, rutare, filtru, rezultate licitații etc. | ASP.NET Web API acceptă funcții MVC precum rutare, controlere, rezultate, filtru, acțiune etc. |
| Suport pentru codificare | Text, MTOM și Binary. | Suport implicit pentru formatul de codare UTF-8. |
| Suport pentru | Suport pentru HTTP, UDP și protocol de transport personalizat. | Acceptă numai protocolul HTTP |
| Utilizarea modelului | Model de programare bazat pe atribuții de utilizator. | Mapează verbele HTTP la metode |
| Configuraţie | Utilizează web.config și atribute pentru a configura o clasă HttpConfiguration, dar nu în serviciul web.config. | Web API poate fi configurat folosind serviciul web.config. |
| Servicii RESTful | Oferă suporturi pentru serviciul RESTFUL, dar cu limitări. | Ideal pentru construirea de servicii RESTFUL. |
Factorul decisiv pentru WCF vs. Web API
Mai jos este o listă de verificare rapidă pentru a vă ajuta să determinați dacă să utilizați WCF sau Web API
| Scenariu | WCF 4.5 | ASP.NET Web API |
|---|---|---|
| Necesită suport pentru scenarii precum cozile de mesaje, securitatea mesajelor de la capăt la capăt, comunicarea duplex, tranzacțiile distribuite etc. | Selectați | NU Selectați |
| Când aveți deja servicii WCF existente și doriți să adăugați suport HTTP suplimentar. | Selectați | NU Selectați |
| O bază de cod pentru a oferi suport atât punctelor finale SOAP, cât și RESTful. | Selectați | NU Selectați |
| Dorește să creeze un serviciu orientat spre resurse prin HTTP. | NU Selectați | Selectați |
| Proiectul dvs. este o aplicație MVC și vrea unele funcționalități prin HTTP. | NU Selectați | Selectați |
| Doriți să construiți numai servicii HTTP / RESTful | NU Selectați | Selectați |

