ASP.NET 2.0 Site Navigation Overview
Data di pubblicazione: 04/06/2006
Voto della community: 3,82
(Votanti: 11)
Una delle novità introdotte con l'avvento della versione 2.0 di ASP.NET è la Site Navigation, caratteristica che permette di creare la struttura della navigazione della propria applicazione web in maniera sicuramente facile ed intuitiva.
Ogni sito internet (o intranet) che si rispetti, ha bisogno infatti di un sistema di navigazione solido, che permetta all'utente di ritrovarsi all'interno dell'applicazione e saltare con facilità da una pagina all'altra, senza rimandi inutili e senza l'utilizzo delle funzioni del browser (che, ricordiamo, non devono essere sostituite). Per far ciò, ASP.NET 2.0 offre un sistema, basato anch'esso sul concetto di "Provider Model Design Pattern", cui appartengono nuove classi e controlli web (la struttura del sistema è visibile in figura). Questi i 3 nuovi controlli aggiunti:
In poche parole, questo modello permette la creazione di un solido sistema di navigazione, attraverso la scrittura di semplici file XML, che contengono la struttura della nostra applicazione web e che fungono da fonte di dati per i controlli web sopra citati. ![]() Figura 1: Site Navigation Overview (fonte: MSDN).
Definizione della Site Map
Come abbiamo detto, esistono più modi per creare la Site Map di un sito web. Di default, ASP.NET 2.0 si aspetta di trovare nella root dell'applicazione il file web.sitemap; questo file deve avere una struttura ben precisa, vediamone un esempio:
<?xml version="1.0" encoding="utf-8" ?> Nota: specificando la tilde (~) allinizio di ogni file, dichiariamo che quel file va cercato a partire dalla root directory della nostra applicazione. E' inoltre possibile incapsulare più file .sitemap, all'interno della SiteMap di default, in modo tale da poter amministrare più facilmente differenti "canali" o "zone" del nostro sito web. Ecco un esempio: Articoli/articoli.sitemap
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="utf-8" ?> Mentre il web control SiteMapPath, prende come fonte di dati direttamente il web.sitemap di default, gli altri due controlli hanno bisogno invece di una fonte di dati specificata, poiché possono essere utilizzati in vari contesti. Per specificare la fonte di dati, viene utilizzata la proprietà DataSourceID, propria dei due web controls, e il controllo SiteMapDataSource, che, se non specificato un Site Map Provider, cerca anchesso il web.sitemap di default. Cosa cambia? Beh, se non specifichiamo nessun altro provider, non cambia esattamente niente, ma se invece proviamo a gestire più Site Map Provider il controllo SiteMapDataSource avrà la sua importanza. Ecco, quindi, come risulteranno i controlli descritti, una volta inseriti in una pagina ASP.NET:
<asp:SiteMapDataSource ID="siteMapDataSource" runat="server" /> Definizione di più Site Map Provider
Ok. Abbiamo appena visto come creare la nostra Site Map inserendo nella root della nostra applicazione web il file web.sitemap; ma se per caso avessimo la necessità di avere più Site Map, magari chiamate in modo diverso da quella di default?
Ecco, la soluzione ci viene data dal nostro caro web.config; infatti al suo interno abbiamo un nuovo elemento, chiamato SiteMap, dove possiamo definire più Site Map Provider, da utilizzare assieme a quello di default oppure separatemente.
<siteMap defaultProvider="All_SiteMapProvider">
<?xml version="1.0" encoding="utf-8" ?> Si ringrazia PeppeDotNet.it per la gentile concessione dell'articolo.
|
||||||||||||||||||||||||