Cosa sono i servizi WCF RIA?


102

Odio il sito di MSDN per i servizi WCF RIA. Non dice cosa sia, dice solo cosa fa. Dice cosa può ottenere ma non dice perché ne ho bisogno.

Per esempio:

"Un problema comune nello sviluppo di una soluzione RIA a più livelli è il coordinamento della logica dell'applicazione tra il livello intermedio e il livello di presentazione".

Beh, non significa molto per me.

"RIA Services risolve questo problema fornendo componenti, strumenti e servizi del framework che rendono disponibile la logica dell'applicazione sul server al client RIA senza richiedere la duplicazione manuale di tale logica di programmazione. È possibile creare un client RIA che sia a conoscenza delle regole aziendali e sappi che il client viene aggiornato automaticamente con la logica di livello intermedio più recente ogni volta che la soluzione viene ricompilata. "

Quindi scarica le DLL dal server? Sono metadati che descrivono le regole per i dati?

Quindi, cos'è? È solo un componente aggiuntivo di VS 2010 per RAD? O è una tecnologia in cima a WCF o sotto di essa o cosa? Dove vive? Con i dati, con il server, cosa?

Apprezzo se puoi riassumere questo per me per favore.


3
È una tecnologia in cima a WCF, che utilizza la generazione di codice e il codice lato server e lato client. Si concentra principalmente sullo spostamento dei dati dal server al client e viceversa, con la convalida e altre cose.
Rangoric

1
@Rangoric: potresti pubblicarlo come risposta. Anche le risposte brevi possono essere buone risposte.
Henk Holterman

7
Ah, lol, l'ho interpretato male come RIAA e sono diventato psicopatico.
Mateen Ulhaq

Buono a sapersi: RIA = Rich Internet Applications (thin client di cui Silverlight), ben spiegato qui . I servizi WCF RIA sono servizi RIA su WCF, che collegano il thin client al server. " WCF RIA Services recupera i dati da un database SQL (Structured Query Language) Server e li rende disponibili a un client Silverlight dove vengono presentati per la modifica e la visualizzazione "
min.

Risposte:


109

I servizi RIA sono una tecnologia lato server che genera automaticamente oggetti lato client (Silverlight) che si occupano della comunicazione con il server per te e forniscono la convalida lato client.

L'oggetto principale all'interno di un servizio RIA è un DomainService, solitamente un LinqToEntitiesDomainServiceche è connesso a un modello LinqToEntities.

La cosa fondamentale da ricordare nei servizi RIA è che si tratta principalmente di un sofisticato trucco di build. Quando crei un servizio di dominio e compili la tua soluzione, viene generata una rappresentazione lato client del tuo servizio di dominio. Questa rappresentazione lato client ha la stessa interfaccia. Supponi di creare un servizio di dominio lato server CustomerServicecon un metodo IQueryable<Customer> GetCustomersByCountry. Quando crei la tua soluzione, all'interno del tuo progetto Silverlight viene generata una classe chiamata CustomerContextche ha un metodo GetCustomersByCountryQuery. È ora possibile utilizzare questo metodo sul client come se lo si chiamasse sul server.

Aggiornamenti, inserimenti ed eliminazioni seguono uno schema diverso. Quando crei un servizio di dominio, puoi indicare se desideri abilitare la modifica. I metodi corrispondenti per l'aggiornamento / inserimento / eliminazione vengono quindi generati nel servizio di dominio lato server. Tuttavia, la parte lato client non dispone di questi metodi. Quello che hai sul tuo CustomerContextè un metodo chiamato SubmitChanges. Allora come funziona:

  • Per gli aggiornamenti, aggiorna semplicemente le proprietà dei clienti esistenti (che hai recuperato tramite GetCustomersByCountryQuery).
  • Per gli inserti, usi CustomerContext.Customers.Add(new Customer(...) {...}).
  • Per le eliminazioni, usi CustomerContext.Customers.Remove(someCustomer).

Quando hai finito di modificare, chiama CustomerContext.SubmitChanges().

Per quanto riguarda la convalida, puoi decorare i tuoi oggetti lato server con attributi di convalida dallo System.ComponentModel.DataAnnotationsspazio dei nomi. Anche in questo caso, quando si crea il progetto, il codice di convalida viene ora generato automaticamente per gli oggetti lato client corrispondenti.

Spero che questa spiegazione ti aiuti un po 'di più.


Sicuramente lo fa. Grazie per averlo condiviso. Vorrei che tu potessi aggiornare il sito MSDN. Ora, cosa succede se aggiungo una proprietà al mio oggetto di dominio? Si aggiornerebbe da solo?
Aliostad

Ho aggiunto alcune informazioni aggiuntive su aggiornamenti, inserimenti ed eliminazioni.
Ronald Wildenberg

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.