Le mie foto
Nome:
Località: Italia, Bologna, Italy

27 luglio 2006

Compilazione in debug o Release in Asp.Net 2.0


Una delle differenza maggiori che si possono notare nel passaggio tra Asp.Net1.1 e Asp.Net2.0 e la differente gestione della compilazione in release e in debug(build, mamma mia come è brutto in italiano!).



Asp.Net1.1

Nell' 1.1 c'era l'opzione "Configuration Manager" nel menù Build(tradotto genera nella versione italiana di visualstudio2005...rabbrividiamo!)., con questo comando era possibile scegliere tra le varie configurazione disponibili (di default ci sono Debug e Release) per compilare tutto il progetto web.
A seconda della configurazione scelta visualstudio compilava i codebehind, creava una singola dll per il progetto web e poi spostava la dll nella cartella bin con i simboli per il debug (.pdb) nel caso si fosse scelta la configurazione di Debug.
Fatto ciò quando l'applicazione riceve una richiesta il runtime Asp.Net genera il codice necessario per le webform e gli usercontrol, lo compila e in base alla sezione compilation section del web.config decide se compilare codice ottimizzato oppure codice per il debug (con i simboli per il debug).


Quindi era importante selezionare Release prima di compilare E settare debug=”false” nel web.config per avere il codice pronto per un ambiente di produzione.


Asp.Net2.0

La novità più importate nel 2.0 è che visualstudio2005 non ha la più pallida idea di come si compili una web application; viene tutto delegato alla piattaforma Asp.Net. Quindi ci sono 2 situazioni: compilare una web application senza o con il "Web Site Deployment project".

Quando si compila un progetto web non succede niente!
Non si ha più la confortabile sensazione di avere una dll nella bin e la differenza tra release e debug sta tutta nell'impostazione del web.config: le impostazioni del configuration manager non hanno più senso (infatti c'è solo l'opzione Debug selezionabile).

Per deployare bisogna usare il comando Publish (Build -> Publish) che precompilerà il sito e lo copierà nella cartella scelta attraverso la dialog box (c'è la possibilità anche di copiarla via ftp o direttamente su IIS e di scegliere altre opzioni per lo strong naming ed altro).
In questo modo il sito verra sempre compilato in Release, a meno che non selezionate l'opzione "updateable web site" e modificate qualcosa!

Se si intende usare il WSD (Web Site Deployment project) la situazione cambia un pò infatti c'è la possibilità di compilare in Release e Debug attraverso il Configuration Manager. Questo non significa che una volta installato il WSD, Visual Studio 2005 impara a compilare un progetto web ma impara come chiamare MSBuild per compilare in Release o Debug.

Diversamente dal comando Publish WSD setterà automaticamente true o false l'impostazione del web.config a seconda che voi scegliate Release o Debug e mettera le dll nella solita cartella corrispondente (bin\release o bin\debug), come accadeva in VisualStudio2003.

Oltre questo ci sono molte altre opzioni interessanti e utili con il WSD che se avrò tempo illustrerò, intanto vi rimando alla pagina dell'msdn dove ci sono le informazioni e si può scaricare il WSD:


[Admn][Dvlp][Wndws]

Google