Freigeben über


Exemplarische Vorgehensweise: Erstellen der Datenzugriffs- und Geschäftslogikschichten in ASP.NET

Aktualisiert: November 2007

Wenn Sie in ASP.NET mit Daten arbeiten, profitieren Sie davon, dass Sie gängige Softwaremuster verwenden. Eines dieser Muster besteht darin, den Datenzugriffscode von dem Geschäftslogikcode zu trennen, der den Zugriff auf die Daten regelt oder andere Geschäftsregeln bereitstellt. Bei diesem Muster sind diese beiden Schichten von der Darstellungsschicht getrennt, die die Seiten umfasst, auf die Besucher der Website zum Anzeigen oder Ändern von Daten zugreifen.

ASP.NET kann die Trennung zwischen Datenzugriff, Geschäftslogik und Darstellung auf verschiedene Arten erreichen. Das Datenquellenmodell, das Serversteuerelemente wie LinqDataSource und ObjectDataSource enthält, trennt die Darstellungsschicht z. B. vom Datenzugriffscode und von der Geschäftslogik.

Ein anderes Muster besteht darin, die Datenzugriffslogik direkt in die ASP.NET-Seiten (die Darstellungsschicht) einzubinden. Sie können z. B. ADO.NET-Code in die Code-Behind-Seite der ASP.NET-Seite schreiben oder das SqlDataSource-Steuerelement verwenden. Bei diesem Ansatz wird die Datenzugriffslogik fest mit der Darstellungsschicht verbunden.

Dabei wird empfohlen, die Datenzugriffslogik von der Darstellungsschicht zu trennen. Diese separate Schicht wird als Datenzugriffsschicht bezeichnet. Die Datenzugriffsschicht kann als separates Klassenbibliotheksprojekt implementiert werden. Sie können in Visual Web Developer jedoch auch Tools verwenden, um eine Datenzugriffsschicht zu generieren.

Hinweis:

In Microsoft Visual Web Developer Express Edition können Sie kein Klassenbibliotheksprojekt erstellen. Sie können jedoch ein separates Projekt erstellen, indem Sie Visual Basic Express Edition oder Visual C# Express Edition verwenden und die Ausgabe dieser Klasse als Assembly (DLL) in die Website einfügen.

Wenn die Website Daten anzeigt oder aktualisiert, sollten Sie eine Datenzugriffsschicht und eine Geschäftslogikschicht erstellen, bevor Sie die Benutzeroberfläche erstellen.

Eine datengesteuerte Webanwendung enthält normalerweise eine Datenzugriffsschicht, indem typisierte Datasets oder Entitätsklassen verwendet werden, die die Daten darstellen. Außerdem ist eine Geschäftslogikschicht vorhanden, die benutzerdefinierte Geschäftsregeln durchsetzt. Die Darstellungsschicht wird bereitgestellt, indem ASP.NET-Seiten verwendet werden. Zusätzlich werden Masterseiten und Designs verwendet, um ein einheitliches Seitenlayout zu erzielen. In dieser exemplarischen Vorgehensweise wird erläutert, wie Sie eine Datenzugriffsschicht erstellen.

Die Datenzugriffsschicht enthält den gesamten spezifischen Code der zugrunde liegenden Datenquelle. Dazu gehört Code, der eine Verbindung zur Datenbank herstellt und die Befehle Select, Insert, Update und Delete ausgibt. Die Datenzugriffsschicht enthält in der Regel Klassen, die Methoden für den Zugriff auf die zugrunde liegenden Datenbankdaten implementieren. In der Darstellungsschicht wird nicht direkt mit Daten gearbeitet. Stattdessen werden für alle Datenanforderungen Klassen und Methoden in der Datenzugriffsschicht aufgerufen.

In dieser exemplarischen Vorgehensweise werden u. a. die folgenden Aufgaben veranschaulicht:

  • Erstellen einer SQL-Datenbank und Hinzufügen von Daten

  • Hinzufügen einer LINQ to SQL-Datei, die als Datenzugriffsschicht fungiert

  • Erstellen einer Seite, die als Darstellungsschicht fungiert

  • Hinzufügen eines LinqDataSource-Steuerelements zu einer Seite, das die Kommunikation zwischen der Darstellungsschicht und der Datenzugriffsschicht ermöglicht.

Vorbereitungsmaßnahmen

Zum Durchführen der exemplarischen Vorgehensweise benötigen Sie Folgendes:

  • Microsoft Visual Studio 2008 oder Microsoft Visual Web Developer Express Edition. Informationen zum Herunterladen finden Sie auf der Website Visual Studio Developer Center (möglicherweise in englischer Sprache).

  • Der .NET Framework Version 3.5.

  • SQL Server Express Edition. Wenn Sie Microsoft SQL Server installiert haben, können Sie auch diese Version verwenden.

Erstellen einer Website

Der erste Schritt besteht darin, eine Website zu erstellen.

So erstellen Sie eine neue Dateisystem-Website

  1. Öffnen Sie Visual Studio 2008 oder Visual Web Developer Express Edition.

  2. Klicken Sie im Menü Datei nacheinander auf Neu und auf Website.

    Das Dialogfeld Neue Website wird angezeigt.

  3. Wählen Sie unter Von Visual Studio installierte Vorlagen die Option ASP.NET-Website aus.

  4. Klicken Sie im Feld Speicherort auf Dateisystem, und geben Sie den Namen des Ordners ein, in dem Sie die Websitedateien speichern möchten.

    Geben Sie z. B. C:\BasicWebSite ein.

  5. Klicken Sie im Listenfeld Sprache auf Visual Basic oder Visual C#, und klicken Sie dann auf OK.

    Hinweis:

    Die Programmiersprache, die Sie auswählen, ist die Standardeinstellung für die Website. Sie können die Programmiersprache jedoch auch für jede Seite einzeln festlegen.

    Visual Web Developer erstellt den Ordner und die neue Seite Default.aspx.

Herstellen einer Verbindung zu einer Datenbank

Der nächste Schritt besteht darin, eine Verbindung zu einer Datenbank in Visual Web Developer herzustellen, indem Sie das Fenster Server-Explorer verwenden. (In Visual Web Developer Express Edition hat das Fenster den Namen Datenbank-Explorer.) Wenn Sie im Server-Explorer eine Verbindung zu einer Datenbank herstellen, können Sie innerhalb von Visual Studio Tabellen, gespeicherte Prozeduren, Ansichten und andere Datenbankelemente hinzufügen. Sie können Tabellendaten anzeigen oder Abfragen erstellen, indem Sie manuell vorgehen oder indem Sie das Fenster Abfrage-Generator verwenden.

Beim Erstellen des typisierten Datasets für die Datenzugriffsschicht in dieser exemplarischen Vorgehensweise müssen Sie in Visual Web Developer eine Verbindung zur Datenbank herstellen. Dabei können Sie die Verbindungsinformationen manuell angeben. Visual Web Developer kann diesen Prozess jedoch vereinfachen, da die Anwendung automatisch eine Liste der Datenbanken anlegt, die im Server-Explorer bereits registriert sind.

In dieser exemplarischen Vorgehensweise erstellen Sie zum Verfolgen von Aufgabenelementen eine neue Datenbank.

Erstellen einer neuen SQL Server Express-Datenbank

In diesem Abschnitt erstellen Sie eine neue SQL Server Express-Datenbank, in der Aufgabeninformationen für eine Aufgabenliste gespeichert werden.

So fügen Sie der Website eine Datenbank hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Namen der Website, und klicken Sie dann auf Neues Element hinzufügen.

    Das Fenster Neues Element hinzufügen wird angezeigt.

  2. Wählen Sie SQL-Datenbank, und geben Sie der Datenbank den Namen Tasks.mdf.

  3. Klicken Sie auf OK.

  4. Klicken Sie auf Ja, wenn Visual Web Developer Sie fragt, ob die Datenbank im Ordner App_Data gespeichert werden soll.

Erstellen eines Schemas und von Beispieldaten für die Aufgabendatenbank

Sie können die Entwurfs- und Bearbeitungsfunktionen der Datenbank verwenden, um ein Schema für die Tabelle zu erstellen, in der die Aufgabenelemente gespeichert sind.

So definieren Sie ein Schema und fügen der Aufgabendatenbank Daten hinzu

  1. Öffnen Sie im Projektmappen-Explorer den Ordner App_Data, und doppelklicken Sie auf Tasks.mdf.

    Die Aufgabendatenbank wird im Server-Explorer geöffnet.

  2. Klicken Sie mit der rechten Maustaste auf den Ordner Tabellen, und klicken Sie auf Neue Tabelle hinzufügen.

    Das Fenster mit der Tabellendefinition wird angezeigt.

  3. Erstellen Sie in der Tabelle die folgenden Spalten:

    Spaltenname

    Datentyp

    Eigenschaften

    taskId

    int

    Nicht 0 (null)

    name

    nvarchar(50)

    Nicht 0 (null)

    dateCreated

    DateTime

    Nicht 0 (null)

    isComplete

    bit

    Nicht 0 (null)

  4. Wählen Sie die Zeile für die taskId-Spalte aus, klicken Sie mit der rechten Maustaste auf die Zeile, und klicken Sie dann auf Primärschlüssel festlegen.

  5. Wählen Sie die taskid-Zeile aus, und suchen Sie im Fenster Spalteneigenschaften dann den Abschnitt Identitätsspezifikation.

  6. Öffnen Sie den Abschnitt, und setzen Sie (Ist Identity) auf Ja.

  7. Speichern Sie die Tabelle, geben Sie ihr den Namen TasksList, und schließen Sie das Fenster mit der Tabellendefinition.

  8. Klicken Sie im Server-Explorer mit der rechten Maustaste auf die Tabelle, und klicken Sie auf Tabellendaten anzeigen.

    Es wird ein Bearbeitungsfenster angezeigt, in dem Sie die Daten anzeigen, hinzufügen und bearbeiten können.

  9. Fügen Sie der Tabelle vier oder fünf Datensätze hinzu.

    Sie müssen für die taskId-Spalte keinen Wert angeben, da es sich um eine Identitätsspalte handelt, deren Wert automatisch zugewiesen wird.

  10. Schließen Sie das Bearbeitungsfenster.

Erstellen der Datenzugriffs- und Geschäftslogikschicht

Sie können die Datenzugriffs- und Geschäftslogikschicht für die gerade angelegte Datenbank auf verschiedene Arten erstellen. In dieser exemplarischen Vorgehensweise erstellen Sie eine Klasse, die Datenbankentitäten darstellt. Sie können diesen erstellten Klassen dann eine eigene Geschäftslogik hinzufügen. (In dieser exemplarischen Vorgehensweise fügen Sie den Klassen keine Geschäftslogik hinzu.)

In dieser exemplarischen Vorgehensweise verwenden Sie die sprachintegrierte Abfrage (Language Integrated Query, LINQ), um mit Daten zu arbeiten. LINQ wendet die Prinzipien der objektorientierten Programmierung auf relationale Daten an. LINQ stellt ein einheitliches Programmiermodell zum Abfragen und Aktualisieren von Daten aus verschiedenen Datenquellentypen bereit und erweitert direkt die Datenfunktionen der Sprachen C# und Visual Basic. Weitere Informationen zu LINQ finden Sie unter Sprachintegrierte Abfrage (Language-Integrated Query, LINQ).

Sie verwenden LINQ to SQL-Klassen als Datenzugriffsschicht. Außerdem verwenden Sie das Fenster O/R-Designer in Visual Web Developer, um Entitätsklassen zu generieren, die Daten darstellen.

Zuordnen der Aufgabendatenbank zu einer SQL-Datenkontextklasse

Um mit dem Erstellen der Datenzugriffsschicht zu beginnen, fügen Sie dem Projekt ein typisiertes Dataset hinzu.

So erstellen Sie eine Klasse für die Aufgabentabelle

  1. Wenn die Website nicht bereits über den Ordner App_Code verfügt, klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, klicken Sie auf ASP.NET-Ordner hinzufügen, und klicken Sie dann auf App_Code.

  2. Klicken Sie mit der rechten Maustaste auf den Ordner App_Code, und klicken Sie dann auf Neues Element hinzufügen.

    Das Dialogfeld Neues Element hinzufügen wird angezeigt.

  3. Wählen Sie unter Von Visual Studio installierte Vorlagen die Vorlage LINQ to SQL-Klassen aus, und benennen Sie die Datei in Tasks.dbml um.

  4. Klicken Sie auf Hinzufügen.

    Das Fenster O/R-Designer wird angezeigt.

  5. Ziehen Sie im Server-Explorer die Tabelle TasksList (Aufgabenliste) ins Fenster O/R-Designer.

  6. Speichern Sie die Datei Tasks.dbml.

    Visual Web Developer erstellt die Datei Tasks.dbml.layout im Ordner App_Code unter Tasks.dbml. Außerdem wird die Datei Tasks.designer.cs bzw. Tasks.designer.vb erstellt. Dies hängt davon ab, in welcher Programmiersprache Sie arbeiten.

  7. Öffnen Sie im Projektmappen-Explorer die Datei Tasks.designer.cs bzw. Tasks.designer.vb.

    Beachten Sie, dass der Code Klassen mit den Namen TasksDataContext und TasksList enthält. Die TasksDataContext-Klasse stellt die Datenbank dar, und die TasksList stellt die Datenbanktabelle dar. Der parameterlose Konstruktor für die TasksDataContext-Klasse liest die Verbindungszeichenfolge für die Datenbank aus der Konfigurationsdatei (Web.config) der Website aus.

  8. Öffnen Sie die Datei Web.config.

    Beachten Sie, dass im connectionStrings-Element eine Verbindungszeichenfolge für die Aufgabendatenbank hinzugefügt wurde.

  9. Schließen Sie die Klassendatei und die Datei Web.config.

Erstellen und Konfigurieren eines LinqDataSource-Steuerelements

Da Sie nun über eine Datenbanktabelle und über Klassen verfügen, die Datenbankentitäten darstellen, können Sie ein LinqDataSource-Steuerelement auf einer ASP.NET-Webseite verwenden, um auf die Datenbank zuzugreifen. Das LinqDataSource-Steuerelement stellt LINQ mithilfe der ASP.NET-Datenquellensteuerelement-Architektur für Webentwickler bereit.

Das LinqDataSource-Steuerelement erstellt den Code zum Auswählen, Einfügen, Aktualisieren und Löschen von Objekten in der Datenbank. Diese Klassen können von der Geschäftslogik aufgerufen werden, um Datenbankfunktionen auszuführen und Geschäftslogikregeln anzuwenden.

So erstellen und konfigurieren Sie ein LinqDataSource-Steuerelement

  1. Öffnen Sie die Seite Default.aspx, oder wechseln Sie zu dieser Seite.

  2. Wechseln Sie zur Ansicht Entwurf.

  3. Ziehen Sie aus der Registerkarte Daten der Toolbox ein LinqDataSource-Steuerelement auf die Webseite.

    Sie können die ID-Eigenschaft LinqDataSource1 übernehmen.

  4. Klicken Sie im Smarttagbereich LinqDataSource-Aufgaben auf Datenquelle konfigurieren.

  5. Wählen Sie in der Kontextobjektliste den Eintrag TasksDataContext aus, und klicken Sie dann auf Weiter.

  6. Wählen Sie in der Liste den Eintrag TasksLists(Table<TasksList>) aus, und klicken Sie dann auf Fertig stellen.

  7. Aktivieren Sie im Smarttagbereich LinqDataSource-Aufgaben die Kontrollkästchen Löschen aktivieren, Einfügen aktivieren und Aktualisieren aktivieren.

    Beachten Sie, dass Sie keine Datenbankbefehle zum Auswählen der Daten angeben müssen.

  8. Führen Sie die Seite aus.

    Die Seite zeigt die Daten an, die Sie in der exemplarischen Vorgehensweise vorher eingegeben haben.

Nächste Schritte

Diese exemplarische Vorgehensweise zeigt, wie Sie die Datenzugriffs- und Geschäftslogikschicht für eine Anwendung erstellen, indem Sie die Vorlage LINQ to SQL-Klassen und das LinqDataSource-Serversteuerelement verwenden. Sie haben es den Seiten der Website ermöglicht, auf flexible Weise und ohne direkte Anbindung an die Darstellungsschicht der Website auf Daten zuzugreifen.

Im Thema Exemplarische Vorgehensweise: Erstellen einer AJAX-fähigen Datenanwendung wird das LinqDataSource-Steuerelement verwendet, um eine AJAX-fähige Webanwendung zu erstellen, die die Informationen der Aufgabendatenbank anzeigt und aktualisiert.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Erstellen einer AJAX-fähigen Datenanwendung

Konzepte

Exemplarische Vorgehensweisen in Verbindung mit ASP.NET