Condividi tramite


Codice condiviso

WCF RIA Services consente di scrivere logica dell'applicazione condivisa tra il livello intermedio e il livello di presentazione, fornendo in tal modo funzionalità identiche nel server e nel client. Il codice può essere condiviso sia con file di origine che con assembly.

A differenza di quanto avviene per il processo di generazione di codice automatico descritto nell'argomento Generazione del codice client, il codice condiviso non viene modificato durante la compilazione, ma viene bensì copiato o letteralmente condiviso tra i livelli. Il codice condiviso consente all'utente di definire elementi di logica o estensioni di classi parziali per le entità che vengono definite una sola volta nel server, ma in grado di ottenere anche il codice generato nel client, in modo che la stessa logica sia disponibile per l'utilizzo da parte di entrambi.

File di origine condivisi

È possibile aggiungere file di origine al livello intermedio, quindi definire in modo esplicito i file da condividere con il livello di presentazione. Esistono due approcci alla condivisione di file di origine tra i livelli. Il primo approccio consiste nell'assegnare un nome ai file di origine in base a una convenzione di denominazione condivisa: *.shared.cs (per C#) o *.shared.vb (per Visual Basic). Il secondo approccio consiste nell'utilizzare la funzionalità per i file collegati disponibile in Visual Studio 2010.

Convenzione di denominazione condivisa

Quando si utilizza la convenzione di denominazione condivisa (*.shared.cs o *.shared.vb) per condividere file, si implementa un modello "push" per la condivisione dei file di codice sorgente. I file condivisi vengono copiati attivamente dal progetto di livello intermedio al progetto client durante la compilazione. La convenzione di denominazione condivisa per la condivisione dei file è utilizzabile solo nei casi in cui esista un collegamento RIA Services tra i progetti client e server.

File condiviso

La convenzione di denominazione condivisa presenta i seguenti vantaggi:

Vantaggi della convenzione di denominazione condivisa Descrizione

Supporto incorporato

Nessuna ulteriore azione necessaria da parte dello sviluppatore per mantenere sincronizzati i file condivisi.

Trasparente

Il nome indica chiaramente che il file è designato per la condivisione.

Manutenzione automatica

Dopo l'aggiunta di nuovi file condivisi, tutti i progetti client collegati al livello intermedio vengono aggiornati automaticamente al momento della compilazione della soluzione.

Processo di debug intuitivo

Lo sviluppatore può impostare punti di interruzione nelle versioni server o client del file.

La convenzione di denominazione condivisa presenta i seguenti svantaggi:

Svantaggi della convenzione di denominazione condivisa Descrizione

Nuovo concetto

Lo sviluppatore deve tenere in considerazione l'utilizzo della convenzione di denominazione condivisa.

I file vengono copiati

I file condivisi vengono copiati fisicamente nei progetti client; lo sviluppatore potrebbe involontariamente modificare la versione copiata causando la perdita delle modifiche durante la compilazione successiva.

Per ulteriori informazioni, vedere Procedura: condividere il codice mediante i file di origine.

File collegati

I file collegati sono una funzionalità già esistente in Visual Studio 2010 e pertanto non specifica di RIA Services . Sebbene un collegamento RIA Services tra progetti possa esistere, questo non è indispensabile ai fini dell'utilizzo dei file collegati. Per adottare un approccio orientato ai file collegati, è necessario implementare un modello di tipo "pull" per la condivisione dei file del codice sorgente. Nel progetto client non è contenuta alcuna copia del file. Al contrario, il progetto client fa semplicemente riferimento al file presente nel progetto server.

File collegato

È possibile collegare entrambi il progetto server e il progetto client a un file di un altro progetto.

File collegato

L'approccio orientato ai file collegati presenta i seguenti vantaggi:

Vantaggi dei file collegati Descrizione

Funzionalità esistente in Visual Studio

Non è necessario che lo sviluppatore apprenda una nuova convenzione.

Il file non viene copiato

Il file esiste solo nel progetto server. Lo sviluppatore non può pertanto modificare una versione copiata del client e non vi è rischio di perdita di modifiche durante la compilazione successiva.

L'approccio orientato ai file collegati presenta i seguenti svantaggi:

Svantaggi dei file collegati Descrizione

È richiesta un'azione esplicita da parte dell'utente

Lo sviluppatore deve collegare ogni file condiviso.

Nessuna manutenzione automatica

È necessario aggiornare ogni progetto ogni volta che si aggiungono o rimuovono file condivisi.

Scarsa trasparenza

Lo sviluppatore deve esaminare il file di progetto per determinare quali file sono condivisi.

Processo di debug complesso

Difficoltà nel determinare quale livello ha richiesto un punto di interruzione.

Per ulteriori informazioni, vedere Procedura: condividere il codice mediante i file di origine.

Assembly condivisi

Anziché condividere file di origine tra progetti, è possibile compilare il codice in una libreria di classi, quindi condividere la libreria tramite riferimenti all'assembly. Le librerie di classi di WCF RIA Services vengono utilizzate per garantire che gli assembly siano compatibili, anche in caso di utilizzo con framework diversi (quali .NET Framework versione 4 e Silverlight 4 ).

Nel diagramma seguente viene mostrata un'applicazione a più livelli che utilizza librerie di classi di RIA Services per la condivisione del codice. Il livello intermedio e il livello client utilizzano riferimenti assembly alle librerie di classi.

Struttura di una libreria di classi

Per ulteriori informazioni sulle librerie di classi di RIA Services , vedere Creazione di soluzioni Servizi RIA e Procedura dettagliata: creazione di una libreria di classi Servizi RIA.