Introduzione alla pianificazione di un sito Web ASP.NET
Aggiornamento: novembre 2007
Quando si decide di creare un sito Web, è sempre utile pianificarlo prima di iniziare a creare le pagine e a scrivere il codice. La pianificazione del sito in anticipo può semplificare la creazione dell'aspetto complessivo del sito e dello spostamento in esso.
The size of a Web site can often determine the amount of planning you must do. A small, brochure-type Web site that just provides static information can be a relatively basic site that requires little planning. Un sito Web che accede a un archivio dati, autentica gli utenti e ha vincoli di localizzazione e accesso facilitato può richiedere più pianificazione. La disponibilità di un piano consente di risparmiare tempo nello sviluppo e nella manutenzione del sito.
Negli argomenti seguenti vengono trattate informazioni che concernono il sito Web nell'insieme e che riguardano gli aspetti seguenti:
Il tipo di sito Web scelto.
Come spostarsi nel sito.
Le modalità di creazione di un aspetto e un layout coerenti per tutte le pagine del sito.
Come accedere ai dati di un archivio dati.
Decisioni sul tipo di progetto di sito Web
Esistono due tipi di progetto che è possibile creare in Visual Studio 2008. Il modello predefinito di progetto di sito Web utilizza una struttura di directory di file per definire il contenuto di un progetto. In tale modello non si dispone di un file di progetto e tutti i file della directory fanno parte del progetto.
In un progetto applicazione Web, invece, solo i file a cui si fa riferimento esplicito nel file di progetto della soluzione fanno parte del progetto. Questi file sono visualizzati in Esplora soluzioni e sono i soli file che vengono compilati durante la compilazione.
Il file di progetto di un progetto applicazione Web rende più facile l'implementazione di alcuni scenari. Ad esempio, è possibile suddividere un'applicazione ASP.NET in più progetti Visual Studio facendo riferimento ai file in file di progetto diversi. Inoltre è possibile escludere facilmente i file dal progetto.
Utilizzare i progetti di applicazione Web quando si desidera eseguire le operazioni seguenti:
Eseguire la migrazione di applicazioni di Visual Studio .NET 2003 di grandi dimensioni a Visual Studio 2008.
Controllare i nomi degli assembly di output.
Utilizzare classi autonome per fare riferimento a classi di pagina e di controlli utente.
Compilare un'applicazione Web utilizzando più progetti Web.
Aggiungere passaggi di pre-generazione e post-generazione durante la compilazione.
Accesso ai dati di un archivio dati
L'associazione dati ASP.NET consente di associare componenti a origini dati e a proprietà, insiemi, espressioni e metodi semplici. Ciò offre una maggiore flessibilità quando si utilizzano i dati di un database o di altre origini.
Se il sito Web accede a un archivio dati, è necessario utilizzare i controlli origine dati, perché sono parte di un modello di dati comune. Questo modello di dati separa il codice di accesso ai dati e il codice della logica di business dalle pagine Web che formano il livello di presentazione del sito Web. Il livello di accesso ai dati è costituito dai metodi utilizzati per accedere a un archivio dati. Il livello di logica di business aggiunge le regole al livello di accesso ai dati, ad esempio limitando l'accesso per la visualizzazione o la modifica dei dati. Il livello di presentazione è costituito dalle pagine a cui gli utenti accedono per visualizzare e modificare i dati. Per ulteriori informazioni sulla creazione di questi livelli, vedere Procedura dettagliata: creazione dei livelli di accesso ai dati e di logica di business in ASP.NET.
You can implement this common data pattern by separating the presentation layer from the data and business logic layers by using the data source model in ASP.NET. By using such controls as the LinqDataSource, ObjectDataSource, and the SqlDataSource controls, you create a data access layer and business logic layer that are separate from the presentation layer.
Occorre inoltre considerare se il sito Web deve utilizzare dati in memoria (memorizzati nella cache). Se una parte significativa dei dati dell'applicazione non cambia spesso ed è comune a sessioni o utenti, è possibile mantenere i dati in memoria sul server Web. Ciò può ridurre il numero di richieste al database e accelerare le interazioni dell'utente. Si crea un database in memoria utilizzando la classe DataSet. Un altro aspetto utile dell'oggetto DataSet è che consente a un'applicazione di trasportare sottoinsiemi di dati da una o più origini dati nello spazio dell'applicazione. L'applicazione può gestire quindi i dati in memoria, mantenendone al contempo la forma relazionale.
Spostamenti all'interno del sito
Il progressivo aumento delle dimensioni del sito e l'eventuale riposizionamento delle pagine possono ben presto rendere difficile la gestione di tutti i collegamenti. Il sistema di spostamento all'interno di un sito ASP.NET è costituito da controlli server e classi che consentono di fornire agli utenti un metodo coerente per spostarsi all'interno del sito. È possibile archiviare i collegamenti a tutte le pagine in una posizione centrale (in genere un file XML). È possibile eseguire il rendering di tali collegamenti in elenchi o menu di spostamento in ogni pagina includendo un controllo SiteMapDataSource per leggere le informazioni sul sito. Si utilizza quindi un controllo server di spostamento, ad esempio il controllo TreeView o il controllo Menu, per visualizzare le informazioni sul sito.
Una parte essenziale dello spostamento all'interno dei siti ASP.NET è rappresentata dal provider della mappa del sito. Si tratta di una classe utilizzata con un'origine dati della mappa del sito che espone informazioni sullo spostamento. Ad esempio, il provider predefinito di mappe di sito ASP.NET ottiene i dati della mappa del sito dal file XML denominato Web.sitemap e comunica tali dati direttamente al controllo server Web SiteMapPath.
Definizione di un aspetto coerente del sito Web
Varie funzionalità di ASP.NET, ad esempio i temi ASP.NET e le pagine master ASP.NET, consentono di creare e gestire un aspetto coerente per il sito Web. Queste funzionalità possono essere utilizzate già nella fase iniziale dello sviluppo del sito per fornire un aspetto coerente per il sito Web.
I temi ASP.NET definiscono l'aspetto delle pagine e dei controlli del sito Web. In un tema ASP.NET possono essere inclusi i file di interfaccia, che definiscono le impostazioni di proprietà per i controlli server Web ASP.NET, nonché i file di fogli di stile (file css) e le immagini. L'applicazione di un tema consente di fornire alle pagine di un sito Web un aspetto omogeneo. Quando si crea un tema o un insieme di temi per un sito già nella fase iniziale del processo di sviluppo, è possibile applicare questi temi a ogni pagina nuova che si crea. Per ulteriori informazioni sui temi, vedere Cenni preliminari su temi e interfacce ASP.NET.
Le pagine master ASP.NET consentono di creare un layout di pagina (una pagina master) da applicare a determinate pagine (pagine di contenuto) del sito Web. Le pagine master consentono di semplificare molto l'attività di creazione di un aspetto omogeneo per il sito. Le pagine master inoltre possono essere nidificate. Ad esempio, è possibile utilizzare le pagine master nidificate per creare un layout master per l'intero sito e un altro layout master per singole sezioni di un sito. È anche possibile utilizzare pagine master con temi. Per ulteriori informazioni sulle pagine master, vedere Informazioni generali sulle pagine master ASP.NET e Pagine master ASP.NET nidificate.
Aggiunta di funzionalità AJAX
Le funzionalità AJAX in ASP.NET consentono di creare rapidamente pagine Web caratterizzate da un'esperienza utente più soddisfacente e classici elementi dell'interfaccia utente di elevata reattività. Consentono inoltre di aggiornare una pagina senza un postback. Le funzionalità AJAX includono librerie di script client in cui sono incorporate tecnologie ECMAScript (JavaScript) e DHTML (Dynamic HTML) comuni a più browser, nonché l'integrazione con la piattaforma di sviluppo basata su server ASP.NET. Con le funzionalità AJAX è possibile migliorare l'esperienza utente e l'efficienza delle applicazioni Web. Per ulteriori informazioni, vedere Cenni preliminari su ASP.NET AJAX.
Utilizzo dello funzionalità di gestione dello stato
HTTP è un protocollo senza informazioni sullo stato. Ogni richiesta viene gestita non appena giunge; dopo che la richiesta è stata elaborata, tutti i dati vengono eliminati. Non viene mantenuto anche alcuno stato tra una richiesta e l'altra, anche se provenienti dallo stesso client. Per la maggior parte delle applicazioni Web è tuttavia utile mantenere lo stato tra una richiesta e l'altra.
In ASP.NET sono disponibili funzionalità di gestione dello stato intrinseche che consentono di archiviare informazioni tra le richieste di pagine, ad esempio le informazioni sui clienti o il contenuto di un carrello della spesa. È possibile salvare e gestire informazioni specifiche dell'applicazione, della sessione, della pagina, dell'utente nonché informazioni definite dallo sviluppatore. ASP.NET ha vari moduli di gestione dello stato tra cui scegliere, che includono l'utilizzo dei cookie, dello stato di visualizzazione, dello stato della sessione, dello stato dell'applicazione e delle proprietà del profilo. Queste informazioni possono essere indipendenti da qualsiasi controllo della pagina
Quando si pianifica un sito Web, è necessario considerare quali moduli di gestione dello stato saranno necessari. Per ulteriori informazioni, vedere Cenni preliminari sulla gestione dello stato ASP.NET.
Memorizzazione dei dati nella cache per incrementare le prestazioni
Spesso le prestazioni di un sito Web possono essere migliorate archiviando in memoria i dati a cui si accede frequentemente e la cui creazione richiede tempi di elaborazione significativi. Se, ad esempio, l'applicazione elabora grandi quantità di dati utilizzando una logica complessa, quindi li restituisce sotto forma di report a cui gli utenti accedono frequentemente, è utile evitare di ricreare il report ogni volta che un utente lo richiede. In modo analogo, se l'applicazione include una pagina che elabora dati complessi ma che viene aggiornata molto raramente, sarebbe poco efficiente per il server ricreare quella pagina a ogni richiesta.
La cache ASP.NET è una funzionalità multiuso per i siti Web. Fornisce un'interfaccia semplice per la memorizzazione nella cache e un'interfaccia più avanzata che espone i servizi di dipendenza per scadenze e modifiche. Per facilitare il miglioramento delle prestazioni dell'applicazione in tali situazioni, ASP.NET fornisce due meccanismi di memorizzazione nella cache. Il primo è la memorizzazione nella cache dell'applicazione, che consente di memorizzare nella cache i dati generati, come ad esempio DataSet o un oggetto business del report personalizzato. Il secondo è la memorizzazione nella cache dell'output della pagina, che consente di salvare l'output dell'elaborazione della pagina e di utilizzarlo nuovamente anziché elaborare di nuovo la pagina a fronte della richiesta di un utente. Se nella progettazione del sito Web viene inclusa la memorizzazione nella cache di particolari pagine, è possibile creare un sito Web più efficiente.
Infrastruttura di sicurezza
Oltre alle funzionalità di sicurezza di .NET Framework, ASP.NET offre un'infrastruttura di sicurezza per l'autenticazione e l'autorizzazione dell'accesso utente nonché per l'esecuzione di altre attività connesse alla sicurezza. È possibile autenticare gli utenti mediante l'autenticazione di Windows fornita da IIS. In alternativa, è possibile gestire l'autenticazione utilizzando l'autenticazione basata su form di ASP.NET e l'appartenenza ASP.NET. È inoltre possibile gestire l'autorizzazione per l'accesso alle risorse dell'applicazione Web utilizzando i gruppi di Windows o un database di ruoli personalizzati e i ruoli ASP.NET. È possibile rimuovere, aggiungere o sostituire questi schemi con facilità in base alle esigenze dell'applicazione. Per ulteriori informazioni, vedere i seguenti argomenti:
ASP.NET viene sempre eseguito con un'identità Windows particolare in modo che sia possibile proteggere l'applicazione utilizzando funzionalità di Windows quali gli elenchi di controllo di accesso del file system NTFS e le autorizzazioni del database. Per ulteriori informazioni sull'identità con la quale viene eseguito ASP.NET, vedere Configurazione dell'identità dei processi ASP.NET e Rappresentazione ASP.NET.
Altre considerazioni
Considerare anche gli argomenti di questa sezione prima di iniziare a creare il codice di un sito Web. Incorporando le informazioni di questi argomenti nella pianificazione, è possibile risparmiare tempo e rendere il sito conforme agli odierni standard Web.
Accessibilità
La programmazione dell'accesso facilitato è il processo di progettazione e sviluppo di applicazioni che interagiscano con il sistema operativo in modo da fare fronte a situazioni problematiche quali mobilità limitata o cecità dell'utente. ASP.NET consente di creare applicazioni Web a cui possono accedere gli utenti con particolari esigenze. Le applicazioni Web con accesso facilitato consentono di utilizzare tecnologie che assistono utenti disabili, ad esempio lettori di schermo, per l'uso di pagine Web. Le applicazioni Web con accesso facilitato presentano i seguenti vantaggi:
Possono essere utilizzate dal maggior numero possibile di destinatari.
Comportano principi di progettazione che spesso offrono vantaggi a tutti gli utenti, non solo quelli con particolari esigenze.
Soddisfano i requisiti di molti istituti che richiedono l'accesso facilitato a tutte le applicazioni Web.
Si consiglia di leggere attentamente le indicazioni per l'accesso facilitato e capire come sia possibile soddisfare i requisiti di accessibilità con ASP.NET al fine di creare applicazioni con cui gli utenti disabili possano interagire più facilmente. Per ulteriori informazioni sulle linee guida sull'accesso facilitato, vedere Supporto per l'accesso facilitato in ASP.NET.
La maggior parte delle volte i controlli ASP.NET eseguono il rendering del markup che crea pagine che soddisfano gli standard dell'accesso facilitato. Potrebbero inoltre esporre proprietà che è possibile impostare per rendere accessibili le pagine. Tuttavia, a volte, i controlli ASP.NET eseguono il rendering di output che non è conforme a tutti gli standard di accesso facilitato. Per informazioni dettagliate, vedere Controlli ASP.NET e accesso facilitato.
Globalizzazione e localizzazione
La globalizzazione è un processo che consiste nella progettazione e nello sviluppo di applicazioni adatte a più impostazioni internazionali. La localizzazione è il processo di adattamento di un'applicazione a determinate impostazioni cultura e impostazioni locali. Se si creano pagine Web che verranno lette da persone che parlano lingue diverse, è necessario fornire ai lettori la possibilità di visualizzare la pagina nella propria lingua. ASP.NET consente di creare una pagina che richiami il contenuto e altri dati in base alle impostazioni della lingua preferita per il browser o alla scelta esplicita della lingua da parte dell'utente. Il contenuto e gli altri dati vengono definiti risorse e tali dati possono essere archiviati in file di risorse o altre origini. Nella pagina Web ASP.NET i controlli vengono configurati in modo da ottenere i relativi valori delle proprietà dalle risorse. In fase di esecuzione le espressioni di risorse vengono sostituite dalle risorse contenute nel file di risorse appropriato. Per ulteriori informazioni, vedere Cenni preliminari sulle risorse delle pagine Web ASP.NET.
Compilazione di pagine singole e precompilazione
La generazione di una pagina o di un sito Web fa parte dello sviluppo di un sito ed è destinata a consentire l'individuazione di errori in fase di compilazione che si potrebbero verificare in qualsiasi punto del sito. Sebbene durante la compilazione vengano compilate le pagine, non viene prodotto un assembly da poter distribuire.
È possibile distribuire un sito senza compilarlo copiando tutti i relativi file in un server di produzione. Quando gli utenti richiedono le pagine al server di produzione, ASP.NET compila dinamicamente il sito, eseguendo in effetti gli stessi passaggi previsti dal processo di compilazione in Visual Studio. ASP.NET memorizza nella cache l'output risultante, in modo che non sia necessario ricompilare le pagine ad ogni richiesta.
Se si desidera compilare il sito in assembly e altri file da distribuire, è possibile pubblicarlo. Durante la pubblicazione vengono effettuati gli stessi passaggi di compilazione previsti dalla generazione, ma l'output viene salvato in una cartella e in sottocartelle che è possibile distribuire nel server di produzione.
For more information, Cenni preliminari sulla distribuzione di ASP.NET