Differenza tra servizi Web e WCF

Servizi Web vs WCF

Entrambi i servizi Web e WCF sono tecnologie Web sviluppate da Microsoft. I servizi Web sono stati introdotti nelle versioni precedenti di .NET, mentre WCF è stato aggiunto a .NET Framework nelle versioni successive. I servizi Web vengono utilizzati per creare applicazioni che possono inviare / ricevere messaggi utilizzando SOAP su HTTP. WCF è per la creazione di applicazioni distribuite per lo scambio di messaggi utilizzando SOAP su qualsiasi protocollo di trasporto.

Servizi web

Un servizio Web (noto anche come tecnologia ASMX in .NET) è un metodo di comunicazione attraverso la rete. Secondo W3C, un servizio Web è un sistema dedicato a supportare transazioni machine-to-machine su una rete. Si tratta di un'API Web descritta in WSDL (linguaggio di descrizione dei servizi Web) e i servizi Web sono generalmente autosufficienti e auto-descrittivi. I servizi Web possono essere rilevati utilizzando il protocollo UDDI (Universal Description, Discovery and Integration). Scambiando messaggi SOAP (Simple Object Access Protocol) tipicamente su HTTP (con XML), altri sistemi possono interagire con i servizi Web. I servizi Web vengono utilizzati in vari modi, come RPC (Remote Procedure Calls), SOA (Service Oriented Architecture) e REST (Representational State Transfer). Esistono due metodologie di progettazione automatizzata per lo sviluppo di servizi Web. L'approccio dal basso verso l'alto riguarda la prima creazione delle classi e l'utilizzo degli strumenti di generazione WSDL per comporre queste classi come servizi Web. L'approccio top-down si occupa della definizione delle specifiche WSDL e quindi degli strumenti di generazione del codice per generare le classi corrispondenti. I servizi Web hanno due principali utilizzi. Possono essere utilizzati come componenti dell'applicazione riutilizzabili e / o per connettere applicazioni Web in esecuzione su piattaforme diverse.

WCF

WCF (Windows Communication Foundation) è un'API .NET (Application Programming Interface), che fornisce un modello di programmazione unificato per lo sviluppo di applicazioni connesse e orientate ai servizi. Più specificamente, viene utilizzato per lo sviluppo e la distribuzione di applicazioni distribuite con SOA. La SOA si occupa di computing distribuito in cui i consumatori consumano servizi. Più consumatori possono consumare un singolo servizio e viceversa. WCF supporta standard di servizi Web avanzati come WS-Addressing, WS-ReliableMessaging, WS-Security e RSS syndication (disponibile dopo .NET 4.0). Un client WCF utilizza un punto finale per connettersi a un servizio WCF. Ogni servizio può avere più endpoint che espongono il suo contratto. Il termine ABC viene utilizzato per fare riferimento all'indirizzo / binding / contratto del servizio WCF. La comunicazione tra clienti e servizi è condotta tramite buste SOAP.

Qual è la differenza tra servizi Web e WCF?

Esistono alcune differenze chiave tra servizi Web e servizi WCF. I servizi Web vengono utilizzati per creare applicazioni che possono inviare / ricevere messaggi utilizzando SOPA su HTTP. Tuttavia, WCF consente la creazione di applicazioni distribuite per lo scambio di messaggi utilizzando SOAP e qualsiasi protocollo di trasporto come HTTP, TCP, named pipe e Microsoft Message Queuing (MSMQ), ecc. Inoltre, WCF può essere esteso per funzionare con qualsiasi altro protocollo di trasporto. Sebbene i servizi Web siano molto semplici e facili da implementare, WCF è architettonicamente più robusto del servizio Web. I servizi Web possono essere ospitati solo in IIS e la sicurezza è limitata. Ma WCF può essere ospitato in IIS, server self-host con applicazioni console o servizi Win NT o qualsiasi altro server. Inoltre, a differenza dei servizi Web, WCF supporta le comunicazioni binario .NET - .NET, le transazioni distribuite, le specifiche WS- *, la messaggistica in coda e le comunicazioni restful.