Condividi tramite


Cenni preliminari sulle finestre Progettazione controlli ASP.NET

Aggiornamento: novembre 2007

ASP.NET include supporto avanzato per la creazione di finestre di progettazione per controlli server Web. Le finestre di progettazione consentono di compilare un'interfaccia utente della fase di progettazione per un controllo, affinché gli sviluppatori possano configurare le proprietà e il contenuto del controllo in uno strumento di progettazione visiva come Visual Studio. Per informazioni generali sull'architettura e le funzionalità della fase di progettazione fornite da .NET Framework, vedere Estensione del supporto in fase di progettazione.

In questa introduzione vengono illustrati le funzionalità delle finestre di progettazione dei controlli ASP.NET, le classi di finestre di progettazione di base e le relative funzionalità e gli scenari di utilizzo delle finestre di progettazione.

Funzionalità delle finestre di progettazione

Pur continuando a supportare l'architettura delle finestre di progettazione dei controlli di versioni precedenti, ASP.NET include miglioramenti aggiuntivi significativi.

  • Modifica basata sull'area. Nella visualizzazione della fase di progettazione di un controllo sono disponibili aree modificabili. Tale funzionalità consente la modifica WYSIWYG del contenuto di un controllo in fase di progettazione.

  • Elenchi di operazioni. Gli elenchi di operazioni sono menu di attività che lo sviluppatore della pagina di un controllo può utilizzare nell'interfaccia utente della fase di progettazione. Nella visualizzazione della fase di progettazione del controllo può ad esempio essere fornito un menu delle attività disponibili, con un'attività per la formattazione automatica del controllo.

  • Finestre di progettazione di origini dati e con associazione a dati. Le finestre di progettazione dei controlli origine dati consentono allo sviluppatore della pagina di configurare controlli origine dati. Le finestre di progettazione dei controlli con associazione a dati consentono allo sviluppatore della pagina di configurare controlli con associazione a dati. Sono disponibili funzionalità per implementare la comunicazione tra le finestre di progettazione di origini dati e con associazione a dati. Per un esempio di una finestra di progettazione dei controlli origine dati, vedere DataSourceDesigner. Per un esempio di una finestra di progettazione dei controlli con associazione a dati, vedere HierarchicalDataBoundControlDesigner.

  • Modifica dei modelli semplificata. La creazione di un'interfaccia utente per la modifica in fase di progettazione di controlli basati su modello, come GridView, è stata notevolmente semplificata e modificata in modo da consentire allo sviluppatore del controllo di eseguire la modifica dei modelli con le aree. Per un esempio, vedere Esempio di controllo server basato su modelli.

  • Modello a oggetti semplificato. Il modello a oggetti per il rendering in fase di progettazione è stato semplificato, affinché l'unico aspetto significativo per lo sviluppatore sia costituito dalla creazione del codice HTML della fase di progettazione. L'accesso al modello a oggetti semplificato viene fornito da diverse nuove classi base: ControlDesigner, ContainerControlDesigner e CompositeControlDesigner.

  • Sottoscrizione di servizi host. Una finestra di progettazione dei controlli può sottoscrivere e utilizzare diversi servizi forniti dall'ambiente host. Una finestra di progettazione dei controlli può ad esempio utilizzare servizi Visual Studio 2005 per fornire l'accesso ai dati e alla configurazione, aggiungere controlli a una pagina a livello di codice in fase di progettazione, gestire eventi Click nella finestra di progettazione, disegnare nell'area di progettazione e accedere ad altri servizi, ad esempio per lo stato della finestra di progettazione.

Classi di finestre di progettazione

Una finestra di progettazione dei controlli consente il rendering in fase di progettazione di un controllo server Web fungendo da mediatore tra il controllo in fase di esecuzione e l'ambiente host. All'interno dell'ambiente host, le finestre di progettazione forniscono le funzionalità elencate di seguito per consentire la creazione di un'interfaccia utente della fase di progettazione per gli utenti dei controlli.

  • Contenuto e rendering in fase di progettazione. Una finestra di progettazione dei controlli consente più tipi di rendering, sia semplici che complessi. La modifica basata sull'area e la modifica dei modelli costituiscono esempi dei tipi di interfaccia utente della fase di progettazione che è possibile fornire per un controllo. È inoltre possibile fornire la modifica di colonne o più visualizzazioni in fase di esecuzione per un controllo, affinché uno sviluppatore che utilizza il controllo in fase di progettazione possa scegliere tra un insieme di opzioni relative alla modalità di rendering del controllo in fase di esecuzione.

  • Altre classi della fase di progettazione. Oltre alle classi di finestre di progettazione, sono disponibili classi di convertitori di tipi che eseguono l'associazione a un tipo o una proprietà e conversioni di tipo, ad esempio da stringa a valore. Esistono inoltre classi di editor di tipi con interfaccia utente che forniscono un'interfaccia utente specializzata per la modifica di una proprietà. L'elenco a discesa per la selezione dei colori in una griglia delle proprietà consente ad esempio di selezionare un colore per una proprietà di colore in un controllo Web. È inoltre possibile creare un editor di componenti specializzato, ovvero una classe che consente di modificare le proprietà di un controllo complessivamente.

  • Persistenza dei dati del controllo associato. Le proprietà interne e il contenuto di un controllo possono essere resi persistenti, in modo da mantenere lo stato del controllo e dei relativi controlli figlio nell'ambiente di progettazione. Ciò è determinato dal modo in cui il controllo è configurato nel codice.

Quando si creano finestre di progettazione per controlli server Web, verranno probabilmente utilizzate diverse classi base:

  • ControlDesigner

    Classe base che fornisce supporto in fase di progettazione per i controlli server Web.

  • ContainerControlDesigner

    Classe base per un semplice controllo di contenimento che consente la modifica dell'insieme di controlli figlio di un controllo. Questa finestra di progettazione fornisce un'unica area modificabile disponibile, mentre l'host (ad esempio Visual Studio 2005) fornisce automaticamente tutto il rendering.

  • CompositeControlDesigner

    Classe base che fornisce supporto in fase di progettazione per il rendering di controlli server Web compositi. Fornisce il controllo a livello di codice anche sul rendering di controlli figlio.

  • DataSourceDesigner, BaseDataBoundControlDesigner e HierarchicalDataSourceDesigner

    Queste classi base forniscono supporto in fase di progettazione per i controlli origine dati e per i controlli con associazione a dati e sono progettate per comunicare fra loro.

Scenari di utilizzo delle finestre di progettazione

Le finestre di progettazione dei controlli possono essere utilizzate in due scenari comuni: lo sviluppo di controlli personalizzati e lo sviluppo di strumenti di progettazione visiva.

Se si sviluppano controlli server Web personalizzati, è possibile creare una finestra di progettazione associata per ottimizzare le possibilità per lo sviluppatore di una pagina di configurare il controllo in fase di progettazione. Questo scenario è particolarmente utile se il controllo potrebbe essere riutilizzato da più sviluppatori di pagine. È ad esempio possibile creare un controllo Chart personalizzato. Se si fornisce una finestra di progettazione dei controlli associata, diversi sviluppatori di pagine Intranet potranno configurare il controllo in una pagina con uno stile diverso.

Se si sviluppa uno strumento di progettazione Web visiva, analogo a Visual Studio 2005 o Microsoft FrontPage, è possibile utilizzare i componenti host delle finestre di progettazione dei controlli, consentendo così allo strumento di fornire servizi e interagire con le finestre di progettazione dei controlli per supportare il rendering in fase di progettazione di controlli personalizzati.

Per ulteriori informazioni sull'architettura delle finestre di progettazione .NET Framework , vedere Architettura della fase di progettazione. Per informazioni dettagliate sulla creazione di una finestra di progettazione per un controllo server Web personalizzato, vedere Procedura dettagliata: creazione di una finestra Progettazione controlli di base per un controllo server Web. Per informazioni dettagliate su come creare una finestra di progettazione di controlli personalizzati dotata di servizi ed elenchi di azioni allo scopo di fornire un'interfaccia utente per la fase di progettazione, vedere Esempio di Progettazione controlli con servizi ed elenchi di operazioni.

Protezione di una finestra di progettazione di controlli personalizzati

Quando un controllo è in visualizzazione Progettazione, il componente della finestra di progettazione elabora le modifiche delle proprietà ed esegue il rendering del markup nell'host di progettazione, ad esempio Visual Studio. In fase di progettazione, il componente della finestra di progettazione di un controllo viene eseguito con lo stesso livello di attendibilità utilizzato dal relativo host di progettazione. I componenti della finestra di progettazione possono accedere a database, effettuare chiamate a siti Web su un server remoto, creare e scrivere file nel computer dello sviluppatore, inviare messaggi di posta elettronica ed eseguire codice in altri assembly.

Le informazioni fornite in questo argomento descrivono le procedure consigliate per migliorare la sicurezza delle funzionalità della finestra di progettazione dei controlli.

Oltre a migliorare la sicurezza delle applicazioni attenendosi alle apposite procedure consigliate per la codifica e la configurazione, accertarsi di tenere continuamente aggiornato il server applicazioni con gli ultimi aggiornamenti per la sicurezza di Microsoft Windows e di Internet Information Services (IIS). Accertarsi inoltre di disporre delle ultime versioni dei package relativi ai controlli personalizzati installati nel computer in uso.

Il libro "Writing Secure Code" di Michael Howard e David LeBlanc contiene informazioni più dettagliate sulle procedure consigliate per la scrittura di codice sicuro e per la protezione delle applicazioni. Per ulteriori istruzioni, vedere Microsoft Patterns and Practices (informazioni in lingua inglese) e Linee guida e suggerimenti.

Suggerimenti sulla sicurezza per gli utenti di controlli personalizzati

È necessario tenere presente che i controlli personalizzati di origini sconosciute possono contenere finestre di progettazione che espongono sul Web i dati riservati contenuti nel computer in uso o che eseguono malware in fase di progettazione. L'utilizzo della configurazione di accesso al codice allo scopo di limitare i privilegi di accesso delle finestre di progettazione dei controlli non consente di risolvere questo problema, in quanto tali finestre devono essere sempre eseguite nell'host di progettazione con attendibilità totale. Per ulteriori informazioni sui livelli di attendibilità, vedere Livelli di attendibilità e file di criteri ASP.NET. Per ulteriori informazioni sulla sicurezza dall'accesso di codice, vedere Introduzione alla protezione dall'accesso di codice.

Suggerimenti sulla sicurezza per gli sviluppatori di controlli personalizzati

L'utilizzo di attributi di configurazione su classi e membri per limitare le autorizzazioni al livello minimo richiesto per il corretto funzionamento del controllo non è una misura di sicurezza sufficiente per i componenti della finestra di progettazione. Questi ultimi devono infatti essere eseguiti nell'host di progettazione con attendibilità totale.

Se possibile, evitare di utilizzare dati ottenuti in diretta da un database per visualizzare strutture di esempio e accedere ad anteprime di controlli dati, ad esempio il controllo GridView. Ciò può infatti comportare l'esposizione di dati riservati del database. Per compilare i dati per le anteprime è invece opportuno utilizzare strutture dati di esempio.

Suggerimenti sulla sicurezza per gli sviluppatori di host di progettazione

Gli sviluppatori di host di progettazione, ad esempio Visual Studio, devono verificare i potenziali rischi per la sicurezza nel codice HTML, nel testo e negli altri dati restituiti dalla finestra di progettazione prima di visualizzare tali dati. È inoltre consigliabile limitare le dimensioni delle stringhe di codice HTML e delle aree della finestra di progettazione in modo da semplificare la gestione. Per ulteriori informazioni sulla convalida HTML, vedere Convalida dell'input utente nelle pagine Web ASP.NET.

Supporto di più strumenti di sviluppo

Microsoft Visual Web Developer supporta tutte le funzionalità illustrate in questo argomento, ma altri strumenti di sviluppo potrebbero non fornire tale supporto. Di seguito vengono forniti alcuni esempi delle funzionalità che potrebbero non essere supportate:

Vedere anche

Concetti

Architettura della fase di progettazione

Esempio di Progettazione controlli con servizi ed elenchi di operazioni

Altre risorse

Supporto in fase di progettazione per pagine Web ASP.NET

Estensione del supporto in fase di progettazione