La pubblicazione di un sito web è una procedura abbastanza delicata che si compone di diversi passaggi, tra cui:
- copia di file quali dll, aspx, css, js, img, etc..
- modifiche al file di configurazione dell’applicazione (stringhe di connessione, gestione degli errori, opzioni di compilazione)
- creazione\aggiornamento del database
Anche se la soluzione più completa e personalizzabile è MSBUILD, esistono altri modi utilizzabili direttamente all’interno del nostro IDE preferito.
Con la versione 2010 di Visual Studio, infatti, sono state introdotte alcune funzionalità per agevolare il deploy delle applicazioni web: Packages e One-Click deployment.
In questo post vedremo come creare un package, nel prossimo come è possibile pubblicarlo.
Package
Cos’è
Un Package non è altro che un file .zip (o una cartella) contenente tutti i file necessari alla nostra applicazione, le relative configurazioni di IIS, script di creazione\aggiornamento del database, certificati, assembly da registrare nella GAC .
Creazione di una configurazione di build
La prima cosa da fare è creare una nuova configurazione di build.
Infatti possiamo creare N package quanti sono gli ambienti in cui andremmo a pubblicare la nostra applicazione web (TEST, PRODUZIONE, etc).
Cliccando su Build->Configuration Manager è possibile creare nuove configurazioni, anche clonandone una già esistente (es. Release) :
Configurazione web
Per configurare il package basta cliccare sulle proprietà del progetto della nostra applicazione, quindi su Package/Publish Web.
La maschera che si presenterà sarà simile a questa:
Da qui è possibile impostare i vari parametri per creare il nostro package, tra cui:
- quali file pubblicare e quali escludere (simboli di debug, file in App_data)
- abilitare il deploy del database
- replicare le impostazioni di IIS (se stiamo utilizzando il nostro IIS locale come server di sviluppo)
- indicare se creare un file zip e dove salvarlo oppure la cartella di destinazione
- indicare il website e il nome dell’applicazione da creare sul server di destinazione
Configurazione SQL
Se abilitato, è possibili eseguire automaticamente il deploy del database.
Per la configurazione basta cliccare su Package/Publish Web.
Si presenta quindi una maschera in cui vanno inserite le stringhe di connessione utilizzate dalla nostra applicazione (possiamo anche importarle direttamente dal web.config):
Nella sezione “Database Entry Details” e per ogni stringa di connessione possiamo indicare :
- la stringa di connessione di destinazione da utilizzare per eseguire gli script (NB: Come sottolineato nella maschera di inserimento, questa stringa non andrà a sostituire quella presente nel web.config)
- generare automaticamente gli script DDL e\o DML in base ad un database di origine (di default è quello indicato nel web.config)
- aggiungere eventuali script specificando l’ordine in cui vanno eseguiti
Modifiche del web.config
Il file di configurazione che dovremo utilizzare ovviamente è diverso da quello che utilizziamo per lo sviluppo. Dovremo infatti cambiare alcuni valori quali la stringa di connessione, gli end-point dei nostri servizi, abilitare i custom error e disabilitare l'opzione di debug.
Niente di più semplice! Se clicchiamo con il tasto dx sul file di configurazione noteremo la voce “Add config transformation”. Selezionandola verranno automaticamente creati tanti web.[BUILD].config quante sono le configurazioni di build specificate. Se ne apriamo uno vedremo alcuni commenti che spiegano come va utilizzato, ad esempio come sostituire il valore della stringa di connessione. Per l’elenco completo delle operazioni di trasformazioni disponibil vi rimando a MSDN)
Creazione del package
Bene, siamo ora pronti a creare il nostro package. Su Esplora Soluzioni, clicchiamo con il tasto destro sulla nostra applicazione, quindi su “Build deployment package”:
Nel prossimo post vedremo i possibili modi per pubblicare il package.
Alla prossima!