Differenza tra WCF e API Web
Cos'รจ il WCF?
WCF sta per Windows Communication Foundation. Viene utilizzato per creare applicazioni distribuite e interoperabili. WCF รจ una piattaforma efficace per lo sviluppo di applicazioni orientate ai servizi. Consente agli sviluppatori di creare soluzioni di sviluppo sicure, affidabili e di alto profilo che possono essere integrate su piattaforme e interagire con gli investimenti esistenti.
Cos'รจ l'API Web?
L'API Web ASP.NET รจ un framework che consente di creare servizi HTTP per browser e dispositivi mobili. ร una piattaforma ideale per lo sviluppo Applicazioni RESTful sull'ASP .NET Framework.
ASP.NET Web API รจ un framework estensibile per la creazione di servizi basati su HTTP a cui รจ possibile accedere in diverse applicazioni su diverse piattaforme, come Web, Windows, dispositivi mobili, ecc.
DIFFERENZA CHIAVE
- WCF offre la modalitร richiesta-risposta, unidirezionale o duplex, mentre Web API offre per impostazione predefinita solo la modalitร richiesta-risposta.
- WCF viene utilizzato per lo sviluppo di servizi basati su SOAP mentre l'API Web viene utilizzata sia per i servizi basati su SOAP che per quelli RESTful.
- WCF non offre alcun supporto per le funzionalitร MVC mentre l'API Web supporta le funzionalitร MVC.
- WCF supporta HTTP, UDP e il protocollo di trasporto personalizzato mentre l'API Web supporta solo il protocollo HTTP.
- WCF offre supporto per testo, MTOM e codifica binaria mentre l'API Web supporta il formato di codifica UTF-8.
- WCF supporta code di messaggi, sicurezza dei messaggi, comunicazione duplex e transazioni, mentre Web API non lo supporta.
- WCF sta per Windows Communication Foundation mentre API sta per Application Program Interface.
Perchรฉ utilizzare WCF?

Ecco i vantaggi/vantaggi dell'utilizzo di WCF:
- WCF รจ un'opzione ideale se hai intenzione di utilizzarlo .NET Framework 3.5.
- WCF supporta piรน protocolli come HTTP, TCP, Named pipe.
- Il servizio WCF รจ utile se si desidera creare un servizio con standard come la sicurezza della messaggistica delle transazioni e la sicurezza dei messaggi affidabili.
- Con WCF รจ possibile utilizzare i modelli di scambio di messaggi Request-Reply, One Way e Duplex.
Perchรฉ utilizzare l'API Web?
Ecco i vantaggi/vantaggi derivanti dall'utilizzo dell'API Web:
- L'API Web fornisce supporto per azioni CRUD basate su convenzioni poichรฉ funziona con i verbi HTTP (GET, PUT, POST e DELETE)
- ร facile definire, esporre e consumare in modo REST.
- L'API Web ASP.Net ti consente di mostrare i tuoi dati e servizi su vari dispositivi.
- L'API Web รจ open source, quindi รจ un'opzione ideale per creare servizi RESTful sulla piattaforma .NET.
- Consente lo sviluppo scalabile e disaccoppiato di un servizio Web che puรฒ essere condiviso e utilizzato da altri sviluppatori per accedere ai servizi Web.
- ร anche utile creare servizi HTTP semplici, non basati su SOAP.
Caratteristiche della WCF
- Trasporti altamente configurabili
- Migliori opzioni per la serializzazione
- Ben integrato con IIS
- Facile per l'hosting autonomo
- Metadati molto ricchi
- Modello complesso per la pubblicazione
- Contratti di dati ricchi
Caratteristiche dell'API Web
- Strettamente accoppiato a HTTP
- Facile da testare
- Offre supporto per la negoziazione dei contenuti
- Consente la formattazione aperta
- Nessuna dipendenza da una piattaforma
- Solido orientamento alle risorse
- Esperienza di livello 2 con il nascente supporto ipermediale
WCF e servizio Web
| Parametro | WCF | API Web |
|---|---|---|
| Modello di scambio di messaggi | Richiedi risposta, unidirezionale o duplex. | Per impostazione predefinita, solo richiesta-risposta. Tuttavia, รจ possibile supportare modelli di messaggi aggiuntivi con l'integrazione dei socket web. |
| Hosting | Servizi di hosting IIS, Self-hosting e attivazione lavori. | Hosting autonomo e hosting IIS. |
| Open Source | Non รจ un software open source. | Viene fornito con.Net framework. ร disponibile anche come download indipendente. |
| Supporto per le funzionalitร MVC | WCF non fornisce alcun supporto per le funzionalitร MVC come controller, routing, filtro, risultati dell'asta, ecc. | L'API Web ASP.NET supporta funzionalitร MVC come routing, controller, risultati, filtri, azioni e cosรฌ via. |
| Supporto per la codifica | Testo, MTOM e binario. | Supporto predefinito per il formato di codifica UTF-8. |
| Supporto per | Supporto per HTTP, UDP e protocollo di trasporto personalizzato. | Supporta solo il protocollo HTTP |
| Utilizzo del modello | Modello di programmazione basato sugli attributi dell'utente. | Associa i verbi HTTP ai metodi |
| Configurazione | Utilizza web.config e gli attributi per configurare una classe HttpConfiguration ma non sul servizio web.config. | L'API Web puรฒ essere configurata utilizzando il servizio web.config. |
| Servizi RESTful | Offre supporti per il servizio RESTFUL ma con limitazioni. | Ideale per costruire servizi RESTFUL. |
Il fattore decisivo per WCF e API Web
Di seguito รจ riportato un rapido elenco di controllo per aiutare a determinare se utilizzare WCF o Web API
| Scenario | WCF 4.5 | API Web ASP.NET |
|---|---|---|
| Richiede il supporto per scenari quali code di messaggi, sicurezza dei messaggi end-to-end, comunicazione duplex, transazioni distribuite, ecc. | Seleziona | NON selezionare |
| Quando disponi giร di servizi WCF funzionanti e desideri aggiungere ulteriormente il supporto HTTP. | Seleziona | NON selezionare |
| Una base di codice per fornire supporto sia per gli endpoint SOAP che per quelli RESTful. | Seleziona | NON selezionare |
| Vuole creare un servizio orientato alle risorse su HTTP. | NON selezionare | Seleziona |
| Il tuo progetto รจ un'applicazione MVC e richiede alcune funzionalitร su HTTP. | NON selezionare | Seleziona |
| Vuoi creare solo servizi HTTP/RESTful | NON selezionare | Seleziona |

