2010-06-10 21 views

risposta

7

WCF è un'infrastruttura di comunicazione per servizi in generale. I servizi RIA WCF generano automaticamente oggetti proxy client e server per facilitare lo sviluppo delle applicazioni e dipendono dal fatto che WCF esegua la comunicazione effettiva. I servizi dati ADO.Net sono stati rinominati in WCF Data Services e forniscono servizi OData su WCF.

1

Questo è di Collin Blair

http://forums.silverlight.net/t/103015.aspx/1

È questione è analogo a chiedere qual è la differenza tra un semplice hamburger e un hambuger, motivo per cui è difficile ottenere una risposta diretta. Ottenere una buona risposta è anche ostacolato dal fatto che i Servizi RIA non saranno "funzionalità complete" almeno fino a PDC, quindi qualsiasi risposta che otterrete sarà basata su aspettative e speculazioni. Infine, RIA Services è plurale per un motivo, ci sono più classi nei servizi RIA che fanno cose diverse. Ecco la mia risposta in base alle tabelle di marcia e alla mia comprensione degli obiettivi del team dei servizi di RIA.

RIA Services è una libreria di componenti client e server che si collegano ai servizi dati ADO.NET. Quando viene utilizzata la serie completa di Servizi RIA, la differenza tra Servizi RIA e WCF normale è la seguente:

Gli oggetti dati lato client vengono generati utilizzando la riflessione in fase di compilazione in base agli oggetti lato server effettivi anziché a un contratto di servizio. Ciò consente ai servizi di RIA di fornire un modello di oggetti lato client molto più ricco includendo tutte le regole di business e le relazioni tra gli oggetti. Tuttavia, ciò significa che i servizi RIA offrono una certa flessibilità rispetto al WCF normale. Ad esempio, il serializzatore di Servizi RIA al momento non supporta alcuni tipi di dati che WCF sarebbe in grado di gestire. I servizi RIA, come ADO.NET Data Services, supportano la serializzazione delle query LINQ tra il client e il server. Ciò significa che il client può creare la query LINQ e farlo funzionare sul lato server. I servizi RIA, a differenza dei normali servizi dati ADO.NET, non generano automaticamente CRUD in fase di runtime. Per le persone che hanno familiarità con SQL Server, descrivo ADO.NET Data Services come supporto di trigger regolari (ovvero interceptor di query) mentre i Servizi RIA richiedono trigger INSTEAD OF.

1

La seguente risposta non è da me, ma risponde comunque a una parte della domanda che non ha ricevuto risposta.

I copia-incollato questa risposta da qui https://social.msdn.microsoft.com/Forums/en-US/687426d9-709f-4e73-8c4c-dd3630f006e7/wcf-data-service-or-wcf-service?forum=adodotnetdataservices

WCF servizi sono funzionamento centric - la cosa principale che si fa con questi è definire operazioni (funzioni). I dati arrivano come una cosa secondaria in un modo . D'altra parte possono lavorare su molti diversi trasporti/protocolli . Hai la capacità di definire in modo preciso cosa può o non può fare il client . Il cliente non può davvero creare nuove query/operazioni , il server deve implementare tutte le esigenze del client .

I servizi dati WCF sono incentrati sui dati - la cosa principale che si fa con questi è definire un modello di dati da esporre.Le operazioni sui dati sono "predefinite" (Crea/Elimina/Aggiorna/Leggi). Supporta solo il protocollo HTTP e utilizza REST. Di solito permetti ai clienti di decidere cosa vogliono fare (in alcuni limiti). Una delle principali differenze rispetto al servizio WCF è che il client può inviare una query sul modello di dati (si pensi al materiale simile a SQL) che il cliente costruisce. Ciò significa che il server non ha bisogno di sapere esattamente di cosa ha bisogno il client anteriore, il client sarà in grado di dirlo in fase di esecuzione.

Vitek Karas [MSFT]