Servizio WCF o API Web

Ho intenzione di lavorare su un progetto che coinvolge un numero di elementi:

  • Sito Web ASP.NET MVC
  • Applicazione console C #
  • App per iPhone

Per far sì che tutte queste applicazioni separate parlassero con il database, il mio pensiero immediato era di usare un servizio WCF.

Tuttavia, ora ho bisogno di aggiungere un’API al sito per consentire a terze parti di selezionare, inserire e aggiornare i record dalle proprie applicazioni.

Nella mia mente, creerei solo un endpoint di servizio RESTful separato sul mio servizio WCF, che verrebbe bloccato usando l’autenticazione e darebbe solo accesso a determinati metodi.

Tuttavia, ho letto oggi sulla funzione API Web in MVC 4 che è destinata a essere l’ultima novità per le API RESTful?

Dovrei andare oltre la linea di utilizzo dell’API Web? o perché le altre mie applicazioni necessitano di un servizio web, dovrei restare con un servizio WCF?

Se si intende eseguire lo sviluppo RESTful, si vorrà sicuramente utilizzare ASP.Net Web Api (che in origine era chiamato WCF Web Api e creato con l’objective di rendere REST un cittadino di prima class in .NET .

Un’altra cosa da considerare è che il kit di avviamento WCF REST non è più supportato .

Nota che l’uso di Web Api non significa che devi utilizzare ASP.Net MVC o IIS anche se può essere ospitato autonomamente .

Per le operazioni di gestione che non sono CRUD in natura, consigliamo di utilizzare Google “REST non CRUD”. Ho trovato questo blog post RESTful URL per operazioni non CRUD (e in particolare i commenti interessanti). Se si decide che è necessario avere chiamate RPC, è ansible che tali operazioni debbano essere eseguite con WCF. Ciò detto dal momento che il WCF REST viene ucciso non sono sicuro quale sia la soluzione migliore. Avere entrambi è probabilmente la migliore risposta, ma allo stesso tempo non è necessariamente una buona risposta.

Un’altra alternativa potrebbe essere un servizio OData WCF, ma non sono sicuro che ciò ottenga alcun supporto da un iPhone.

Un ultimo punto da fare (che può essere cancellato in futuro in quanto è sensibile al fattore tempo)

Microsoft ha fornito una licenza Go Live con la versione beta, il che significa che è supportata da Microsoft e non si dovrebbero avere problemi con l’aggiornamento del file RTM.

Anche il Service Stack sembra un’opzione.

Demo, panoramica, esempi sono disponibili qui .

Non c’è una risposta giusta qui. Si può certamente fare abbastanza bene con un servizio RESTful WCF. O potresti usare ASP.NET MVC. Entrambi sono perfettamente validi, ed entrambi hanno punti di forza e di debolezza.

In definitiva, ti suggerirei di andare con qualsiasi cosa ti ritenga più manutenibile.

Vorrei notare che MVC 4 è in versione beta, quindi fai attenzione ai bug e non andare in diretta fino a quando non è fuori beta.

Poiché si sta per creare un sito Web ASP.NET MVC, sarebbe abbastanza comodo utilizzare l’API Web ASP.NET anche perché il modello di programmazione è molto simile e tali soluzioni sono più o meno integrate l’una con l’altra.

Sarei in grado di esaminare quale sia il miglior supporto su tutte le piattaforms che utilizzerai, temo che l’app per iPhone possa finire per guidare le tue scelte.

Se fosse puro .net, tenderei comunque ad appoggiare un servizio SOAP a toweards – non è considerato cool in questi giorni, ma generalmente farà ciò che ti serve sulla maggior parte delle piattaforms senza dover rollare soluzioni personalizzate.

MODIFICARE

API Web ASP.NET significa che .NET ora fornisce un ottimo framework per lo sviluppo di un’API riposante, rivedo la mia risposta per dire che ora mi proverò a questo: i progressi sono grandiosi!

Ho la stessa domanda.

Nel sito MSDN, http://msdn.microsoft.com/en-us/library/jj823172(v=vs.110).aspx

Ho trovato un tutorial video in cui dicevano che per il consumo di macchine come iPhone o client di applicazioni Web di JSON o xml, l’opzione web API è consigliata. È circa l’ultima parte del video.

Mentre per la comunicazione macchina-macchina più complessa è preferibile utilizzare WCF.

http://channel9.msdn.com/Series/Building-Web-Apps-with-ASP-NET-Jump-Start/Building-Web-Apps-with-ASPNET-Jump-Start-04-Building-a-Service- layer-con-ASPNET-Web-API

Ecco uno screenshot dalla loro presentazione.

inserisci la descrizione dell'immagine qui