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, che, in questo modo, può essere tenuto segreto.
  • 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 come tutti gli altri.
  • La compilazione in locale, inoltre, porta a scoprire eventuali bug prima che l'applicazione venga portata in ambiente di produzione.

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]

  • -? serve ad ottenere l'help
  • -m metabasePath specifica il metabase path dell'applicazione da compilare; ad esempio il metabase path del sito di default di IIS è: LM/W3SVC/1/ROOT; questa opzione non può essere usata insieme a -v e -p.
  • -v virtualPath specifica il percorso virtuale dell'applicazione da compilare, ad esempio: /nome_directory_virtuale
  • -p phisicalPath specifica il percorso fisico dell'applicazione da compilare, ad esempio: D:DocumentiWebSitoDaCompilare
  • [-u] specifica che l'applicazione può essere aggiornata
  • targetDir  è il percorso fisico della directory in cui viene messa l'applicazione compilata; se non è specificata, l'applicazione viene compilata in loco, cioè nella stessa directory del sorgente
  • [-f] specifica che la targetDir può essere sovrascritta se già esistente

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