Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
von Scott Mitchell
Die Bereitstellung einer ASP.NET Webanwendung erfordert das Abrufen der erforderlichen Dateien und Ressourcen aus der Entwicklungsumgebung in die Produktionsumgebung. Für datengesteuerte Webanwendungen umfasst dies das Datenbankschema und die Daten. Dieses Lernprogramm ist der erste in einer Reihe, in der die Schritte untersucht werden, die zum erfolgreichen Bereitstellen der Datenbank aus der Entwicklungsumgebung in der Produktion erforderlich sind.
Einführung
Die Bereitstellung einer ASP.NET Webanwendung erfordert das Abrufen der erforderlichen Dateien und Ressourcen aus der Entwicklungsumgebung in die Produktionsumgebung. Im Laufe der letzten sechs Lernprogramme haben wir uns mit der Bereitstellung einer einfachen Book Reviews-Webanwendung befasst. Diese Demowebsite bestand aus einer Reihe serverseitiger Ressourcen – ASP.NET Seiten, Konfigurationsdateien, einer Web.sitemap Datei usw. – zusammen mit clientseitigen Ressourcen wie Bildern und CSS-Dateien. Aber was ist mit datengesteuerten Webanwendungen? Welche zusätzlichen Schritte müssen ausgeführt werden, um eine Webanwendung bereitzustellen, die eine Datenbank verwendet?
In den nächsten Lernprogrammen werden wir die Schritte behandeln, die zum Bereitstellen einer datengesteuerten Webanwendung erforderlich sind. In diesem Lernprogramm wird zunächst untersucht, wie Sie ein Datenbankschema und die Inhalte aus der Entwicklungsumgebung in die Produktionsumgebung abrufen, während im nachfolgenden Lernprogramm die erforderlichen Konfigurationsänderungen untersucht werden. Danach untersuchen wir Herausforderungen beim Bereitstellen einer Datenbank, die die Anwendungsdienste verwendet (Mitgliedschaft, Rollen, Profil usw.).
Überprüfung der Webanwendung für aktualisierte Buchbesprechungen
Um die Bereitstellung einer datengesteuerten Webanwendung zu veranschaulichen, habe ich die Webanwendung "Book Reviews" von einer einfachen, statischen Website auf eine datengesteuerte Webanwendung aktualisiert. Wie zuvor gibt es zwei Versionen der Anwendung im Download dieses Lernprogramms: eines, das das Webanwendungsprojektmodell verwendet und eines, das das Websiteprojektmodell verwendet.
Die aktualisierte Book Reviews-Webanwendung verwendet eine SQL Server 2008 Express Edition-Datenbank , die im Ordner der Website App_Data (~/App_Data/Reviews.mdf) gespeichert ist. Wenn AUF Ihrem Computer SQL Server 2008 installiert ist, sollte die Demo ohne Fehler ausgeführt werden. Wenn Sie über eine ältere Version von SQL Server verfügen, können Sie entweder die kostenlose SQL Server 2008 Express Edition installieren oder die in diesem Lernprogramm verfügbaren Datenbankskripts verwenden, um die Datenbank selbst zu erstellen.
Die Reviews.mdf Datenbank enthält vier Tabellen:
-
Genres- enthält einen Eintrag für jedes Genre, z. B. Technology, Fiction und Business. -
Books- enthält einen Datensatz für jede Überprüfung mit Spalten wieTitle,GenreId, ,ReviewDateundReview, unter anderem. -
Authors- enthält Informationen zu jedem Autor, der zu einem bewerteten Buch beigetragen hat. -
BooksAuthors- eine n:n-Verknüpfungstabelle, die angibt, welche Autoren welche Bücher geschrieben haben.
Abbildung 1 zeigt ein ER-Diagramm dieser vier Tabellen.
Abbildung 1: Die Datenbank der Webanwendung "Buchüberprüfungen" besteht aus vier Tabellen (Zum Anzeigen des Bilds mit voller Größe klicken)
Die vorherige Version der Website "Buchrezensionen" verfügte über eine separate ASP.NET Seite für jedes Buch. Beispielsweise gab es eine Seite mit dem Namen ~/Tech/TYASP35.aspx , die die Rezension für "Lernen Sie selbst ASP.NET 3,5 in 24 Stunden" enthielt. Diese neue datengesteuerte Version der Website enthält die Rezensionen in der Datenbank und eine einzelne ASP.NET Seite, Review.aspx?ID=bookId, die die Rezension für das angegebene Buch anzeigt. Ebenso gibt es eine Genre.aspx?ID=genreId-Seite , die die überprüften Bücher im angegebenen Genre auflistet.
Abbildungen 2 und 3 zeigen die Genre.aspx und die Review.aspx Seiten in Aktion. Notieren Sie sich die URL in der Adressleiste für jede Seite. In Abbildung 2 ist es Genre.aspx?ID=85d164ba-1123-4c47-82a0-c8ec75de7e0e. Da 85d164ba-1123-4c47-82a0-c8ec75de7e0e der GenreId Wert für das Technologie-Genre ist, trägt die Seitenüberschrift "Technology Reviews" und die Liste der Bewertungen auf der Website zählt diejenigen auf, die unter dieses Genre fallen.
Abbildung 2: Die Seite "Technologiegenre" (Klicken Sie hier, um das Bild in voller Größe anzuzeigen)
Die Rezension zu "Teach Yourself ASP.NET 3.5 in 24 Hours"
Abbildung 3: Die Rezension zu Teach Yourself ASP.NET 3.5 in 24 Stunden (Klicken Sie hier, um das Bild in voller Größe anzuzeigen)
Die Webanwendung "Book Reviews" enthält auch einen Verwaltungsabschnitt, in dem Administratoren Genres, Rezensionen und Autoreninformationen hinzufügen, bearbeiten und löschen können. Derzeit kann jeder Besucher auf den Verwaltungsabschnitt zugreifen. In einem zukünftigen Tutorial fügen wir Unterstützung für Benutzerkonten hinzu und gewähren nur autorisierten Benutzern Zugriff auf die Administrationsseiten.
Wenn Sie die Anwendung "Book Reviews" herunterladen, denken Sie bitte daran, dass der Zweck darin besteht, die Bereitstellung einer datengesteuerten Anwendung zu demonstrieren. Es stellt keine bewährten Methoden für anwendungsdesigns aus. Beispielsweise gibt es keine separate Datenzugriffsebene (DATA Access Layer, DAL); die ASP.NET Seiten kommunizieren direkt mit der Datenbank über das SqlDataSource-Steuerelement oder ADO.NET Code in ihren CodeBehind-Klassen. Ausführlichere Informationen zum Erstellen von datengesteuerten Anwendungen mithilfe einer mehrstufigen Architektur finden Sie in meinen Lernprogrammen zum Arbeiten mit Daten.
Datenbanken zur Entwicklung im Vergleich zur Produktion
Wenn Sie mit der Entwicklung einer datengesteuerten Webanwendung beginnen, müssen Sie eine Datenbankverbindungszeichenfolge angeben, die die Anwendungsdetails zum Herstellen einer Verbindung mit der Datenbank bereitstellt. Diese Verbindungszeichenfolge gibt unter anderem den Datenbankserver, den Datenbanknamen und Sicherheitsinformationen an. Am häufigsten unterscheidet sich die Datenbank, die während der Entwicklung von der Anwendung verwendet wird, von der Datenbank, die bei der Produktion verwendet wird. Es gibt viele Vorteile der Verwendung verschiedener Datenbanken für die Entwicklung im Vergleich zur Produktion. Wenn Sie eine andere Datenbank in der Entwicklung haben, müssen Sie sich keine Gedanken darüber machen, dass Sie Livedaten versehentlich ändern oder löschen. Außerdem können Sie Dummy-Testdaten einfügen oder grundlegende Änderungen am Datenmodell vornehmen, ohne sich Gedanken über die Auswirkungen auf die Anwendung in der Produktion machen zu müssen. Der Nachteil einer anderen Datenbank in den Entwicklungs- und Produktionsumgebungen besteht darin, dass bei der Bereitstellung der Anwendung die Datenbank und alle relevanten Änderungen am Datenbankschema oder den Daten ebenfalls bereitgestellt werden müssen.
Vor der ersten Bereitstellung gibt es nur eine Instanz der Datenbank, und diese Instanz befindet sich in der Entwicklungsumgebung. Beim erstmaligen Bereitstellen der Anwendung in der Produktion dürfen wir nicht nur die erforderlichen serverseitigen und clientseitigen Dateien kopieren, sondern auch die Datenbank aus der Entwicklungsumgebung in die Produktionsumgebung kopieren. Hier stehen wir gerade mit der Book Reviews-Webanwendung – die Datenbank befindet sich im App_Data Ordner in unserer Entwicklungsumgebung, wurde aber noch nicht in die Produktionsumgebung verschoben.
Sobald die Anwendung bereitgestellt wurde, gibt es zwei Kopien der Datenbank. Da die Anwendung reift, können neue Features hinzugefügt werden, was eine Änderung des Datenmodells erfordert (z. B. hinzufügen neuer Spalten zu vorhandenen Tabellen, Änderungen an vorhandenen Spalten, Hinzufügen neuer Tabellen usw.). Wenn die Webanwendung als nächstes bereitgestellt wird, müssen die Änderungen, die auf die Datenbank in der Entwicklungsumgebung angewendet wurden, seit der letzten Bereitstellung auf die Produktionsdatenbank angewendet werden. Einige Strategien für die Verwaltung dieses Prozesses werden in einem zukünftigen Lernprogramm erläutert. Dieses Tutorial konzentriert sich auf die Bereitstellung der gesamten Datenbank aus der Entwicklungsumgebung in die Produktionsumgebung.
Bereitstellen der Datenbank in der Produktionsumgebung
Im restlichen Lernprogramm wird erläutert, wie Sie die Datenbank aus der Entwicklungsumgebung in der Produktionsumgebung bereitstellen. Wenn Sie den Anweisungen folgen, müssen Sie sicherstellen, dass Ihr Konto bei Ihrem Webhostanbieter Unterstützung für Microsoft SQL Server-Datenbanken umfasst. Sie müssen auch einige Informationen zur Hand haben, nämlich den Datenbankservernamen, den Datenbanknamen und den Benutzernamen und das Kennwort, mit dem eine Verbindung mit der Datenbank hergestellt wird.
Wie weiter oben in diesem Lernprogramm erwähnt, ist die Datenbank der Book Reviews-Website eine SQL Server 2008 Express Edition-Datenbank, die App_Data im Ordner gespeichert ist. Die Bereitstellung einer solchen Datenbank wäre so einfach wie das Kopieren des App_Data Ordners aus der Entwicklungsumgebung in die Produktionsumgebung. Die meisten Webhostanbieter unterstützen jedoch das Hosten von Datenbanken im App_Data Ordner aufgrund von Sicherheitsgründen nicht. Stattdessen stellen Webhosts ein Konto auf einem SQL Server-Datenbankserver in ihrer Umgebung bereit. Die Bereitstellung der Datenbank aus Ihrer Entwicklungsumgebung in der Produktionsumgebung erfordert, dass Ihre Datenbank auf dem Webserver des Webhosts registriert wird.
Wie erhalten Sie Ihre Datenbank aus der Entwicklungsumgebung in die Produktionsumgebung? Es gibt eine Reihe von Möglichkeiten, dies zu erreichen, je nachdem, welche Dienste Ihr Webhost anbietet. Bei einigen Hosts, z. B. DiscountASP.NET, können Sie eine Sicherung der Datenbank oder der tatsächlichen .mdf Datei auf Ihre Website übertragen und dann aus der Systemsteuerung die Sicherungsdatei wiederherstellen oder die .mdf Datei an den SQL Server-Datenbankserver anfügen. Bei solchen Tools ist die Bereitstellung der Datenbank so einfach wie das Kopieren des App_Data Ordners in die Produktionsumgebung und anschließendes Anfügen über die Systemsteuerung. Dies ist vielleicht die einfachste und schnellste Möglichkeit, Ihre Datenbank zum ersten Mal zu veröffentlichen.
Ein weiterer Ansatz besteht darin, den Datenbankveröffentlichungs-Assistenten zu verwenden. Der Datenbankveröffentlichungs-Assistent ist eine Windows-Desktopanwendung, die die SQL-Befehle generiert, um das Schema Ihrer Datenbank zu erstellen– die Tabellen, gespeicherten Prozeduren, Ansichten, benutzerdefinierte Funktionen usw. und optional die Daten in den zugehörigen Tabellen. Anschließend können Sie eine Verbindung mit dem Datenbankserver Ihres Webhostanbieters über SQL Server Management Studio herstellen und dann dieses Skript ausführen, um die Datenbank in der Produktion zu duplizieren. Noch besser, wenn Ihr Webhostanbieter Microsoft-Datenbankveröffentlichungsdienste unterstützt, können Sie das skript vom Datenbankveröffentlichungs-Assistenten automatisch auf dem Datenbankserver in Ihrem Auftrag ausgeführt haben. Da der Datenbankveröffentlichungs-Assistent ein Skript generiert, das das Schema und die Daten der Datenbank erstellt, funktioniert es unabhängig davon, ob Ihr Webhostanbieter Features wie das Anfügen einer hochgeladenen .mdf Datei bietet.
Generieren der SQL-Befehle zum Erstellen des Datenbankschemas und der Daten mithilfe des Datenbankveröffentlichungs-Assistenten
Im Folgenden wird beschrieben, wie der Datenbankveröffentlichungs-Assistent verwendet wird, um die Buchrezensionen-Datenbank in der Produktionsumgebung bereitzustellen. Wenn Sie Visual Studio 2008 oder höher verwenden, ist der Datenbankveröffentlichungs-Assistent bereits installiert.
Öffnen Sie Visual Studio, und navigieren Sie zu der Reviews.mdf Datenbank. Wenn Sie Visual Web Developer verwenden, wechseln Sie zum Datenbank-Explorer. Wenn Sie Visual Studio verwenden, verwenden Sie den Server-Explorer. Abbildung 4 zeigt die Reviews.mdf Datenbank im Datenbank-Explorer in Visual Web Developer. Wie in Abbildung 4 dargestellt, besteht die Reviews.mdf Datenbank aus vier Tabellen, drei gespeicherten Prozeduren und einer benutzerdefinierten Funktion.
Abbildung 4: Suchen der Datenbank im Datenbank-Explorer oder Server-Explorer (Klicken Sie hier, um das Bild in voller Größe anzuzeigen)
Klicken Sie mit der rechten Maustaste auf den Datenbanknamen, und wählen Sie im Kontextmenü die Option "Im Anbieter veröffentlichen" aus. Dadurch wird der Assistent für die Datenbankveröffentlichung gestartet (siehe Abbildung 5). Klicken Sie auf "Weiter", um den Startbildschirm zu überspringen.
Abbildung 5: Begrüßungsbildschirm des Datenbankveröffentlichungs-Assistenten (Klicken Sie hier, um das Bild in voller Größe anzuzeigen)
Der zweite Bildschirm im Assistent listet die Datenbanken auf, auf die der Datenbankveröffentlichungs-Assistent zugreifen kann, und Sie können auswählen, ob Sie alle Objekte in der ausgewählten Datenbank zu skripten oder bestimmte Objekte zu skripten möchten. Wählen Sie die entsprechende Datenbank aus, und lassen Sie die Option "Alle Objekte in der ausgewählten Datenbank skripten" aktiviert.
Hinweis
Wenn beim Klicken auf "Weiter im Bildschirm in Abbildung 6" die Fehlermeldung "Es gibt keine Objekte in datenbankdatenbankname der Typen, die von diesem Assistenten skriptfähig sind" angezeigt wird, stellen Sie sicher, dass der Pfad zu Ihrer Datenbankdatei nicht übermäßig lang ist. Dieser Fehler kann auftreten, wenn der Pfad zur Datenbankdatei zu lang ist.
Abbildung 6: Begrüßungsbildschirm des Datenbankveröffentlichungs-Assistenten (Klicken Sie hier, um das Bild in voller Größe anzuzeigen)
Auf dem nächsten Bildschirm können Sie eine Skriptdatei generieren oder, wenn Ihr Webhost sie unterstützt, die Datenbank direkt auf dem Datenbankserver des Webhostanbieters veröffentlichen. Wie in Abbildung 7 dargestellt, habe ich das Skript in die Datei C:\REVIEWS.MDF.sqlgeschrieben.
Abbildung 7: Skripten der Datenbank in eine Datei oder Direktes Veröffentlichen in Ihrem Webhostanbieter (Klicken Sie hier, um das Bild in voller Größe anzuzeigen)
Auf dem nachfolgenden Bildschirm werden Sie aufgefordert, eine Vielzahl von Skriptoptionen auszuwählen. Sie können angeben, ob das Skript Drop-Anweisungen enthalten soll, um diese vorhandenen Objekte zu entfernen. Dies ist standardmäßig auf "True" festgelegt, was beim erstmaligen Bereitstellen einer Datenbank in Ordnung ist. Sie können auch angeben, ob die Zieldatenbank SQL Server 2000, SQL Server 2005 oder SQL Server 2008 ist. Schließlich können Sie angeben, ob Sie das Schema und die Daten, nur die Daten oder nur das Schema skripten möchten. Das Schema ist die Auflistung von Datenbankobjekten, tabellen, gespeicherten Prozeduren, Ansichten usw. Die Daten sind die Informationen, die sich in den Tabellen befinden.
Wie in Abbildung 8 dargestellt, habe ich den Assistenten zum Ablegen vorhandener Datenbankobjekte, zum Generieren von Skripts für eine SQL Server 2008-Datenbank und zum Veröffentlichen des Schemas und der Daten konfiguriert.
Abbildung 8: Angeben der Veröffentlichungsoptionen (Klicken Sie hier, um das Bild in voller Größe anzuzeigen)
Die letzten beiden Bildschirme fassen die Aktionen zusammen, die in Kürze ausgeführt werden sollen, und zeigen dann den Skriptstatus an. Das Nettoergebnis der Ausführung des Assistenten besteht darin, dass wir über eine Skriptdatei verfügen, die die SQL-Befehle enthält, die zum Erstellen der Datenbank in der Produktion erforderlich sind, und sie mit denselben Daten wie bei der Entwicklung auffüllen.
Ausführen der SQL-Befehle in der Produktionsumgebungsdatenbank
Da wir nun über das Skript verfügen, das die SQL-Befehle enthält, um die Datenbank und die zugehörigen Daten zu erstellen, besteht alles darin, das Skript in der Produktionsdatenbank auszuführen. Einige Webhostanbieter bieten ein Textfeld in der Systemsteuerung an, in dem Sie SQL-Befehle eingeben können, die in Ihrer Datenbank ausgeführt werden sollen. Wenn Sie über eine sehr große Skriptdatei verfügen, funktioniert diese Option möglicherweise nicht (die REVIEWS.MDF.sql Skriptdatei ist beispielsweise größer als 425 KB).
Ein besserer Ansatz besteht darin, eine direkte Verbindung mit dem Produktionsdatenbankserver mithilfe von SQL Server Management Studio (SSMS) herzustellen. Wenn auf Ihrem Computer eine Nicht-Express Edition von SQL Server installiert ist, ist SSMS wahrscheinlich bereits installiert. Andernfalls können Sie eine kostenlose Kopie von SQL Server Management Studio Express Edition herunterladen und installieren .
Starten Sie SSMS, und stellen Sie eine Verbindung mit dem Datenbankserver Ihres Webhosts her, indem Sie die von Ihrem Webhostanbieter bereitgestellten Informationen verwenden.
Abbildung 9: Herstellen einer Verbindung mit dem Datenbankserver ihres Webhostanbieters (Klicken Sie hier, um das Bild in voller Größe anzuzeigen)
Erweitern Sie die Registerkarte "Datenbanken", und suchen Sie ihre Datenbank. Klicken Sie in der oberen linken Ecke der Symbolleiste auf die Schaltfläche "Neue Abfrage", fügen Sie die SQL-Befehle aus der Skriptdatei ein, die vom Assistenten zum Veröffentlichen von Datenbanken erstellt wurde, und klicken Sie auf die Schaltfläche "Ausführen", um diese Befehle auf dem Produktionsdatenbankserver auszuführen. Wenn Ihre Skriptdatei besonders groß ist, kann es mehrere Minuten dauern, bis die Befehle ausgeführt werden.
Abbildung 10: Herstellen einer Verbindung mit dem Datenbankserver ihres Webhostanbieters (Klicken Sie hier, um das Bild in voller Größe anzuzeigen)
Das ist schon alles! An diesem Punkt wurde die Entwicklungsdatenbank in die Produktion dupliziert. Wenn Sie die Datenbank in SSMS aktualisieren, sollten die neuen Datenbankobjekte angezeigt werden. Abbildung 11 zeigt die Tabellen der Produktionsdatenbank, gespeicherte Prozeduren und benutzerdefinierte Funktionen, die diese in der Entwicklungsdatenbank spiegeln. Und da wir den Datenbankveröffentlichungs-Assistenten angewiesen haben, die Daten zu veröffentlichen, weisen die Tabellen der Produktionsdatenbank dieselben Daten wie die Tabellen der Entwicklungsdatenbank zum Zeitpunkt der Ausführung des Assistenten auf. Abbildung 12 zeigt die Daten in der Books Tabelle in der Produktionsdatenbank.
Abbildung 11: Die Datenbankobjekte wurden in der Produktionsdatenbank dupliziert (Klicken Sie hier, um das Bild in voller Größe anzuzeigen)
Abbildung 12: Die Produktionsdatenbank enthält dieselben Daten wie in der Entwicklungsdatenbank (Klicken Sie hier, um das Bild in voller Größe anzuzeigen)
An diesem Punkt haben wir die Entwicklungsdatenbank nur für die Produktion bereitgestellt. Wir haben uns noch nicht mit der Bereitstellung der Webanwendung selbst befasst oder untersucht, welche Konfigurationsänderungen erforderlich sind, damit die Anwendung für die Produktionsdatenbank verwendet wird. Wir besprechen diese Themen im nächsten Tutorial!
Zusammenfassung
Die Bereitstellung einer datengesteuerten Webanwendung erfordert das Kopieren der Datenbank, die während der Entwicklung in die Produktionsumgebung verwendet wird. Viele Webhostanbieter bieten Tools zur Vereinfachung des Bereitstellungsprozesses einer Datenbank. Beispielsweise können Sie mit DiscountASP.NET Ihre Datenbankdatei .mdf (oder eine Sicherung) ftpen und dann die Datenbank über die Systemsteuerung an den Datenbankserver anfügen. Eine weitere Option, die unabhängig davon funktioniert, welche Features Ihr Webhostanbieter bietet, ist das Tool des Microsoft Database Publishing Wizard, das ein Skript von SQL-Befehlen generiert, um das Schema und die Daten der Entwicklungsdatenbank zu erstellen. Nachdem dieses Skript generiert wurde, können Sie es in der Produktionsdatenbank ausführen.
Da sich die Datenbank der Webanwendung "Book Reviews" in der Produktion befindet, können wir die Anwendung bereitstellen. Die Konfigurationsinformationen der Webanwendung geben jedoch die Verbindungszeichenfolge mit der Datenbank an, und diese Verbindungszeichenfolge verweist auf die Entwicklungsdatenbank. Diese Verbindungszeichenfolgeninformationen müssen aktualisiert werden, wenn die Website in der Produktivumgebung bereitgestellt wird. Das nächste Lernprogramm befasst sich mit diesen Konfigurationsunterschieden und führt die Schritte durch, die zum Veröffentlichen der datengesteuerten Book Reviews-Website in der Produktion erforderlich sind.
Glückliche Programmierung!
Weiterführende Lektüre
Weitere Informationen zu den in diesem Lernprogramm erläuterten Themen finden Sie in der folgenden Ressource: