Condividi tramite


Linee guida per ASP.NET Dynamic Data

Aggiornamento: novembre 2007

ASP.NET Dynamic Data consente di selezionare il livello di personalizzazione adatto alle proprie esigenze. Questa sezione contiene le linee guida e i suggerimenti che possono aiutare nell'esecuzione delle attività.

Dynamic Data consente di creare rapidamente un'applicazione Web completa che dispone di funzionalità di Dynamic Data complete. Consente inoltre di integrare facilmente un database in un sito Web e di selezionare determinate funzionalità di Dynamic Data necessarie.

ASP.NET Dynamic Data fornisce un ampio intervallo di personalizzazione che consente di adattare un sito Web alle proprie esigenze dal livello di presentazione al livello dati.

Creazione di un sito Web utilizzando le pagine di supporto temporaneo.

Se è necessario creare rapidamente un sito Web, l'utilizzo di ASP.NET Dynamic Data consente di creare facilmente un'applicazione Web completa che dispone di funzionalità di Dynamic Data complete. Dynamic Data supporta le pagine Web di supporto temporaneo che consentono di eseguire l'applicazione basata sul modello dati con una quantità minima di codice e può consentire di raggiungere l'obiettivo previsto. Anche se queste pagine Web di supporto temporaneo dispongono di un'interfaccia utente standard, consentono di eseguire operazioni di creazione, lettura, aggiornamento ed eliminazione (CRUD) nelle tabelle. Inoltre, dispongono di un supporto completo delle relazioni. È possibile utilizzare le pagine di supporto temporaneo per creare un'applicazione di base e applicare quindi le personalizzazioni adatte in un secondo momento. Per ulteriori informazioni, vedere la classe Procedura dettagliata: creazione di un nuovo sito Web Dynamic Data utilizzando le pagine di supporto temporaneo..

Per ulteriori informazioni, vedere la classe Cenni preliminari su ASP.NET Dynamic Data.

Aggiunta di Dynamic Data a un sito Web esistente

ASP.NET Dynamic Data consente di integrare il comportamento dei controlli Dynamic Data nel sito Web esistente consentendo di selezionare determinate funzionalità di Dynamic Data richieste. A questo scopo, è necessario attenersi alla seguente procedura:

Per ulteriori informazioni, vedere la classe Procedura dettagliata: aggiunta di Dynamic Data a un sito Web esistente.

Utilizzo degli attributi di convalida

È possibile fornire informazioni aggiuntive a Dynamic Data tramite gli attributi System.ComponentModel.DataAnnotations per applicare i metadati ai campi dati nel modello dati. Dynamic Data utilizza queste informazioni per personalizzare ad esempio la modalità in cui viene eseguito il rendering dell'interfaccia utente per la visualizzazione e la modifica dei campi dati.

Utilizzo degli attributi di convalida

Quando si applicano gli attributi di convalida, è necessario rispettare le seguenti limitazioni d'uso:

  • L'attributo può essere applicato a una proprietà o a un campo.

  • È possibile applicare l'attributo una sola volta.

Applicazione degli attributi di convalida

Quando si applica un attributo System.ComponentModel.DataAnnotations a un campo dati, è necessario attenersi alla seguente procedura:

  • Nella cartella App_Code di un'applicazione Web, implementare un file di classe che includa una classe parziale del contesto dati. Questa classe rappresenta la tabella contenente il campo dati al quale si desidera applicare l'attributo.

  • Creare un'altra classe che funga da classe di metadati associata. È possibile utilizzare qualsiasi nome per la classe, ma tale nome deve corrispondere a quello a cui si è fatto riferimento nell'attributo MetadataTypeAttribute applicato alla classe parziale, come descritto di seguito. Inserirlo nello stesso file di classe della classe appena creata.

  • Nella classe di metadati associata, creare una proprietà pubblica o un campo il cui nome corrisponda al nome del campo dati al quale è necessario applicare l'attributo di convalida.

  • Applicare l'attributo MetadataTypeAttribute alla definizione della classe parziale. Il parametro dell'attributo è costituito dal nome della classe di metadati associata.

Generazione di errori di convalida

Gli attributi System.ComponentModel.DataAnnotations consentono di creare errori personalizzati o di utilizzare gli errori incorporati quando la convalida non riesce. Per questa ragione, gli attributi di convalida possono utilizzare uno dei seguenti parametri di errore denominati:

  • ErrorMessage. Questo parametro specifica il messaggio di errore associato a un controllo di convalida. È possibile utilizzare questo parametro per specificare un messaggio di errore personalizzato non localizzabile ed eventualmente per eseguire l'override del messaggio localizzabile predefinito.

  • ErrorMessageResourceName. Questo parametro specifica la risorsa di messaggio di errore associata a un controllo di convalida. Viene utilizzato per specificare un file di risorse contenente messaggi di errore localizzabili

  • ErrorMessageResourceType. Questo parametro specifica il tipo di messaggio di errore associato a un controllo di convalida. Viene utilizzato per identificare il messaggio di errore come definito nel file di risorse. Il file di risorse viene specificato utilizzando il parametro precedente.

Di seguito vengono riportare le opzioni possibili in caso di utilizzo di messaggi di errore dell'attributo di convalida:

  • È possibile utilizzare i messaggi di errore predefiniti che vengono sempre localizzati. In questo caso, non è necessario specificare uno dei parametri precedenti.

  • È possibile fornire un messaggio di errore personalizzato non localizzabile che esegue l'override del messaggio predefinito tramite il parametro ErrorMessage.

  • È possibile fornire un file di risorse di messaggi di errore che può essere localizzato tramite il parametro ErrorMessageResourceName. Si specifica quindi il messaggio di errore contenuto nel file di risorse tramite il parametro ErrorMessageResourceType.

Selezione del modello dati

LINQ to SQL e Entity Framework presentano molte caratteristiche in comune, ma ognuno di essi dispone di funzionalità destinate a scenari diversi. LINQ to SQL è maggiormente destinato allo sviluppo rapido di applicazioni rispetto allo schema di Microsoft SQL Server esistente. Entity Framework fornisce oggetti e accesso a livello di archiviazione a Microsoft SQL Server e a database di terze parti tramite un mapping a regime di controllo libero ("loosely-coupled") e flessibile allo schema relazionale esistente.

LINQ to SQL

LINQ to SQL dispone di funzionalità destinate al database di Microsoft SQL Server. Consente di avere una visualizzazione fortemente tipizzata dello schema del database esistente.

LINQ to SQL supporta un mapping diretto, uno-a-uno dello schema del database esistente alle classi .NET Framework. È possibile eseguire il mapping a una sola classe ed esporre le chiavi esterne come relazioni fortemente tipizzate. 

È possibile compilare query LINQ su tabelle/visualizzazioni/funzioni valutate a livello di tabella e restituire i risultati come oggetti fortemente tipizzati nonché chiamare le stored procedure che restituiscono risultati fortemente tipizzati tramite metodi fortemente tipizzati. Un principio di progettazione principale di LINQ to SQL è che funziona nella maggior parte dei casi. Pertanto, se si accede ad esempio a un insieme di ordini tramite la proprietà Orders di un cliente, e gli ordini di quel cliente non sono stati precedentemente recuperati, verranno automaticamente recuperati da LINQ to SQL.

ADO.NET Entity Framework

ADO.NET Entity Framework dispone di funzionalità destinate a scenari aziendali. All'interno di un'azienda, il database viene controllato in genere da un amministratore del database. Lo schema viene in genere ottimizzato per motivi di archiviazione (prestazioni, coerenza, partizionamento) anziché per esporre un buon modello di applicazione e può cambiare nel tempo con l'evolversi dei dati e dei modelli di utilizzo.

Entity Framework è stato progettato per l'esposizione di un modello dati orientato alle applicazioni "a regime di controllo libero ("loosely-coupled") e può differire notevolmente dallo schema del database esistente.

Ad esempio, è possibile eseguire il mapping di una sola classe (o entità) a più tabelle/visualizzazioni o eseguire il mapping di più classi alla stessa tabella/visualizzazione. È possibile eseguire il mapping di una gerarchia di ereditarietà a una sola tabella/visualizzazione (come in LINQ to SQL) o a più tabelle/visualizzazioni. Questo mapping flessibile viene specificato in modo dichiarativo per spiegare lo schema del database che si evolve nel tempo senza dovere ricompilare l'applicazione.

Entity Framework include LINQ to Entities che espone molte delle stesse funzionalità di LINQ to SQL sul modello dati dell'applicazione concettuale.

Per ulteriori informazioni, vedere Introducing LINQ to Relational Data (informazioni in lingua inglese).

Vedere anche

Attività

Procedura dettagliata: aggiunta di Dynamic Data a un sito Web esistente

Procedura dettagliata: aggiunta di Dynamic Data a un sito Web esistente

Concetti

Cenni preliminari sui modelli di campo di ASP.NET Dynamic Data

Cenni preliminari sulle pagine di supporto temporaneo e sui modelli di pagina di ASP.NET Dynamic Data

Cenni preliminari su ASP.NET Dynamic Data

Riferimenti

Classi e metodi parziali (Guida per programmatori C#)

Altre risorse

LINQ to SQL

ADO.NET Entity Framework