Quale approccio / tecnologia / strumento .NET REST dovrei usare?


16

Sto implementando un servizio Web RESTful e diverse applicazioni client che sono principalmente in Silverlight. Sto trovando una serie di opzioni per lo sviluppo sia dell'API lato client che lato client, ma non sono sicuro di quale sia l'approccio migliore. Sono preoccupato per la stabilità e per una piattaforma che continuerà ad esistere tra qualche mese.

Abbiamo iniziato a utilizzare lo Starter Kit REST con .NET 3.5 ma ci siamo spostati nella nuova API Web WCF durante l'aggiornamento a .NET 4.0. Tutta la loro documentazione indica che l'API Web WCF è il sostituto di RSK. Tuttavia, l'API Web è disponibile solo in Anteprima 4 e non include il supporto per i client Silverlight o Windows Phone 7 (ancora).

L'API Web WCF si presenta come un wrapper in cima ai servizi WCF WebHttp forniti nella System.ServiceModel.Weblibreria, il che mi fa pensare che forse sarebbe più semplice andare con i contenuti integrati, ma l'API Web offre alcune belle funzionalità.

Sono specificamente legato nel tentativo di determinare il miglior corso per il lato client. Il mio requisito principale è che devo supportare la deserializzazione nei miei oggetti lato client in modo rapido e semplice. L'API Web offre una libreria client piacevole ma non ha una versione Silverlight.

Vorrei utilizzare l'ultimo approccio e il set di strumenti che viene attivamente sviluppato e supportato.

  1. Lo Starter Kit REST è davvero obsoleto?

  2. Qualcuno ha avuto successo nell'implementazione del toolkit dell'API Web WCF?

  3. C'è qualche merito nell'utilizzare una di queste due funzioni integrate nei servizi WebFttp di WCF presenti in System.ServiceModel.Web?

  4. Esiste un'unica soluzione che funziona per qualsiasi client (web, Silverlight, ecc.)?

Che suggerimenti hai?


Consiglio vivamente di utilizzare Servicestack
Mithir

Risposte:


6

Solo per seguire e chiudere il post, con l'anteprima 5, l'API Web WCF ha fatto un grande passo avanti, rendendo incredibilmente semplice la creazione di API REST. E mentre l'attuale base di codice su Codeplex non include un client Silverlight, esiste un kit di strumenti e sono stato in grado di rimuovere facilmente le parti Async-CTP dal codice open source e creare una versione SL.

Consiglio vivamente a chiunque sia interessato ad entrare in REST con WCF di consultare il framework: http://wcf.codeplex.com .

Cordiali saluti - Sarà parte integrante di .NET 4.5 ed è attualmente in fase di riscrittura per essere eseguito sullo stesso framework di base di ASP.NET MVC (anche se mi è stato detto che supporterà sicuramente l'hosting ancora).


1

Non ho mai usato lo Starter Kit REST ma mentre sto scrivendo un'API REST WCF .net 4.0 sono abbastanza sicuro che esista ancora :)

Consiglierei di dare un'occhiata a Odata. È incredibilmente veloce e semplice da codificare e gioca bene con Silverlight.


Una delle funzionalità offerte dal toolkit dell'API Web WCF è il supporto OData che funziona perfettamente. Ma non avere una versione di Silverlight non mi aiuta. Come gestite la deserializzazione sul lato client?
SonOfPirate,

L'ho fatto solo con WP7 Silverlight. Che ho appena aggiunto un riferimento al servizio e l'ho chiamato. Potresti semplicemente usare un client web e deserializzare tu stesso la risposta, se funziona meglio per te. Non è difficile
Tom Squires,

Non pensavo che usare webHttpBinding per abilitare REST con WCF supportasse un endpoint mex. Come si aggiunge un riferimento al servizio? Questa sarebbe la mia preferenza rispetto alla condivisione di una libreria comune contenente i miei contratti di dati.
SonOfPirate,

Sì, ho appena aggiunto un riferimento al servizio. Potrebbe essere necessario definire l'endpoint nel file di configurazione.
Tom Squires,

Ho appena imparato (nel modo più duro) che Silverlight non supporta WebHttpBinding. Quindi, anche se sono stato in grado di esporre un endpoint mex e Aggiungi riferimento al servizio, il servizio non avrebbe effettuato la chiamata perché non era in grado di risolvere l'endpoint.
SonOfPirate,

1

L'API Web WCF non fornisce alcuna informazione sui metadati da utilizzare per generare un proxy del servizio e, quindi, essere in grado di aggiungere un riferimento al servizio. È progettato per la facile produzione di servizi REST sotto l'ombrello WCF, proprio come si fa con il framework API Web ASP.NET MVC 4.

Pertanto non esiste supporto per WP7 o Silverlight, ma è quasi perfetto per il resto del Web.

Tuttavia, WCF Data Services sembra un candidato giusto, ti consente di creare servizi RESTful e di consumarli facilmente con Silverlight.


Usiamo l'API Web con il nostro client Silverlight per quasi un anno senza problemi.
SonOfPirate,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.