Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Precompilare il sito

Usare "aspnet_compiler" per compilare un'applicazione ASP.NET 2.0
Usare "aspnet_compiler" per compilare un'applicazione ASP.NET 2.0
Link copiato negli appunti

In ASP.NET si può portare un sito on line caricando i soli file sorgenti sul server che lo ospita. Se i file hanno subito modifiche Il Framework .NET presente sul server li ricompila alla prima richiesta da parte di un utente.

Questo processo è molto comodo, in quanto evita di compilare a mano, ogni volta, i file modificati. Tuttavia, in determinate situazioni, può essere conveniente compilare il sito in locale e poi portarlo on line già compilato.Precompilare il sito e portarlo in produzione o ,come si sul dire in inglese, fare un deploy, porta ad una serie di vantaggi.

  • Il vantaggio più rilevante consiste in una maggiore protezione del codice sorgente
  • Inoltre si evita di far compiere il lavoro al server, che non ha la necessità di compilare il sito al primo accesso. Quindi il primo accesso diventa veloce
  • La compilazione in locale, inoltre, porta a scoprire eventuali bug prima

Nelle versioni precedenti alla 2.0, ASP.NET necessitava il deploy dei file .aspx cioè dei file contenenti l'interfaccia utente, mentre i file con il codice della logica di funzionamento venivano compilati nella cartella bin. L'interfaccia utente, quindi, rimaneva comunque visibile.

Con ASP.NET 2.0 si può precompilare l'applicazione web in modo da non mettere sul server nè i sorgenti .aspx nè il codice. Naturalmente, tutto il codice lato client rimane comunque visibile.

Prima dell'avvento di ASP.NET 2.0, con le versioni ASP.NET 1.x, si poteva già precompilare un sito. In ASP.NET 1.x, bisognava eseguire l'handler precompile.axd digitando sul browser:

http://localhost/nome_directory_virtuale/precompile.axd

ciò, dopo aver inserito nel Web.Config o nel machine.config una sezione <httpHandlers> contenente:

<add verb="*" path="precompile.axd" type="System.Web.Handlers.BatchHandler"/>

aspnet_compiler

In ASP.NET 2.0 si può invece utilizzare l'utility aspnet_compiler. Per ottenere l'help di aspnet_compiler si può digitare a riga di comando:

Richiamare l'help di aspnet_compiler

C:WINDOWSMicrosoft.NETFrameworkv2.0.50727>aspnet_compiler -?

In sintesi, le opzioni di sintassi più importanti dell'utility aspnet_compiler sono le seguenti:

Sintassi di aspnet_compiler

aspnet_compiler [-?] [-m metabasePath | -v virtualPath [-p physicalDir]] [[-u] [-f]  targetDir]

  • -?
  • -m metabasePath LM/W3SVC/1/ROOT -v -p
  • -v virtualPath /nome_directory_virtuale
  • -p phisicalPath D:DocumentiWebSitoDaCompilare
  • [-u]
  • targetDir
  • [-f] targetDir

Facciamo un esempio. Supponiamo di avere il sorgente del nostro sito nella cartella: D:DocumentiWebSorgenteSito e che vogliamo compilare il sito nella cartella:
D:DocumentiWebCompilatoSito. La prima cosa da fare è creare una directory virtuale in IIS per il SorgenteSito.

Figura 1. Directory virtuale in IIS
Directory virtuale in IIS

Poi, visto che ci siamo, creiamo anche una directory virtuale per CompilatoSito. Prepariamoci la stringa da eseguire, ad esempio scrivendola sul blocco note:

C:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_compiler -v /SorgenteSito -p D:DocumentiWebSorgenteSito -u -f D:DocumentiWebCompilatoSito

Copiamo la stringa da eseguire ed incolliamola su Esegui:

Figura 2. Esegui
Esegui

Diamo l'OK ed il sito viene compilato ed otteniamo nella cartella target:

Figura 3. Cartella target
Cartella target

Se esploriamo la cartella target notiamo che, editando la Default.aspx, se ne può vedere il contenuto. Questo perchè abbiamo usato l'opzione -u (aggiornabile). Se proviamo a compilare senza tale opzione, anche la Default.aspx viene compilata ed il suo edit ci restituisce una sola stringa:

This is a marker file generated by the precompilation tool, 
and should not be deleted!

Per testare il sito compilato apriamo il browser e digitiamo: http://localhost/CompilatoSito/. Otteniamo così l'esecuzione della nostra applicazione compilata, essendo CompilatoSito, la directory virtuale definita su IIS, che punta alla cartella fisica del compilato.

Ti consigliamo anche