Condividi tramite


Creazione di soluzioni Servizi RIA

WCF RIA Services consente di creare soluzioni che si applicano a una varietà di scenari relativi alla creazione di applicazioni aziendali, da scenari estremamente elementari a scenari significativamente complessi. Un scenario elementare potrebbe, ad esempio, essere costituito da una sola applicazione Silverlight che accede esclusivamente ad alcuni servizi del dominio nel livello intermedio. Uno scenario più complesso potrebbe contenere più applicazioni Silverlight, tutte collegate a un livello intermedio comune che espone un ampio set di servizi del dominio. In questo argomento vengono illustrati i problemi che sorgono durante la creazione e la gestione di una soluzione RIA Services e viene fornita una risposta alle domande, quali ad esempio:

  • Quali sono le diverse modalità di strutturazione di una soluzione RIA Services ?

  • Qual è la struttura migliore per un particolare scenario?

  • Come si possono risolvere i problemi relativi a una soluzione?

  • Come si distribuisce una soluzione?

In questo argomento vengono inoltre fornite indicazioni per le procedure dettagliate e gli altri argomenti di questa sezione in cui sono illustrate le attività associate a un numero di scenari tipici relativi a RIA Services . In questa sezione sono contenute le seguenti cinque procedure dettagliate:

  1. Procedura dettagliata: panoramica di Servizi RIA

  2. Procedura dettagliata: creazione di una soluzione Servizi RIA

  3. Procedura dettagliata: utilizzo del modello Applicazione aziendale di Silverlight

  4. Procedura dettagliata: creazione di una libreria di classi Servizi RIA

  5. Procedura dettagliata: localizzazione di un'applicazione aziendale

In questa sezione sono inclusi anche i seguenti tre argomenti:

  1. Procedura: aggiungere o rimuovere un collegamento a Servizi RIA, in cui viene illustrata la gestione dei collegamenti a RIA Services .

  2. Utilizzo della procedura guidata del servizio del dominio, in cui si documentano gli elementi dell'interfaccia utente nella finestra di dialogo.

  3. Debugging a RIA Services Solution, in cui sono fornite informazioni aggiuntive sulle azioni da intraprendere quando la creazione di una soluzione RIA Services risulta problematica.

Per l'esecuzione delle procedure dettagliate descritte in questa sezione di RIA Services è necessario che siano installati e configurati correttamente alcuni programmi prerequisiti quali Visual Studio 2010 e Silverlight Runtime e SDK, oltre a WCF RIA Services e a WCF RIA Services Toolkit. È inoltre richiesta l'installazione e la configurazione di SQL Server 2008 R2 Express with Advanced Services e l'installazione del database AdventureWorks OLTP e LT.

Le istruzioni dettagliate per soddisfare tali prerequisiti vengono fornite negli argomenti all'interno del nodo Prerequisiti per WCF RIA Services. Seguire tali istruzioni in modo da evitare il maggior numero di problemi possibile durante l'esecuzione delle procedure dettagliate di RIA Services presenti in questa sezione.

Collegamento a Servizi RIA

In tutte le soluzioni RIA Services , esiste un collegamento (noto come collegamento a RIA Services ) tra un progetto Silverlight e il progetto di livello intermedio associato. Un collegamento a RIA Services è un formato speciale di riferimento da progetto a progetto che facilita la generazione di codice di livello di presentazione da codice di livello intermedio. Si crea un collegamento a RIA Services selezionando la casella di controllo Abilita WCF RIA Services quando si crea un nuovo progetto Silverlight. È inoltre possibile creare un collegamento a RIA Services per i progetti esistenti nelle proprietà del progetto. In alcuni casi, il collegamento a RIA Services viene creato tra progetti di applicazioni e in altri casi tra progetti librerie di classi, come descritto nelle sezioni seguenti.

Quando tra i progetti esiste un collegamento, il progetto Silverlight riceve le classi proxy che consentono al progetto di accedere al codice di livello intermedio. Non è possibile specificare che solo determinate parti del livello intermedio si applicano a un progetto Silverlight. All'utilizzo dei collegamenti a RIA Services si applicano le regole indicate di seguito.

  • Il collegamento è definito in un progetto client Silverlight.

  • Il collegamento punta sempre da un progetto client Silverlight a una libreria di classi o un progetto server .NET.

  • Per ogni progetto client Silverlight è consentito un solo collegamento.

  • Il collegamento non può puntare ad altri progetti client Silverlight.

  • Più progetti client Silverlight possono puntare allo stesso progetto server o alla stessa libreria di classi.

  • Un'applicazione Silverlight non può collegarsi direttamente a un progetto libreria di classi.

Per ulteriori informazioni sui collegamenti a RIA Services , vedere Procedura: aggiungere o rimuovere un collegamento a Servizi RIA in questa sezione.

Struttura della soluzione predefinita

Nella struttura della soluzione predefinita di RIA Services viene creato un solo progetto client e un solo progetto server. Quando si crea un nuovo progetto utilizzando il modello Applicazione Silverlight e si seleziona la casella Abilita WCF RIA Services, viene creata una soluzione con questa struttura predefinita. Quindi esiste già un collegamento a RIA Services tra i due progetti. Quando si compila la soluzione, il codice client viene generato per i servizi del dominio e il codice condiviso. Nell'immagine seguente viene illustrata la struttura della soluzione predefinita.

Struttura del progetto predefinita

La struttura della soluzione predefinita è conveniente perché tutti i tipi di servizio del dominio e codice condiviso aggiunti al progetto server sono automaticamente disponibili per il progetto client Silverlight una volta compilata la soluzione. Inoltre, il codice condiviso che si aggiunge al progetto server è visibile nel progetto client. Questa struttura è efficace quando i servizi del dominio del progetto server non sono numerosi e non è necessario riutilizzare la logica di business per numerosi applicazioni Silverlight differenti.

In una soluzione con la struttura predefinita, è possibile aggiungere al progetto server più applicazioni Silverlight con un collegamento a RIA Services . Tuttavia, la struttura predefinita prevede delle limitazioni. Il codice generato per ogni client Silverlight può accedere a tutto il codice di livello intermedio del progetto server. Ad esempio, se tre applicazioni Silverlight sono collegate a un singolo progetto server e si desidera aggiungere un servizio del dominio che sarà utilizzato da una sola delle applicazioni Silverlight, tutte e tre le applicazioni client disporranno di un contesto del dominio generato per il servizio del dominio e saranno in grado di accedere al servizio del dominio.

Per ulteriori informazioni sulla creazione di soluzioni RIA Services in Visual Studio 2010, vedere Procedura dettagliata: creazione di una soluzione Servizi RIA. Per ulteriori informazioni sul codice generato per un progetto client, vedere Generazione del codice client.

Modello Applicazione aziendale di Silverlight

RIA Services fornisce anche il modello Applicazione aziendale di Silverlight. Questo modello è un conveniente punto di partenza per la compilazione di un'applicazione aziendale che utilizza Silverlight per il client. Il modello si basa sull'Applicazione di navigazione Silverlight e utilizza RIA Services per supportare l'autenticazione e la registrazione utente. Quando si crea un progetto utilizzando il modello Applicazione aziendale di Silverlight, RIA Services crea la soluzione con la struttura predefinita. Il modello Applicazione aziendale di Silverlight aggiunge automaticamente le caratteristiche seguenti:

  • Finestra di accesso

  • Finestra di registrazione

  • Navigazione Silverlight

La modalità di autenticazione predefinita per l'applicazione aziendale è l'autenticazione basata su form. Per utilizzare l'autenticazione di Windows, è sufficiente modificare il valore dell'elemento di autenticazione nel file Web.config, ad esempio <authentication mode="Windows"/>, e il valore della proprietà Authentication nella classe WebContext generata. Il modello Applicazione aziendale contiene automaticamente il codice per supportare l'autenticazione basata su form o l'autenticazione di Windows. Per ulteriori informazioni, vedere l'argomento Procedura dettagliata: utilizzo del modello Applicazione aziendale di Silverlight.

La cartella Services del progetto server contiene i servizi del dominio che espongono la registrazione utente e l'autenticazione utente. Il servizio di registrazione utente utilizza il provider di appartenenze ASP.NET per creare i nuovi utenti. Nel progetto server, una cartella denominata Models contiene le classi per la definizione delle proprietà per i dati dell'utente e della registrazione. È possibile aggiungere le proprietà a queste classi per personalizzare i dati dell'utente per l'applicazione.

Nel progetto client, l'applicazione aziendale contiene il codice per semplificare lo sviluppo del livello di presentazione. La cartella Libs e la cartella Control contengono gli assembly e i controlli utilizzati nel modello. La cartella Login, all'interno della cartella Views, contiene i controlli di autenticazione e registrazione utente. Questi controlli sono automaticamente abilitati nel progetto. La cartella Resources, all'interno della cartella Assets, contiene le stringhe di risorsa per il testo del progetto. Il testo per l'applicazione può essere aggiunto al file delle stringhe dell'applicazione.

Per ulteriori informazioni, vedere Procedura dettagliata: utilizzo del modello Applicazione aziendale di Silverlight.

Supporto dei componenti della libreria di classi a più livelli

RIA Services fornisce il tipo di progetto Libreria di classi WCF RIA Services per supportare la condivisione del codice tramite le librerie. Le librerie di classi consentono di comprimere la logica di business in componenti riutilizzabili della libreria di classi a più livelli.

Nell'illustrazione seguente viene mostrata una struttura della soluzione che utilizza una libreria di classi Servizi RIA.

Struttura di una libreria di classi

Notare nell'illustrazione che non esiste un collegamento a RIA Services tra i progetti di applicazione. Al contrario, il collegamento esiste tra i progetti libreria di classi. È possibile utilizzare un qualsiasi numero di librerie di classi nell'applicazione ed è possibile riutilizzare la libreria di classi in un qualsiasi numero di applicazioni.

L'utilizzo delle librerie di classi RIA Services fornisce i seguenti vantaggi:

  • Le parti server e client di un solo dominio di dati possono essere sviluppate e compresse come un singolo componente. Questo componente può essere riutilizzato in più applicazioni.

  • La condivisione del codice sorgente e la generazione del codice del proxy client avviene in un unico percorso. Il percorso è tra i livelli del componente e non in ogni applicazione Silverlight.

  • Più applicazioni Silverlight all'interno di un singolo progetto applicazione Web possono fare riferimento solo alle librerie di classi necessarie. In questo modo non sarà necessario per il client Silverlight vedere tutta la logica di business esposta dal livello intermedio.

Con le librerie di classi RIA Services , è possibile compilare una struttura flessibile della soluzione che fornisce solo i componenti necessari all'applicazione. Nell'illustrazione seguente viene mostrata una struttura della soluzione che utilizza più librerie di classi RIA Services .

Struttura di una libreria di classi

[!NOTA] Se si aggiunge un progetto libreria di classi a un progetto Applicazione aziendale di Silverlight, non è possibile aggiungere un servizio di autenticazione al progetto server nella libreria di classi. L'oggetto utente nel modello Applicazione aziendale di Silverlight non dispone dell'accesso alla libreria di classi.

Per ulteriori informazioni, vedere Procedura dettagliata: creazione di una libreria di classi Servizi RIA.