Qual è la differenza tra il servizio WCF e un semplice servizio Web in fase di sviluppo utilizzando .NET Framework?

0

Le mie domande sono:

  1. Qual è la differenza tra il servizio WCF e un semplice servizio Web in .NET Framework?

  2. Che cosa può fare un servizio WCF su un servizio Web .NET? In altre parole, quali sono i limiti dei servizi Web .NET che sono stati superati nei servizi WCF?

Capisco che WCF sia basato su REST e che i servizi Web .NET siano basati su SOAP. Ma ho bisogno di sapere di più. In che modo uno sviluppatore deciderà se progettare un servizio Web o un servizio WCF?

    
posta Steve Johnson 24.12.2010 - 15:57
fonte

4 risposte

2

Ecco la differenza di base tra i due -

1 formato / estensione file:

i) Servizio ASP.net - '.asmx'

ii) Servizio WCF - '.svc'

2 Hosting:

i) Servizio ASP.net - Può essere ospitato in IIS anche può essere ospitato in un servizio di Windows.

ii) Servizio WCF - Molto flessibile, può essere ospitato in IIS, Windows Activation Services (WAS), Managed Windows Services e Supporta anche Self-Hosting.

3 protocolli di trasporto / binding:

i) Servizio ASP.net - Supporta HTTP e amp; Protocolli TCP e associazione personalizzata.

ii) Servizio WCF: supporta HTTP, WS-HTTP, TCP, Personalizzato, Named Pipes, MSMQ e amp; P2P (Point to Point) ecc.

4 Data Transformation:

i) Servizio ASP.net - serializzatore XML per la trasformazione dei dati.

ii) Servizio WCF - DataContractSerializer per la trasformazione dei dati.

5 Serialization NameSpace:

i) Servizio ASP.net - System.XML.Serialization

ii) Servizio WCF - System.RunTime.Serialization

6 operazioni supportate:

i) Servizio ASP.net - solo tipo One-Way e Request-Response.

ii) Servizio WCF: include una sola risposta, richiesta-risposta e duplex.

7 Encoding:

i) Servizio ASP.net - Utilizza i seguenti meccanismi di codifica - XML1.0, MTOM (meccanismo di ottimizzazione della trasmissione dei messaggi), DIME (incapsulamento diretto dei messaggi Internet)

ii) Servizio WCF - Utilizza i seguenti meccanismi di codifica - XML1.0, MTOM, binario

Leggi altre differenze - link

    
risposta data 22.10.2013 - 05:11
fonte
2

La principale differenza è che cose come l'associazione sono configurabili tramite i file di configurazione - puoi cambiare da http a tcp o qualsiasi altra cosa semplicemente modificando la tua configurazione. Lo stesso con molti parametri (dimensioni del buffer ecc.)

Non c'è assolutamente alcun motivo per creare servizi web semplici se hai la possibilità di usare WCF.

    
risposta data 24.12.2010 - 16:25
fonte
2

What a WCF Service can do which a .Net Web Service cant?

Una delle cose che abbiamo imparato (nel modo più duro) è che WCF ti consente di modificare i messaggi prima che vengano trasmessi o dopo che sono stati ricevuti. Abbiamo riscontrato un problema in cui nulla di ciò che eravamo in grado di fare per deserializzare i messaggi di errore stava funzionando, quindi abbiamo dovuto creare un gestore di messaggi per ispezionare i messaggi in arrivo per i guasti e quindi lanciare l'eccezione pertinente. Esempio .

    
risposta data 24.12.2010 - 18:06
fonte
0

Sia i servizi web che i servizi wcf hanno lo stesso scopo: consentono di chiamare una funzione di servizio su un'altra macchina remota in modo simile a una funzione locale.

Un soap-webservice fa questo usando http-stern-transportprotocol e formattando il messaggio sulla macchina remota e la risposta dalla macchina remota nel formato xml-soap.

questo non è l'unico modo per effettuare chiamate a procedure remote.

Nel mondo java c'è rmi (invocazione di metodi remoti), in dotnet c'è "remoting di punti"

wcf è un'astrazione che consente chiamate remote-procedure con diversi formati tra questi:

  • sapone-webservice
  • resto-webservice
  • remoting netto dei punti

scrivi il wcf-service o il codice cliente una volta e tramite il file di configurazione decidi quale meccanismo di remoting sarà usato.

Un semplice webservice soap di dotnet è molto più facile da scrivere e richiede un server di informazioni Internet Microsoft come host.

Un servizio WCF (o WCF-Client) è più complicato da comprendere / imparare ma molto più flessibile se si desidera cambiare il provider remoto. Un WCF può diventare un servizio SOAP self-service, quindi non è necessario un msie.

    
risposta data 08.05.2013 - 11:03
fonte

Leggi altre domande sui tag