Newsgroup: it.comp.dotnet
Titolo: WebApi o WCF data services

Scusate, ma la confusione nella mia testa aumenta. Devi implementare un applicativo mobile che invia dati ad un servizio\web site quando è in presenza di rete. Adesso mi vengono i dubbi, qual'è la tecnologia che potrebbe fare al caso mio ?
Con tutte le varianti che nel tempo si sono stratificate di servizi WCF mi sono perso. Mi potete aiutare a fare chiarezza ?
 
Grazie


I WCF data services servono per creare servizi che aderiscano alle 
specifiche oData.
 
<digressione>
oData è uno standard creato da MS e rilasciato sotto la open promise 
che ora ha "vita propria" e sta evolvendo nelle specifiche.
È particolarmente indicato per servizi che devono pubblicare dati in 
una modalità CRUD e REST-like.
Dico "like" perché lo stile architetturale REST dovrebbe andare ben 
oltre la mera CRUD. Leonard Richardson ha creato un "maturity level" 
che va da zero a tre. La CRUD è a livello 2 mentre il meglio di REST si 
ottiene con il livello 3 che è Hypermedia.
</digressione>
 
Le WebApi sono librerie che permettono lo sviluppo di servizi in stile 
REST. Attenzione che usare WebApi non significa automaticamente 
produrre servizi REST. Il developer continua a fare la differenza a 
seconda di come usa le WebApi.
Le WebApi sono nate dal team di WCF ma quando erano ancora in beta 
hanno visto che molte delle scelte erano analoghe a quelle di Asp.net 
MVC. Perciò prima della RTM (un giorno prima della mia sessione dei 
Community Days 2012) hanno fatto un mega-refactoring spostando tutto 
dentro Asp.net MVC.
 
Se vieni a Webnet conference (
http://webnetconf.eu/
) e trovi ancora 
posto (credo ci sia una coda di prenotazione) io e Jef parleremo in due 
sessioni distinte di WebApi.
 
Per il tuo caso, ti consiglio di scegliere la tecnologia più comoda per 
il tuo device. Solitamente REST è più semplice per questi scopi.
Uno dei fattori primari per scegliere tra SOAP e REST solitamente è in 
funzione della varietà e numero dei client. SOAP ha un contratto rigido 
e facile da rompere (dal punto di vista del versioning). Mentre REST è 
più dinamico (specie se implementato bene con Hypermedia) e quindi si 
presta bene agli scenari con tanti client e magari anche eterogenei.
 
ciao
 
-- 
Raffaele Rialdi  
http://www.iamraf.net
 
Weblog: 
http://blogs.ugidotnet.org/raffaele
 
Microsoft MVP profile 
https://mvp.support.microsoft.com/profile/raffaele
 
UGIdotNET - 
http://www.ugidotnet.org/
 
 
 

Grazie Raf, questa cosa che dici su webApi é interessante cioé che nn basta per avere un buon servizio REST, mi puoi indicare qualche risorsa in merito ? Ammetto la mia ignoranza, OData nn l'ho seguito molto, ma in che scenari puó essere utile usarlo ? 
 
St.efano


Beh negli eventi che io e altri abbiamo tenuto, si è parlato molto (e 
continueremo a farlo) del discorso.
Se cerchi REST e Hypermedia troverai molte discussioni/articoli/blog in 
giro.
 
oData è molto utile per esporre dei feed di dati. L'anno scorso ho 
fatto una sessione a Milano ipotizzando che il futuro DataLayer potesse 
essere fondamentalmente fatto solo di un client oData e poco più. 
Niente più accesso al DB diretto, ma solo strati di servizi "generici" 
come oData oppure specializzati per scenari specifici.
Questo è un discorso piuttosto lungo e senza una demo risulta un po' 
difficile dimostrarti il valore della soluzione.
