2012-04-27 22 views
16

Quali sono i pro e i contro dell'utilizzo di un servizio di riposo vs un servizio wcf?Rest vs Wcf pro e contro

Mi chiedo quale tipo utilizzare e mi interessava trovare una sorta di comparazione.

+0

intendevi il riposo contro il sapone? – MilkyWayJoe

+1

possibile duplicato di [REST e SOAP] (http://stackoverflow.com/questions/209905/rest-and-soap) –

+1

Per coloro che sono sbarcati su questa domanda nel 2014: http: //www.dotnet-tricks. com/Tutorial/webapi/JI2X050413-Differenza-tra-WCF-e-Web-API-and-WCF-REST-e-Web-Service.html – Abhijeet

risposta

25

Il riposo è un modo di comunicare su Internet. È un processo molto basilare per il prelievo di indirizzi che servono come percorsi di metodo e restituiscono dati standard HTML (javascript, css, html ovviamente).

WCF è una libreria .net utilizzata per far dialogare due programmi utilizzando SOAP. Che consiste di due programmi molto familiari che scambiano informazioni sulla classe.

Vedere come Rest è un processo e WCF è una libreria di classi, una domanda migliore potrebbe essere "Rest vs Soap".

La linea di fondo è, se hai bisogno di due app per parlare, potresti voler usare WCF. Anche se le app non sono scritte entrambe in .net. Tuttavia se hai bisogno di informazioni a cui accedere tramite web tech (solitamente l'accesso javascript è fatto in questo modo) ti consigliamo di utilizzare Rest.

Solo una breve nota a parte, WCF fa riposare bene, quindi non si può sbagliare.

+2

Non mi piace il primo paragrafo qui. Puoi restituire qualsiasi risorsa arbitraria che potrebbe contenere codice js, html o css. –

9

Stai facendo una domanda su mele e arance. REST è un modello utilizzato nella creazione di servizi Web. Non sono un esperto, ma puoi trovare molti dettagli su Wikipedia. WCF è una tecnologia Microsoft per la creazione di servizi Web (principalmente utilizzando SOAP, anche se è così configurabile che è possibile eseguire anche REST su di esso - vedere ASP.Net WebAPI).

Pro per WCF:

  1. Molto configurabile - Se si può immaginare, WCF probabilmente può farlo.
  2. Semplice da usare se si sta attaccando allo stack Microsoft. Visual Studio fa il 90% del lavoro per te.

contro per WCF:

  1. Molto configurabile - può essere un po 'di dolore per farlo fare esattamente quello che vuoi a volte, soprattutto se siete nuovi a esso.
  2. Ci possono essere alcuni problemi di comunicazione tra diversi stack tecnologici. Ho sentito parlare di servizi Java che si arricciano e muoiono quando si punta a un servizio WCF. Per quanto ho sentito, questo è un problema con le librerie Java, non con WCF, ma chi lo sa per certo.

Questo è tutto ciò che ti viene in mente in questo momento, ma spero che dia una buona impressione a WCF.

+1

Anche prima di Web.AP.Ass.Net si poteva creare un servizio di riposo WCF con molto piccola configurazione ... cerca System.ServiceModel.Activation.WebServiceHostFactory. –

+0

L'API Web ASP.NET non utilizza più WCF in realtà. –

4

Se si è assolutamente certi che HTTP sia il protocollo che si desidera utilizzare e si desidera utilizzarlo come protocollo "Applicazione", non solo un protocollo "Trasporto", quindi qualcosa come l'API Web ASP.NET.

Se si crea un servizio per i server nel proprio datacenter per parlare tra loro, considerare seriamente WCF.

Se fare REST è una domanda completamente diversa. Questo servizio durerà per molti anni? Avrà molti clienti diversi? Alcuni di questi clienti saranno fuori dal tuo controllo? Se hai risposto sì, allora potrebbe valere la pena di indagare su quali benefici possono apportare i vincoli REST.