Condividi tramite


Procedura dettagliata: creazione dei livelli di accesso ai dati e di logica di business in ASP.NET

Aggiornamento: novembre 2007

Quando si utilizzano dati in ASP.NET, si trae profitto dall'utilizzo di modelli software comuni. Uno di questi modelli consiste nel separare il codice di accesso ai dati dal codice della logica di business che controlla l'accesso ai dati o che fornisce altre regole business. In questo modello, i due livelli sono separati dal livello di presentazione, che è costituito dalle pagine a cui l'utente del sito Web accede per visualizzare o modificare i dati.

ASP.NET è in grado di separare l'accesso ai dati, la logica di business e la presentazione in molti modi. Ad esempio, il modello di origine dati, che include i controlli server quali i controlli LinqDataSource e ObjectDataSource, separa il livello di presentazione dal codice di accesso ai dati e dalla logica di business.

Un altro modello consiste nell'includere direttamente la logica dell'accesso ai dati nelle pagine ASP.NET (il livello di presentazione). Ad esempio, è possibile scrivere codice ADO.NET nella pagina code-behind della pagina ASP.NET o utilizzare il controllo SqlDataSource. Questo approccio abbina strettamente la logica dell'accesso ai dati al livello di presentazione.

L'approccio consigliato consiste nel separare la logica dell'accesso ai dati dal livello di presentazione. A questo livello separato ci si riferisce con l'espressione livello di accesso ai dati. Il livello di accesso ai dati può essere implementato come progetto Libreria di classi separato. Tuttavia è anche possibile utilizzare gli strumenti di Visual Web Developer in grado di generare un livello di accesso ai dati.

Nota:

Non è possibile creare un progetto Libreria di classi in Microsoft Visual Web Developer Express Edition. Tuttavia, è possibile creare un progetto separato utilizzando Visual Basic Express Edition o Visual C# Express Edition e includere quindi l'output di tale classe come assembly (DLL) nel sito Web.

Se il sito Web visualizza o aggiorna i dati, è necessario creare un livello di accesso ai dati e un livello di logica di business prima di creare l'interfaccia utente.

Un'applicazione Web basata sui dati di solito include un livello di accesso ai dati utilizzando dataset tipizzati o classi di entità che rappresentano i dati. Include inoltre un livello di logica di business che applica le regole business personalizzate. Infine include un livello di presentazione utilizzando le pagine ASP.NET nonché le pagine master e i temi, per creare un layout di pagina comune. In questa procedura dettagliata viene mostrato come creare un livello di accesso ai dati.

Il livello di accesso ai dati include tutto il codice specifico dell'origine dati sottostante. Vi è incluso anche il codice che crea una connessione al database e che emette i comandi di selezione, inserimento, aggiornamento ed eliminazione. Il livello di accesso ai dati contiene in genere le classi che implementano i metodi per l'accesso ai dati del database sottostanti. Il livello di presentazione non utilizza direttamente i dati. Richiama piuttosto le classi e i metodi del livello di accesso ai dati per tutte le richieste di dati.

Le attività illustrate in questa procedura dettagliata sono le seguenti:

  • Creazione di un database SQL e aggiunta di dati.

  • Aggiunta di un file Linq to SQL che funge da livello di accesso ai dati.

  • Creazione di una pagina che funziona come livello di presentazione.

  • Aggiunta di un controllo LinqDataSource a una pagina che comunica tra il livello di presentazione e il livello di accesso ai dati.

Prerequisiti

Per completare la procedura dettagliata, è necessario disporre dei seguenti elementi:

  • Microsoft Visual Studio 2008 o Microsoft Visual Web Developer Express Edition. Per informazioni sul download, visitare il sito Web Visual Studio Developer Center (informazioni in lingua inglese).

  • Campo .NET Framework versione 3.5.

  • SQL Server Express Edition. Se invece si dispone di Microsoft SQL Server, è possibile utilizzarlo.

Creazione di un sito Web

Il primo passaggio consiste nella creazione di un sito Web.

Per creare un nuovo sito Web di file system

  1. Aprire Visual Studio 2008 o Visual Web Developer Express Edition.

  2. Scegliere Nuovosito Web dal menu File.

    Verrà visualizzata la finestra di dialogo Nuovo sito Web.

  3. In Modelli Visual Studio installati fare clic su Sito Web ASP.NET.

  4. Nella casella Percorso fare clic su File system e digitare il nome della cartella in cui conservare i file del sito Web.

    Ad esempio, digitare C:\BasicWebSite.

  5. Nell'elenco Linguaggio selezionare Visual Basic o Visual C#, quindi fare clic su OK.

    Nota:

    Il linguaggio di programmazione scelto sarà quello predefinito per il sito Web. È tuttavia possibile impostare individualmente il linguaggio di programmazione per ogni pagina.

    In Visual Web Developer viene creata la cartella e una nuova pagina denominata Default.aspx.

Connessione a un database

Il passaggio successivo consiste nell'eseguire una connessione a un database in Visual Web Developer utilizzando la finestra Esplora server. In Visual Web Developer Express Edition la finestra si chiama Esplora database. La creazione di un database in Esplora server consente di aggiungere tabelle, stored procedure, visualizzazioni e altri elementi di database in Visual Studio. È inoltre possibile visualizzare i dati di tabella o creare le query manualmente o utilizzando la finestra Generatore di query.

Quando più avanti in questa procedura si compilerà il dataset tipizzato per il livello di accesso ai dati, sarà necessario creare una connessione al database in Visual Web Developer. È possibile fornire manualmente le informazioni di connessione. Tuttavia, Visual Web Developer può semplificare questo processo perché viene popolato automaticamente un elenco dei database già registrati in Esplora server.

Per questa procedura dettagliata si creerà un nuovo database per la registrazione degli elementi attività.

Creazione di un nuovo database di SQL Server Express

In questa sezione si creerà un nuovo database di SQL Server Express che conterrà le informazioni di un elenco di attività.

Per aggiungere un database al sito Web

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del sito Web, quindi scegliere Aggiungi nuovo elemento.

    Verrà visualizzata la finestra Aggiungi nuovo elemento.

  2. Selezionare Database SQL e denominare il database Tasks.mdf.

  3. Scegliere OK.

  4. Quando in Visual Web Developer viene chiesto se il database deve essere archiviato nella cartella App_Data, fare clic su Sì.

Creazione di uno schema e dei dati di esempio per il database delle attività

È possibile utilizzare la progettazione del database e le funzionalità di modifica per creare uno schema per la tabella che contiene gli elementi attività.

Per definire uno schema e aggiungere i dati per il database delle attività

  1. In Esplora soluzioni aprire la cartella App_Data e fare doppio clic su Tasks.mdf.

    Il nodo di database Tasks viene aperto in Esplora server.

  2. Fare clic con il pulsante destro del mouse sulla cartella Tabelle e scegliere Aggiungi nuova tabella.

    Verrà visualizzata la finestra di definizione della tabella.

  3. Creare nella tabella le seguenti colonne:

    Nome colonna

    Tipo di dati

    Proprietà

    taskId

    int

    Not null

    name

    nvarchar(50)

    Not null

    dateCreated

    datetime

    Not null

    isComplete

    bit

    Not null

  4. Selezionare la riga per la colonna taskId, fare clic con il pulsante destro sulla riga, quindi scegliere Imposta chiave primaria.

  5. Selezionare la riga taskid e quindi cercare la sezione Identify Specification nella finestra Proprietà colonne.

  6. Aprire la sezione e impostare (Identità) su Sì.

  7. Salvare la tabella, denominarla TasksList e quindi chiudere la finestra di definizione della tabella.

  8. Fare clic con il pulsante destro del mouse sulla tabella in Esplora server e scegliere Mostra dati tabella.

    Viene visualizzata una finestra di modifica nella quale è possibile visualizzare, aggiungere e modificare i dati.

  9. Aggiungere quattro o cinque record alla tabella.

    Non è necessario specificare un valore per la colonna taskId, perché è una colonna di identità e il relativo valore viene assegnato automaticamente.

  10. Chiudere la finestra di modifica.

Creazione dei livelli di accesso ai dati e delle regole business

È possibile creare in vari modi un livello di accesso ai dati e un livello di logica di business per il database appena creato. In questa procedura dettagliata si creerà una classe che rappresenta le entità del database. È quindi possibile aggiungere la logica di business alle classi generate. Non si aggiungerà la logica di business alle classi in questa procedura dettagliata.

In questa procedura dettagliata si utilizzerà LINQ (Language Integrated Query) per gestire i dati. LINQ applica ai dati relazionali i principi della programmazione orientata agli oggetti. Fornisce un modello di programmazione unificato per l'esecuzione di query e l'aggiornamento dei dati da tipi diversi di origini dati ed estende le funzionalità correlate ai dati direttamente nei linguaggi C# e Visual Basic. Per ulteriori informazioni su LINQ, vedere LINQ (Language-Integrated Query).

Le classi LINQ to SQL verranno utilizzate come livello di accesso ai dati. Si utilizzerà la finestra Object Relational Designer in Visual Web Developer per generare le classi di entità che rappresentano i dati.

Mapping del database delle attività a una classe di contesto dati SQL

Per iniziare la creazione del livello di accesso ai dati, aggiungere un dataset tipizzato al progetto.

Per creare una classe per la tabella Tasks

  1. Se nel sito Web non è già presente una cartella App_Code, in Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto, scegliere Aggiungi cartella ASP.NET, quindi fare clic su App_Code.

  2. Fare clic con il pulsante destro del mouse sulla cartella App_Code, quindi scegliere Aggiungi nuovo elemento.

    Verrà visualizzata la finestra di dialogo Aggiungi nuovo elemento.

  3. In Modelli Visual Studio installati selezionare il modello Classi LINQ to SQL e rinominare il file Tasks.dbml.

  4. Scegliere Aggiungi.

    Verrà visualizzata la finestra Object Relational Designer.

  5. In Esplora server trascinare la tabella TaskList nella finestra Object Relational Designer.

  6. Salvare il file Tasks.dbml.

    Visual Web Developer crea il file Tasks.dbml.layout nella cartella App_Code in Tasks.dbml. Crea inoltre Tasks.designer.cs o Tasks.designer.vb, a seconda del linguaggio di programmazione utilizzato.

  7. In Esplora soluzioni aprire il file Tasks.designer.cs o Tasks.designer.vb.

    Il codice contiene le classi denominate TasksDataContext e TasksList. La classe TasksDataContext rappresenta il database, mentre la classe TasksList rappresenta la tabella di database. Il costruttore senza parametri per la classe TasksDataContext legge la stringa di connessione per il database dal file di configurazione del sito Web (Web.config).

  8. Aprire il file Web.config.

    Nell'elemento connectionStrings è stata aggiunta una stringa di connessione al database Tasks.

  9. Chiudere il file della classe e il file Web.config.

Creazione e configurazione di un controllo LinqDataSource

Dopo avere creato una tabella di database e le classi che rappresentano le entità del database, è possibile utilizzare un oggetto LinqDataSource in una pagina Web ASP.NET per accedere al database. Il controllo LinqDataSource rende disponibile LINQ agli sviluppatori Web tramite l'architettura dei controlli origine dati di ASP.NET.

Il controllo LinqDataSource crea il codice per la selezione, l'inserimento, l'aggiornamento e l'eliminazione di oggetti nel database. Queste classi possono essere chiamate dalla logica di business per eseguire le funzioni di database e applicare le regole della logica di business.

Per creare e configurare un controllo LinqDataSource

  1. Aprire la pagina Default.aspx oppure passare a questa pagina.

  2. Passare alla visualizzazione Progettazione.

  3. Dalla scheda Dati della Casella degli strumenti, trascinare un controllo LinqDataSource nella pagina Web.

    È possibile lasciare LinqDataSource1 come valore per la proprietà ID.

  4. Scegliere Configura origine dati nel pannello smart tag Attività LinqDataSource.

  5. Nell'oggetto contesto selezionare TasksDataContext, quindi scegliere Avanti.

  6. Nell'elenco, selezionare TasksLists(Tabella<TasksList>), quindi fare clic su Fine.

  7. Nel pannello smart tag Attività LinqDataSource selezionare le caselle di controllo Attiva Delete, Attiva Inserte Attiva Update.

    Per selezionare i dati non è stato necessario specificare comandi di database.

  8. Eseguire la pagina.

    Nella pagina vengono visualizzati i dati immessi in precedenza nella procedura dettagliata.

Passaggi successivi

In questa procedura dettagliata è stato illustrato come creare il livello di accesso ai dati e il livello di logica di business di un'applicazione utilizzando il modello Classi LINQ to SQL e il controllo server LinqDataSource. È stata creata una modalità di accesso ai dati da parte delle pagine del sito Web che sia flessibile e non collegata direttamente al livello di presentazione del sito Web.

Nell'argomento Procedura dettagliata: creazione di un'applicazione dati abilitata per AJAX viene utilizzato il controllo LinqDataSource per creare un'applicazione Web con supporto AJAX che visualizza e aggiorna le informazioni nel database Tasks.

Vedere anche

Attività

Procedura dettagliata: creazione di un'applicazione dati abilitata per AJAX

Concetti

Procedure dettagliate selezionate per ASP.NET