Distribuzione Web aziendale avanzata

di Jason Lee

Questa esercitazione illustra come eseguire varie attività necessarie o auspicabili in molti scenari di distribuzione aziendali.

Per una traduzione italiana di queste esercitazioni, visitare http://www.lucamorelli.it.

Questo fa parte di una serie di esercitazioni basate sui requisiti di distribuzione aziendali di una società fittizia denominata Fabrikam, Inc. Questa serie di esercitazioni usa una soluzione di esempio, la soluzione Contact Manager , per rappresentare un'applicazione Web con un livello realistico di complessità, tra cui un'applicazione ASP.NET MVC 3, un servizio Windows Communication Foundation (WCF) e un progetto di database.

Il metodo di distribuzione al centro di queste esercitazioni si basa sull'approccio split project file descritto in Informazioni sul processo di compilazione, in cui il processo di compilazione è controllato da due file di progetto, uno contenente le istruzioni di compilazione applicabili a ogni ambiente di destinazione e uno contenente le impostazioni di compilazione e distribuzione specifiche dell'ambiente. In fase di compilazione, il file di progetto specifico dell'ambiente viene unito al file di progetto indipendente dall'ambiente per formare un set completo di istruzioni di compilazione.

Panoramica dello scenario

Lo scenario generale per queste esercitazioni è descritto in Distribuzione Web aziendale: Panoramica dello scenario. È consigliabile esaminare questo argomento prima di iniziare a usare questa esercitazione.

Utilizzo dell'esercitazione

  • Ognuno degli argomenti di questa esercitazione è indipendente e risolve una sfida o un problema specifico che si verifica in scenari di distribuzione aziendale. Non è necessario eseguire questi argomenti in un ordine specifico. Tuttavia, questa esercitazione illustra alcune attività avanzate. Di conseguenza, è necessario acquisire familiarità con i concetti e le tecniche illustrati dall'esercitazione distribuzione Web nell'esercitazione enterprise per ottenere il massimo vantaggio da questo contenuto.
  • Questa esercitazione include questi argomenti:
  • Esecuzione di una distribuzione "What If". In molti scenari è consigliabile determinare l'impatto di una distribuzione proposta in un ambiente di destinazione o in qualsiasi contenuto esistente prima di apportare modifiche. Questo argomento descrive come eseguire una distribuzione "what if" per generare file di log e script di aggiornamento del database come se fosse stato distribuito contenuto in un ambiente di destinazione, senza apportare modifiche. L'analisi di queste risorse consente di individuare eventuali potenziali problemi in anticipo di una distribuzione dinamica.
  • Personalizzazione delle distribuzioni di database per più ambienti. Quando si distribuisce un progetto di database in più destinazioni, è spesso necessario personalizzare le proprietà di distribuzione per ogni ambiente di destinazione. Ad esempio, negli ambienti di test si ricrea in genere il database in ogni distribuzione, mentre negli ambienti di staging o di produzione è molto più probabile eseguire aggiornamenti incrementali per conservare i dati. Questo argomento descrive come incorporare queste modifiche alle proprietà nella logica di distribuzione creando un file di configurazione della distribuzione specifico dell'ambiente (con estensione sqldeployment) per ogni ambiente di destinazione.
  • Distribuzione delle appartenenze ai ruoli del database in ambienti di test. Quando si ricrea un database in ogni distribuzione, ad esempio come parte di una compilazione di integrazione continua (CI) e si esegue la distribuzione in un ambiente di test, in genere è necessario configurare le appartenenze ai ruoli del database ogni volta. Ad esempio, in genere è necessario concedere le autorizzazioni all'identità del pool di applicazioni associata all'applicazione Web. Questo argomento descrive come automatizzare questo processo aggiungendo uno script SQL post-distribuzione alla logica di distribuzione.
  • Distribuzione di database di appartenenza in ambienti aziendali. ASP.NET database di appartenenza hanno diverse caratteristiche che possono complicare il processo di distribuzione. Ad esempio, una distribuzione solo schema lascerà il database in uno stato non operativo. Nella maggior parte degli scenari è preferibile creare un database di appartenenza direttamente in ogni ambiente di destinazione. Tuttavia, se è necessario distribuire un database di appartenenza, in questo argomento vengono descritti alcuni degli approcci che è possibile usare per soddisfare le problematiche intrinseche.
  • Esclusione di file e cartelle dalla distribuzione. In alcuni scenari è necessario personalizzare il contenuto del pacchetto Web in ambienti di destinazione specifici. Ad esempio, è possibile includere versioni complete delle librerie JavaScript quando si esegue la distribuzione in un ambiente di test, per supportare il debug lato client, ma usare versioni minimizzate delle librerie quando si esegue la distribuzione in un ambiente di staging o di produzione. In questo argomento viene descritto come escludere file e cartelle specifici dal processo di creazione del pacchetto.
  • Portare le applicazioni Web offline con distribuzione Web. Quando si distribuiscono soluzioni in un ambiente di gestione temporanea o di produzione, è spesso necessario portare le applicazioni Web offline per la durata del processo di distribuzione. Questo argomento descrive come aggiungere un file diApp_offline.htm all'applicazione Web all'inizio del processo di distribuzione e rimuoverlo alla fine. Mentre il file App_offline.htm è installato, tutti gli utenti che accedono all'applicazione Web vengono reindirizzati automaticamente al file diApp_offline.htm .
  • Esecuzione di script Windows PowerShell da MSBuild. Molti scenari di distribuzione richiedono azioni successive alla distribuzione più complesse, ad esempio l'aggiunta di origini eventi personalizzate al Registro di sistema o la configurazione della replica tra le istanze di SQL Server. Queste azioni vengono spesso eseguite tramite script Windows PowerShell. Questo argomento descrive come eseguire script Windows PowerShell da un file di progetto Microsoft Build Engine (MSBuild) come parte del processo di compilazione e distribuzione.
  • Risoluzione dei problemi relativi al processo di creazione di pacchetti. La pipeline di pubblicazione Web (WPP) definisce una proprietà MSBuild denominata EnablePackageProcessLoggingAndAssert che è possibile usare per generare informazioni approfondite sul processo di creazione del pacchetto per i progetti di applicazioni Web. In questo argomento vengono descritte le operazioni della proprietà e come usarla.

Tecnologie chiave

Questa esercitazione è incentrata su come usare questi prodotti e tecnologie per supportare la compilazione automatizzata e la distribuzione Web:

  • Visual Studio 2010 e Team Foundation Server (TFS) 2010
  • MSBuild e TFS Team Build
  • Internet Information Services (IIS) 7.5
  • Strumento di distribuzione Web IIS (distribuzione Web) 2.1
  • Utilità di distribuzione del database VSDBCMD.exe

Altre esercitazioni in questa serie

Questo fa parte di una serie di cinque esercitazioni sulla distribuzione Web su scala aziendale. Queste sono altre esercitazioni della serie:

  • Distribuzione di applicazioni Web in scenari aziendali. Questo contenuto introduttivo fornisce lo sfondo contestuale per la serie di esercitazioni. Descrive lo scenario dell'esercitazione e illustra come le attività e le procedure dettagliate descritte in tutta la serie rientrano in un processo di gestione del ciclo di vita delle applicazioni più ampio.
  • Distribuzione Web nell'organizzazione. Questa esercitazione fornisce un'introduzione concettuale ai file di progetto MSBuild, al WPP, alla distribuzione Web e ad altre tecnologie correlate. Illustra come usare questi strumenti insieme per gestire processi di distribuzione complessi.
  • Configurazione degli ambienti server per la distribuzione Web. Questa esercitazione descrive come configurare i server Windows per supportare vari scenari di distribuzione, tra cui la distribuzione di pacchetti Web remoti usando il servizio Web Deployment Agent (l'agente remoto) o il gestore distribuzione Web e la distribuzione di database remoti. Fornisce indicazioni sulla scelta del metodo di distribuzione appropriato per il proprio ambiente e descrive come usare Web Farm Framework (WFF) per replicare le applicazioni Web distribuite in tutti i server Web in una server farm.
  • Configurazione di Team Foundation Server per la distribuzione Web. Questa esercitazione descrive come configurare TFS per supportare vari scenari di distribuzione, tra cui la distribuzione automatizzata come parte di un processo ci e le distribuzioni attivate manualmente di compilazioni specifiche.