Soluzione Contact Manager
di Jason Lee
Questa serie di esercitazioni usa una soluzione di esempio, la soluzione Contact Manager, per rappresentare un'applicazione su scala aziendale con un livello realistico di complessità. Questo argomento introduce la soluzione Contact Manager, descrive i componenti chiave della soluzione e identifica le sfide nella distribuzione di questo tipo di applicazione in diverse piattaforme di destinazione in un ambiente aziendale.
Quando si usano gli argomenti di queste esercitazioni, è possibile usare la soluzione Contact Manager come implementazione di riferimento che illustra come soddisfare sfide specifiche negli scenari di distribuzione aziendale. L'argomento successivo descrive come scaricare ed eseguire la soluzione nella workstation per sviluppatori.
La soluzione Contact Manager è costituita da quattro singoli progetti:
- ContactManager.Mvc. Si tratta di un progetto di applicazione Web MVC 3 ASP.NET che rappresenta il punto di ingresso per la soluzione. Offre alcune funzionalità di base dell'applicazione Web, ad esempio fornendo agli utenti la possibilità di creare e visualizzare i dettagli dei contatti. L'applicazione si basa su un servizio Windows Communication Foundation (WCF) per gestire i contatti e un database di servizi applicazioni ASP.NET per gestire l'autenticazione e l'autorizzazione.
- ContactManager.Database. Si tratta di un progetto di database di Visual Studio. Il progetto definisce lo schema per un database che archivia i dettagli del contatto.
- ContactManager.Service. Si tratta di un progetto di servizio Web WCF. Il servizio WCF espone un endpoint che consente ai chiamanti di eseguire operazioni create, recuperate, aggiornate ed eliminate (CRUD) nel database ContactManager . Il servizio si basa sul database ContactManager e sull'assembly diContactManager.Common.dll .
- ContactManager.Common. Si tratta di un progetto di libreria di classi. Il servizio WCF si basa sui tipi definiti in questo assembly.
La soluzione include anche una cartella della soluzione denominata Pubblica. Contiene vari file di progetto personalizzati e file di comando che illustrano come è possibile controllare e modificare il processo di compilazione e distribuzione. Queste sono descritte più in dettaglio più avanti in questa esercitazione.
A livello concettuale, i componenti della soluzione si adattano insieme come segue:
Nota
Mentre l'applicazione Web MVC 3 ASP.NET usa il provider di appartenenza ASP.NET, tutte le pagine all'interno dell'applicazione Web consentono l'accesso anonimo. Non si tratta chiaramente di una configurazione realistica. Tuttavia, la soluzione viene configurata in questo modo per semplificare la distribuzione e il test della soluzione senza configurare account utente e ruoli.
La soluzione Contact Manager illustra diversi problemi di distribuzione comuni a molti scenari di distribuzione aziendali:
- La soluzione è costituita da più progetti dipendenti. È necessario distribuire questi progetti contemporaneamente.
- Le stringhe di connessione e gli endpoint di servizio devono essere aggiornati per ogni ambiente e in molti casi queste informazioni non saranno disponibili per lo sviluppatore.
- Quando si distribuisce il database ContactManager in ambienti di gestione temporanea e di produzione, è necessario mantenere i dati esistenti nelle distribuzioni successive.
- Quando si distribuisce il database dei servizi applicazioni ASP.NET, è necessario distribuire alcuni dati di configurazione ma omettere i dati dell'account utente.
- I progetti includono alcuni file e cartelle che non devono essere distribuiti. È necessario escludere questi file e cartelle dal processo di distribuzione.
- La soluzione deve supportare la distribuzione automatica da un server di compilazione TEAM Foundation Server (TFS).
In questo argomento è stata fornita una panoramica generale della soluzione Contact Manager e sono state identificate alcune delle problematiche di distribuzione intrinseche comuni a molti scenari di distribuzione aziendali. Gli argomenti rimanenti di questa esercitazione descrivono alcune delle tecniche che è possibile usare per soddisfare queste sfide.
L'argomento successivo descrive come scaricare ed eseguire la soluzione nella workstation per sviluppatori.