File di siti Web inclusi nel controllo del codice sorgente
Aggiornamento: novembre 2007
Alcuni dei file di un sito Web richiedono una particolare attenzione quando si utilizza il controllo del codice sorgente.
File Web.config
Essendo un archivio centrale per le impostazioni di configurazione a livello di applicazione, il file Web.config viene estratto da diversi sviluppatori alla volta più frequentemente rispetto alle singole pagine. Purché le stesse impostazioni non vengano modificate contemporaneamente da più sviluppatori, la funzionalità di unione del sistema di controllo del codice sorgente è in grado di incorporare le modifiche durante il processo di archiviazione.
È possibile aprire il file Web.config per modificarlo manualmente. In tal caso è possibile estrarre in modo esplicito il file oppure affidarsi all'estrazione implicita quando si apportano modifiche al file, come con una pagina ASP.NET. Numerose utilità di Visual Web Developer apportano inoltre modifiche al file Web.config. Se ad esempio si utilizza la finestra di dialogo Aggiungi riferimento di Visual Web Developer per creare un riferimento a un progetto client, a un servizio Web o a un assembly nella Global Assembly Cache, il nuovo riferimento verrà incluso nel file Web.config. Nella maggior parte dei casi, il file Web.config verrà estratto automaticamente a seconda delle necessità. Se ad esempio si aggiunge un nuovo riferimento all'applicazione Web e il file Web.config non è stato estratto, il comando Aggiungi riferimento consentirà di estrarre il file e aggiungere il riferimento.
Tuttavia, non tutti i processi che influiscono sul file Web.config ne comportano l'estrazione automatica. Di seguito è riportato un elenco di utilità che richiedono l'estrazione del file Web.config prima della modifica della configurazione dell'applicazione.
Lo strumento Amministrazione sito Web (comando Configurazione di ASP.NET del menu Sito Web) non comporta l'estrazione automatica del file Web.config. Se si tenta di salvare le modifiche in questo strumento senza aver prima estratto il file Web.config, verrà visualizzato un messaggio di errore indicante che il file Web.config è in sola lettura. La soluzione consiste nell'estrarre in modo esplicito il file Web.config prima di utilizzare lo strumento Amministrazione sito Web.
Lo snap-in MMC ASP.NET non comporta l'estrazione automatica del file Web.config. Di conseguenza, se si tenta di salvare le modifiche di configurazione prima di averlo estratto, verrà visualizzato un messaggio di errore.
Sezioni crittografate del file Web.config
Se il file Web.config è stato configurato con sezioni crittografate, non è più possibile eseguire l'unione. Prima di eseguire questa operazione, annullare la crittografia delle impostazioni di configurazione.
Per informazioni sulla crittografia di sezioni del file Web.config, vedere Crittografia delle informazioni di configurazione utilizzando la configurazione protetta.
File Global.asax
Analogamente a Web.config, il file Global.asax contiene informazioni applicabili all'intero sito Web ed è reperibile nella radice del sito Web. In particolare, questo file contiene codice per la gestione degli eventi generati per l'applicazione o la sessione. In generale, più sviluppatori possono estrarre il file Global.asax e utilizzare la funzionalità di unione del provider del controllo del codice sorgente per risolvere i conflitti in fase di archiviazione.
File di risorse
I file di risorse (con estensione resx) contengono informazioni in formato XML. Possono essere locali per una pagina o globali per l'applicazione Web. Il file di risorse per una pagina locale viene inserito nel file App_LocalResources con un nome basato su quello della pagina a cui è associato. Alla pagina Default.aspx corrisponderà ad esempio un file di risorse locale denominato Default.aspx.resx. I file di risorse globali vengono invece inseriti nel file App_GlobalResources. È possibile assegnare a tali file qualsiasi nome, purché contenga l'estensione resx.
I file di risorse locali non vengono estratti automaticamente al momento dell'estrazione di una pagina. È pertanto necessario estrarre il file di risorse corrispondente, in modo esplicito o implicito, prima di apportare delle modifiche. Con i file di risorse globali si verifica una situazione analoga, fatta eccezione per una più elevata probabilità di contese tra gli sviluppatori. Prima di estrarre una pagina basata su un file di risorse globale, esaminare il controllo del codice sorgente per controllare se il file di risorse globale è stato estratto da un altro sviluppatore.
In entrambi i casi, poiché il file di risorse è in formato XML, i conflitti che si verificano durante l'archiviazione possono essere risolti mediante l'unione.
Database dei servizi dell'applicazione
Se si utilizzano i servizi di appartenenza di ASP.NET, la gestione dei ruoli o i profili, le relative informazioni sull'applicazione vengono archiviate in un database. Per impostazione predefinita, il database è locale per l'applicazione Web e viene archiviato in un file di database nella cartella App_Data dell'applicazione Web. A questi servizi sono inoltre associate voci nel file Web.config. Per ulteriori informazioni, vedere Creazione e configurazione del database dei servizi dell'applicazione per SQL Server.
L'archiviazione di dati dell'applicazione in un database locale può generare problemi se il sito Web è incluso nel controllo del codice sorgente, per i seguenti motivi:
Ogni sviluppatore deve estrarre il file di database quando esegue il debug locale dell'applicazione. Non è possibile eseguire il debug dell'applicazione con una versione in sola lettura del file di database. In caso contrario, verranno generati errori di runtime.
Il database viene archiviato nel repository del controllo del codice sorgente come file binario. Di conseguenza, il sistema di controllo del codice sorgente non è in grado di unire le modifiche se il file di database è stato estratto da più sviluppatori. Al contrario, ogni singola operazione di archiviazione effettuata dagli sviluppatori comporterà la sovrascrittura della versione precedente.
Quando si sviluppa un'applicazione Web inclusa nel controllo del codice sorgente, è preferibile utilizzare un file di database condiviso non incluso nel controllo del codice sorgente per archiviare i dati dei servizi dell'applicazione. È ad esempio possibile utilizzare un server centrale che esegue Microsoft SQL Server. In questo caso tutti gli sviluppatori avranno a disposizione dati aggiornati e attivi. In seguito sarà inoltre possibile utilizzare le funzionalità di backup del database per gestire i dati dell'applicazione. Per informazioni dettagliate sulla selezione di un database per i dati dell'applicazione, vedere Creazione e configurazione del database dei servizi dell'applicazione per SQL Server.
File degli assembly
È possibile aggiungere assembly (file con estensione dll) alla cartella Bin del sito Web e quindi fare riferimento a tali assembly nel codice. Non è necessario estrarre un file dll a meno che non si desideri sovrascriverlo con una versione più recente.
I sistemi di controllo del codice sorgente non sono in grado di unire le modifiche se uno o più sviluppatori modificano contemporaneamente il file dll binario. È pertanto preferibile non consentire più operazioni di estrazione su un file dll se si prevede di aggiornarlo e di archiviarlo nuovamente. È possibile impostare un'opzione durante l'estrazione per impedire ad altri sviluppatori di estrarre il file durante l'utilizzo.
Riferimenti a progetti di librerie di classi o client
Quando si sviluppa l'applicazione Web, è possibile aggiungere un progetto di libreria di classi o client alla soluzione e creare componenti compilabili in tale progetto. È quindi possibile creare un riferimento da progetto a progetto nell'applicazione Web per fare riferimento all'output compilato del progetto di libreria. Quando si crea un progetto di libreria di classi, ad esempio, è possibile creare un assembly con classi di utilità o controlli personalizzati all'interno del progetto e quindi fare riferimento a tali assembly nell'applicazione Web.
Quando si crea un riferimento a un altro progetto, l'output compilato verrà copiato da tale progetto, se esistente. Per questo motivo è necessario generare un progetto prima di farvi riferimento in un altro progetto. L'output compilato di progetti client non è incluso nel controllo del codice sorgente, pertanto gli sviluppatori non devono preoccuparsi di eliminare le versioni precedenti dei file binari, né di generare e sovrascrivere le versioni incluse nel controllo del codice sorgente.
Vedere anche
Concetti
Cenni preliminari sul controllo del codice sorgente di siti Web
Altre risorse
Creazione e configurazione del database dei servizi dell'applicazione per SQL Server