WebParts con ASP.NET 2.0

di Matteo Casati, in ASP.NET 2.0,

Molto spesso i siti Web hanno un'enorme quantità di informazioni da veicolare, ma presentare troppi contenuti in una singola pagina risulta inevitabilmente dispersivo e poco efficace. Parlando di AJAX, si è più volte visto come la tendenza degli ultimi tempi sia quella di permettere agli utenti di "personalizzare" il portale preferito (da Google, a Yahoo, ai nuovi Live.com e Start.com di Microsoft) consentendo ad ognuno di scegliere sia quali contenuti visualizzare, sia come disporli nel layout della pagina.

Nel mondo Windows il concetto di "personalizzazione" è posto in evidenza in prodotti come Windows SharePoint Services (WSS) e SharePoint Portal Server (SPS) 2003: un sito Web basato su SharePoint può infatti contenere componenti particolari (denominati WebParts), appositamente pensati per gestire finestre specifiche per ogni utente.

La versione 2.0 di ASP.NET ha mutuato da SharePoint il concetto di WebParts introducendo una gerarchia di controlli che costituisce una sorta di "built-in portal framework", ovvero una serie di strumenti pronti all'uso per favorire lo sviluppo di pagine Web facilmente personalizzabili, senza dover utilizzare complessi - e costosi - prodotti commerciali come, appunto, SharePoint, il cui obiettivo è peraltro significativamente diverso, ovvero agevolare la "collaborazione" tra gli utenti e quindi dove la "personalizzazione" è solo uno degli aspetti da considerare.

Le WebParts al lavoro

Per avere un'idea delle potenzialità offerte da questi controlli possiamo fare riferimento a My MSN:

Immagine

Fig. 1: personalizzazione del layout di MyMSN

Immagine

Fig. 2: personalizzazione dei contenuti di MyMSN

In MyMSN ogni utente può personalizzare la propria home page sia nell'aspetto (layout a colonne, disposizione delle box, template grafico, ecc. - vedi Fig. 1) che nel contenuto (possibilità di aggiungere o rimuovere informazioni e servizi - vedi Fig. 2) tramite semplici operazioni di trascinamento (drag & drop) ed intuitivi menu contestuali.

Con ASP.NET 2.0 è molto semplice lavorare con le WebParts; fondamentalmente abbiamo due modi per creare WebParts:

  1. ogni controllo nativo di ASP.NET, ogni Web User Control ed ogni Custom Control possono essere trattati come WebPart (in questo caso i controlli vengono rappresentati dal framework di personalizzazione come classi GenericWebPart)
  2. creare un custom control che derivi dalla classe WebPart (in questo caso sarà anche possibile definire proprietà, aspetto e comportamento della WebPart)

La Toolbox di Visual Studio 2005 presenta già un Tab "WebParts" con i controlli del framework di personalizzazione pronti all'uso:

Immagine

Fig. 3: la toolbar "WebParts" in Visual Studio 2005

I componenti principali da considerare per l'utilizzo delle WebParts sono riassunti nella tabella seguente:

ComponenteDescrizione
WebPartManagerE' il componente richiesto per la gestione delle WebParts di una pagina. Non ha nessuna interfaccia utente e risulta pertanto invisibile a runtime; ogni pagina che utilizzi le WebParts deve contenere un (e un solo) WebPartManager.
WebPartE' la classe astratta che rappresenta il contenuto personalizzabile visualizzato dall'utente.
WebPartZoneE' il contenitore di uno o più controlli WebPart e ne determina il layout. Ogni pagina può contenere una o più zone.
CatalogPartE' la classe base per presentare all'utente l'elenco delle WebParts disponibili. Da CatalogPart derivano ImportCatalogPart, DeclarativeCatalogPart e PageCatalogPart.
CatalogZoneE' il contenitore per i controlli di tipo CatalogPart.
ConnectionsZoneE' il contenitore per le relazioni determinate tra due WebParts nella pagina; una delle due WebPart è definita come provider dei dati, l'altra come consumer.
EditorPartE' la classe di base per la modifica delle proprietà di ogni WebPart. Tra gli editor già disponibili abbiamo AppearanceEditorPart, BehaviorEditorPart, LayoutEditorPart e PropertyGridEditorPart.
Ogni editor presenta la propria interfaccia utente per la visualizzazione e la modifica delle proprietà gestite.
EditorZoneE' il contenitore per i controlli di tipo EditorPart.

In definitiva abbiamo, oltre al WebPartManager (che gestisce ad alto livello i singoli componenti di personalizzazione) tre tipi di controlli: WebParts (il contenuto da visualizzare), CatalogParts (l'elenco dei componenti di personalizzazione disponibili) e EditorParts (per la modifica della struttura e delle impostazioni di una WebPart); per ciascun tipo di controllo viene fornito un "contenitore" specifico (zone).

3 pagine in totale: 1 2 3

Attenzione: Questo articolo contiene un allegato.

Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti