Condividi tramite


Cenni preliminari sulla personalizzazione di Web part

Aggiornamento: novembre 2007

In alcune applicazioni Web è possibile consentire agli utenti di modificare o personalizzare l'interfaccia utente e il comportamento dell'applicazione. Il gruppo di controlli Web part ASP.NET fornisce questa funzionalità mediante la personalizzazione. La personalizzazione consente di salvare le proprietà o lo stato dei controlli Web part in un archivio a lungo termine senza alcun collegamento a una sessione particolare del browser.

Funzionamento della personalizzazione

La personalizzazione consente di creare proprietà per i controlli Web part che hanno diverse caratteristiche uniche. Le proprietà personalizzabili sono:

  • Collegamento all'identità di un utente specifico e una pagina Web. Le impostazioni di ciascun utente per i controlli personalizzabili su ciascuna pagina possono essere salvate nei dati di personalizzazione. Questi dati consentono all'utente di modificare l'interfaccia utente di una pagina Web e salvare le singole preferenze.

  • Lunga durata Le impostazioni personalizzate non sono collegate a una singola sessione del browser. Poiché vengono salvate in un archivio a lungo termine, l'applicazione può recuperare le impostazioni di un utente ogni volta che quest'ultimo visita una pagina specifica.

    La personalizzazione utilizza un database di servizi delle applicazioni ASP.NET per archiviare i dati di personalizzazione. Per impostazione predefinita, ASP.NET crea questo database automaticamente in una sottocartella detta "app_data" quando un'applicazione ASP.NET utilizza la personalizzazione o uno degli altri servizi delle applicazioni, quali i ruoli, le appartenenze o i profili, per la prima volta. Inoltre per impostazione predefinita ASP.NET crea il database come singolo file di database SQL Server Express contenente lo schema del database per tutti i servizi delle applicazioni. Con il file Web.config è possibile configurare l'applicazione in modo che per la personalizzazione venga creato un file di database separato. Inoltre nel file Web.config è possibile specificare un database SQL Server per archiviare i dati dei servizi delle applicazioni invece di utilizzare il file di database SQL Server Express predefinito.

  • Persistenza tramite un livello di provider. Il meccanismo di archiviazione e recupero dei dati di personalizzazione comprende un provider e un archivio dati. ASP.NET include un provider e un database Microsoft SQL predefiniti. È inoltre possibile creare un provider personalizzato e configurarlo per l'utilizzo di qualsiasi archivio dati.

  • Dichiarazione per qualsiasi controllo Web part. Quando si sviluppa un controllo personalizzato, è possibile aggiungere l'attributo Personalizable nel codice per attivare una proprietà particolare per qualsiasi controllo Web part per la personalizzazione. Oltre ai controlli personalizzati derivati dalla classe WebPart, ciò è applicabile anche ai controlli server ASP.NET, ai controlli server personalizzati o ai controlli utente, in quanto possono essere utilizzati come controlli Web part.

    Nota:

    È importante riconoscere che le proprietà ordinarie vengono gestite in modo diverso in quanto non possono essere mantenute come proprietà personalizzabili. Se si aggiunge un controllo WebPart o un altro controllo server in una zona WebPartZoneBase a livello di codice e si prova a impostarne le proprietà non personalizzabili a livello di codice (ad esempio, se si imposta la proprietà Text su un controllo Label), i valori predefiniti delle proprietà vengono ripristinati dopo l'aggiunta dei controlli perché non possono essere mantenuti a lungo termine in un archivio di personalizzazione. Per mantenere le proprietà in un archivio a lungo termine, è necessario contrassegnarle con l'attributo Personalizable nel codice sorgente. In alternativa, se si desidera mantenere le proprietà solo nelle richieste nell'ambito della stessa sessione del browser (ma non in un archivio a lungo termine), è possibile utilizzare lo stato di visualizzazione.

Personalizzazione e altre funzionalità ASP.NET

La personalizzazione è diversa per molti aspetti dalle altre tecniche ASP.NET a livello di persistenza dei dati dello stato di un'applicazione Web:

  • La personalizzazione è una funzionalità di Web part. Non è possibile utilizzarla da sola. Per usare la personalizzazione, è necessario utilizzare i controlli nell'ambito di WebPartZone in modo che dispongano della funzionalità Web part.

    Nota:

    I controlli server, i controlli personalizzati o i controlli utente ASP.NET possono essere utilizzati come controlli Web part per usufruire della personalizzazione.

  • La personalizzazione è diversa dallo stato di visualizzazione. Lo stato di visualizzazione e la personalizzazione mantengono entrambi i dati dello stato del controllo, ma i dati dello stato di visualizzazione vengono mantenuti solo durante la sessione corrente del browser, mentre i dati di personalizzazione durano a lungo.

  • La personalizzazione è diversa dai profili. La personalizzazione archivia i dati dello stato propri dell'utente per i controlli solo su una pagina Web particolare. Le informazioni relative all'utente quale persona, che devono essere utilizzate in più pagine di un'applicazione Web (ad esempio, le informazioni di un account in un'applicazione di un carrello), vanno mantenute in un profilo. Per ulteriori informazioni, vedere Cenni preliminari sulle proprietà dei profili ASP.NET.

Concetti principali relativi alla personalizzazione

Quando si utilizza la personalizzazione con i controlli Web part, è necessario capire i diversi concetti che incidono sul funzionamento della personalizzazione.

Il primo concetto è l'ambito di personalizzazione delle pagine. L'ambito di personalizzazione delle pagine fa riferimento alla gamma di utenti a cui le modifiche di personalizzazione su una pagina possono essere applicate. In qualsiasi momento una pagina Web part può essere in uno dei due ambiti di personalizzazione delle pagine possibili, condiviso o utente. Le modifiche di personalizzazione sulla pagina sono applicabili a tutti gli utenti nell'ambito condiviso o solo all'utente corrente nell'ambito utente.

Un secondo concetto correlato è la visibilità del controllo. A seconda della visibilità, un controllo può essere visibile a un singolo utente o a tutti gli utenti. Ciascun controllo WebPart su una pagina è un controllo condiviso, visibile a tutti gli utenti della pagina, o un controllo per utente, visibile solo a un singolo utente. La visibilità dipende da come il controllo è stato aggiunto in una pagina. Se un controllo viene aggiunto mediante la dichiarazione nel codice di una pagina Web (un controllo statico), è sempre un controllo condiviso. Se un controllo viene aggiunto dal codice di applicazione o da un utente che lo seleziona da un catalogo di controlli (un controllo dinamico), la visibilità dipende dall'ambito di personalizzazione corrente della pagina. Se la pagina è in ambito condiviso, viene condiviso un controllo aggiunto dinamicamente, mentre se la pagina è in ambito utente, il controllo è un controllo per utente.

Un terzo concetto importante riguarda l'ambito della proprietà. Quando si crea una proprietà personalizzabile per un controllo mediante l'utilizzo dell'attributo Personalizable nel codice sorgente, è possibile impostare l'ambito di personalizzazione per la proprietà su Shared o User (User è l'ambito predefinito). Ciò significa che è possibile determinare quali proprietà di un controllo possono essere personalizzate da tutti gli utenti e quali possono essere personalizzate solo dagli utenti autorizzati quando l'ambito della pagina è Shared.

Insieme, i concetti dell'ambito di personalizzazione delle pagine, della visibilità del controllo e dell'ambito di personalizzazione della proprietà creano le opzioni di visualizzazione e personalizzazione dei controlli Web part da parte degli utenti. Nella tabella seguente viene riepilogato il comportamento dei controlli Web part quando vengono personalizzati nei vari ambiti.

Visibilità del controllo

Pagina in ambito condiviso

Pagina in ambito utente

controllo condiviso (i controlli WebPart vengono condivisi per impostazione predefinita)

Un utente autorizzato può personalizzare le proprietà con ambito condiviso e utente sul controllo per tutti gli utenti.

Nel caso di un controllo dinamico (un controllo che viene aggiunto nella pagina a livello di codice o da un catalogo di controlli), un utente autorizzato può eliminarlo permanentemente per tutti gli utenti.

Nel caso di un controllo statico (un controllo dichiarato nel codice di una pagina .aspx), il controllo non può essere eliminato, anche se un utente autorizzato può chiuderlo per tutti gli utenti.

I singoli utenti non possono personalizzare le proprietà con ambito condiviso. Tuttavia possono personalizzare le proprietà con ambito utente e i valori di queste proprietà hanno la precedenza su quelli assegnati alle proprietà quando la pagina era nell'ambito Share. Se i dati di personalizzazione propri dell'utente su un controllo vanno persi o vengono ripristinati, i valori delle proprietà con ambito utente vengono ripristinati in base ai valori che le proprietà avevano quando la pagina era in ambito condiviso.

I singoli utenti possono chiudere un controllo condiviso, che viene quindi aggiunto nel catalogo delle pagine, ma non possono eliminarlo in modo permanente.

controllo per utente

Il controllo non può essere personalizzato in base alla pagina in ambito condiviso, perché non è neanche visualizzato sulla pagina. Il controllo appare solo quando la pagina è in ambito utente.

I singoli utenti possono personalizzare le proprietà personalizzabili con ambito condiviso e utente sul controllo, perché l'istanza del controllo è completamente privata.

I singoli utenti possono inoltre eliminare il controllo in modo permanente.

Componenti essenziali della personalizzazione

Nella seguente tabella vengono illustrati i due componenti del gruppo di controlli Web part fondamentali per la personalizzazione e con i quali si opera direttamente o indirettamente ogni volta che si utilizza la personalizzazione.

Controllo Web part

Descrizione

WebPartManager

Gestisce tutti i Web part su una pagina, attiva o disattiva la personalizzazione e gestisce il ciclo di vita dei dati di personalizzazione. Per ogni pagina Web part è richiesto uno e un solo controllo WebPartManager.

WebPartPersonalization

Implementa la logica necessaria per eseguire le operazioni di personalizzazione.

Vedere anche

Concetti

Cenni preliminari su Web part ASP.NET

Requisiti per l'utilizzo della personalizzazione di Web part

Cenni preliminari sulle proprietà dei profili ASP.NET

Riferimenti

Cenni preliminari sul set di controlli Web part