Esporta (0) Stampa
Espandi tutto

Cenni preliminari sulla precompilazione di siti Web ASP.NET

Visual Studio 2005

Per impostazione predefinita, i file di codice e le pagine Web ASP.NET vengono compilati dinamicamente quando gli utenti richiedono per la prima volta una risorsa come una pagina dal sito Web. Dopo la prima compilazione di pagine e file di codice, le risorse compilate vengono memorizzate nella cache, in modo da ottimizzare le successive richieste relative alla stessa pagina.

In ASP.NET è inoltre possibile precompilare un intero sito prima di renderlo disponibile agli utenti. Questo offre numerosi vantaggi, tra i quali:

  • Tempi di risposta più rapidi per gli utenti, in quanto non è necessario compilare le pagine e i file di codice alla prima richiesta. Questo risulta particolarmente utile su siti di grandi dimensioni, aggiornati di frequente.

  • Un modo per identificare gli errori in fase di compilazione prima che gli utenti visualizzino il sito.

  • La possibilità di creare una versione compilata del sito da distribuire a un server di produzione senza codice sorgente.

Opzioni di precompilazione

ASP.NET offre due opzioni per la precompilazione di un sito:

  • Precompilazione di un sito sul posto. Opzione utile per i siti esistenti, quando si desideri migliorare le prestazioni ed eseguire il controllo degli errori.

  • Precompilazione di un sito per la distribuzione. Opzione che crea un output specifico, che è possibile distribuire a un server di produzione.

Inoltre, è possibile precompilare un sito per renderlo di sola lettura o aggiornabile. Nelle sezioni seguenti sono fornite ulteriori informazioni su ogni opzione.

Precompilazione sul posto

È possibile contribuire a migliorare le prestazioni del sito Web precompilandolo. Questo è particolarmente vero per siti in cui i file di codice e le pagine Web ASP.NET vengano modificati e integrati spesso. In un sito Web soggetto a modifiche frequenti, il tempo aggiuntivo necessario per compilare dinamicamente pagine nuove e modificate può influenzare la percezione della qualità del sito da parte dell'utente.

NoteNota

La precompilazione di un sito sul posto corrisponde in effetti alla stessa compilazione eseguita quando gli utenti richiedono pagine dal sito. Di conseguenza, il principale miglioramento delle prestazioni consiste nel fatto che le pagine non devono essere compilate per la prima richiesta.

Quando si esegue la precompilazione sul posto, vengono compilati tutti i tipi di file ASP.NET. I file HTML, gli elementi grafici e gli altri file statici non ASP.NET rimangono inalterati. Il processo di precompilazione segue la stessa logica utilizzata da ASP.NET per la compilazione dinamica, tenendo conto delle dipendenze tra i file. Durante la precompilazione, vengono creati assembly per tutto l'output eseguibile, successivamente inseriti in una cartella speciale all'interno della cartella %SystemRoot%\Microsoft.NET\Framework\version\Temporary ASP.NET Files. Successivamente, ASP.NET soddisfa le richieste relative alle pagine provenienti dagli assembly in questa cartella.

Se si ripete la precompilazione del sito, vengono compilati solo i file nuovi o modificati oppure quelli con dipendenze dai file nuovi o modificati. Grazie a questa ottimizzazione del compilatore, diventa pratico compilare il sito anche in caso di aggiornamenti di entità ridotta.

Precompilazione per la distribuzione

Un altro utilizzo della precompilazione di un sito è finalizzato a produrne una versione eseguibile che sia possibile distribuire a un server di produzione. La precompilazione per la distribuzione crea un output in forma di un layout che include assembly, informazioni di configurazione, informazioni sulle cartelle del sito e file statici (come file HTML ed elementi grafici).

Dopo aver compilato il sito, è possibile distribuire il layout a un server di produzione attraverso strumenti come il comando XCopy di Windows, il protocollo FTP, l'installazione di Windows e così via. Una volta distribuito, il layout funziona come il sito, e ASP.NET soddisfa le richieste di pagine provenienti dagli assembly nel layout.

La precompilazione di un sito per la distribuzione fornisce una forma di protezione del codice sorgente e di altri elementi tutelati da proprietà intellettuale. Per ulteriori informazioni sul funzionamento del compilatore con i file durante la compilazione per la distribuzione, vedere Gestione dei file durante la compilazione dei siti per la distribuzione.

È possibile precompilare per la distribuzione in due modi: precompilazione per la sola distribuzione o precompilazione per distribuzione e aggiornamento.

Precompilazione per la sola distribuzione

Quando si esegue la precompilazione per la sola distribuzione, il compilatore genera gli assembly praticamente da tutti i file di origine di ASP.NET normalmente compilati in fase di esecuzione. Sono inclusi il codice programma nelle pagine, i file di classe cs e vb, altri file di codice e i file di risorse. Il compilatore rimuove dall'output tutti gli elementi di origine e il codice. Nel layout risultante, i file compilati vengono generati per ciascuno dei file aspx (con estensione compiled) che contengono i puntatori all'assembly appropriato per la pagina.

Per modificare il sito Web, compreso il layout delle pagine, è necessario modificare i file originali, ricompilare il sito e ripetere la distribuzione del layout. L'unica eccezione è rappresentata dalla configurazione del sito: è possibile modificare il file Web.config sul server di produzione senza necessità di ricompilare il sito.

L'opzione fornisce il massimo grado di protezione per le pagine e le migliori prestazioni all'avvio.

Precompilazione per distribuzione e aggiornamento

Quando si esegue la precompilazione per distribuzione e aggiornamento, il compilatore genera gli assembly da tutto il codice sorgente (eccettuato il codice di pagina nelle pagine a file singolo) e dagli altri file che normalmente generano gli assembly, ad esempio file di risorse. I file con estensione aspx vengono convertiti in file singoli che utilizzano il modello code-behind compilato e quindi copiati nel layout.

L'opzione consente di apportare limitate modifiche alle pagine Web ASP.NET nel sito dopo la compilazione. Ad esempio, è possibile modificare la disposizione dei controlli, i colori, i tipi di carattere e altri elementi relativi all'aspetto delle pagine. È inoltre possibile aggiungere controlli, purché non richiedano gestori eventi o codice di altro tipo.

Quando il sito viene eseguito per la prima volta, in ASP.NET viene effettuata un'ulteriore compilazione per creare output dal codice.

NoteNota

Un sito aggiornabile precompilato non consente a più pagine di fare riferimento alla stessa classe CodeFile.

Precompilazione delle applicazioni figlio

La precompilazione di un sito Web riguarda solo il sito stesso, non eventuali siti figlio. Se un sito Web include una cartella figlio contrassegnata come applicazione in IIS, l'applicazione figlio non viene compilata quando si precompila la cartella padre.

Esecuzione della precompilazione

È possibile precompilare un sito Web mediante lo strumento Aspnet_compiler.exe sulla riga di comando. Per ulteriori informazioni, vedere Procedura: precompilare siti Web ASP.NET per la distribuzione e Strumento per la compilazione di ASP.NET (Aspnet_compiler.exe).

Alcune finestre di progettazione visiva come Visual Studio includono comandi che consentono di precompilare un sito Web dall'interno dell'IDE. Procedura: pubblicare siti Web (Visual Studio)
Procedura: pubblicare e firmare assembly per siti Web precompilati in Visual Web Developer
Procedura: pubblicare e generare nomi di assembly fissi in Visual Web Developer
Procedura: pubblicare e firmare assembly per siti Web precompilati in Visual Web Developer
Procedura: pubblicare e generare nomi di assembly fissi in Visual Web Developer
Procedura: pubblicare siti Web
Procedura: pubblicare e firmare assembly per siti Web precompilati in Visual Web Developer
Procedura: pubblicare e generare nomi di assembly fissi in Visual Web Developer
Procedura: distribuire un progetto di sito Web con lo strumento Pubblica sito Web

Esiste una restrizione a livello di codice per i siti che si desidera compilare con la protezione dell'origine attivata. Una classe base delle pagine (una classe code-behind) può fare riferimento alla classe delle pagine associata (file con estensione aspx) e ai membri della classe delle pagina utilizzando un nome di classe completo. Tuttavia, questo tipo di riferimento non funzionerà durante la precompilazione del sito con la protezione dell'origine attivata. Ciò avviene perché la classe base delle pagine del file code-behind non si trova nello stesso assembly della classe delle pagine derivata dalla pagina con estensione aspx. Per ulteriori informazioni sulla precompilazione con la protezione dell'origine attivata, vedere Procedura: firmare assembly per siti Web precompilati.

Vedere anche

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft