Welcome to Idea R | Branding - Web Agency - Digital Strategies
Switch to the mobile layout

      Idea R - Do others know who you are? Design your corporate identity

Blog

Take a software geek from the 80s, add a new generation graphic designer and dilute with a longtime marketing strategist. Shake vigorously and you'll get the Idea R's blog.

Change language... italiano

Web Application o Web Site?

Published on 2/5/2010
Categories: Web Design
Web Application o Web Site?

Microsoft Visual Studio permette di creare due tipi di applicazione web: Web Application oppure Web Site, ma la documentazione non sempre rende chiaro quale sia la soluzione migliore da adottare.
La tabella successiva elenca brevemente le differenze, mentre le conclusioni finali aiutano a prendere la decisione più appropriata.

Scenario Web Application Web Site
Definizione del progetto Esiste un file di definizione del progetto e solo i file esplicitamente inclusi in esso ne fanno parte: questo permette di definire sotto-progetti e di escludere facilente file da esso. Non esiste un file di progetto e dunque qualsiasi file presente nella cartella del sito web ne fa implicitamente parte.
Questo genere di progetto va bene per i siti già esistenti e per i quali non si voglia creare un file di progetto.
Compilazione e risultati Il modello di compilazione prevede che tutte le classi code-behind e in generale tutto le classi vengano compilate in una singola DLL collocata nella cartella bin.
Poiché il risultato è un singolo assembly, si possono specificare attributi come numero di versione, nome dell'assembly, ecc.
Questa è l'unica soluzione disponibile per i progetti di tipo MVC (Model-View-Controller).
Il comando Build compila il sito Web solo per motivi di test.
Per distribuire un sito web è sufficiente copiare tutti i file sul server di destinazione e le funzionalità di compilazione dinamica lo renderanno disponibile agli utenti alla prima richiesta.
E' possibile precompilare un sito web per evitare di distribuire i sorgenti e per accelerare la prima esecuzione.
Il risultato della compilazione in questo caso non produce un singolo assembly, ma a seconda dei parametri di compilazione un assembly per cartella, per pagina e per user control.
Sviluppo interattivo Per eseguire e testare le pagine bisogna ricompilare l'intera applicazione (anche se le funzioni di compilazione incrementale sveltiscono il processo). Le funzionalità di compilazione dinamica non richiedono la compilazione dell'intero sito web, anche se per comportamento predefinito questo viene fatto solo ai fini di individuare gli errori di compilazione (l'errore di compilazione di una pagina non pregiudica il funzionamento delle altre).
Distribuzione Poiché tutte le classi sono compilate in un unico assembly, solo quest'ultimo assieme a tutti i file statici .aspx e .ascx devono essere distribuiti.
Utilizzando l'utility Web Deployment Project (scaricabile separatamente) è possibile precompilare anche i file statici (in questo caso però bisogna ricompilare tutto il sito ad ogni modifica di un file .aspx).
Sia i file .aspx che le classi code-behind vengono compilate in vari assembly quando viene lanciato il comando Publish Website in Visual Studio. L'opzione di pubblicazione aggiornabile compila solo le classi code-behind lasciando intoccati i file .aspx. L'opzione fixed-names produce un assembly per ogni pagina, permettendo la distribuzione di modifiche a pagine singole (tale opzione però aumenta il numero di file e di memoria utilizzata).

Conclusioni

  • Una Web Application è una collezione di file statici (.aspx e .ascx) più una singola DLL risultante dalla compilazione di tutti i file .cs
  • Una Web Application permette una gestione più centralizzata del progetto (ad esempio è possibile usare le configuration transformation per generare a compile-time file web.config differenti a seconda del tipo di release).
  • Un progetto di tipo MVC può essere solo una Web Application.
  • Un Web Site viene compilato al volo lato server (anche nel caso di Web Application in realtà, ma solo per i file statici), di conseguenza permette di aggiornare capillarmente anche le parti di codice.
  • Il problema della proprietà intellettuale nei progetti Web Site si risolve precompilando il sito, ma perdendo poi alcuni dei vantaggi riguardanti gli aggiornamenti semplici del sito. Anche i progetti Web Application possono essere precompilati, anche se questa cosa riguarda solo i contenuti statici, poiché tutto il resto è già precompilato.
  • Non ci sono differenze di prestazioni tra i due, ad eccezione dei tempi di compilazione on-demand la prima volta che si accede alla pagina di un Web Project.
  • Il comando Publish Web Site usato su un progetto di tipo Web Site esegue una precompilazione togliendo i sorgenti dal sito di destinazione. Togliendo la spunta da Allow this precompiled site to be updatable anche i file aspx vengono precompilati e dunque non saranno aggiornabili singolarmente.

You are the reader number 5,811.

Comments

Previous article

Previous article

Painting with the light

Next article

Venice - The libertine carnival

Next article

Scroll to top