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.
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.
È possibile collegare entrambi il progetto server e il progetto client a un file di un altro progetto.
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.
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.