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 Tom Dykstra
In dieser Reihe von Lernprogrammen erfahren Sie, wie Sie ein ASP.NET Webanwendungsprojekt bereitstellen (veröffentlichen), das eine SQL Server Compact-Datenbank mit Visual Studio 2012 RC oder Visual Studio Express 2012 RC für Web enthält. Sie können Visual Studio 2010 auch verwenden, wenn Sie das Web Publish Update installieren. Eine Einführung in die Reihe finden Sie im ersten Lernprogramm in der Reihe.
Ein Lernprogramm, das Bereitstellungsfeatures zeigt, die nach der RC-Version von Visual Studio 2012 eingeführt wurden, zeigt, wie Sie andere SQL Server-Editionen als SQL Server Compact bereitstellen und wie Sie in Azure App Service Web Apps bereitstellen, siehe ASP.NET Web Deployment mit Visual Studio.
Übersicht
In diesem Lernprogramm nehmen Sie eine Datenbankänderung und zugehörige Codeänderungen vor, testen die Änderungen in Visual Studio und stellen dann das Update sowohl in der Test- als auch in der Produktionsumgebung bereit.
Erinnerung: Wenn Beim Durchlaufen des Lernprogramms eine Fehlermeldung angezeigt wird oder etwas nicht funktioniert, überprüfen Sie unbedingt die Problembehandlungsseite.
Hinzufügen einer neuen Spalte zu einer Tabelle
In diesem Abschnitt fügen Sie der Person-Basisklasse für die Student- und Instructor-Entitäten eine Spalte für das Geburtsdatum hinzu. Anschließend aktualisieren Sie die Seite, auf der Kursleiterdaten angezeigt werden, sodass sie die neue Spalte anzeigt.
Öffnen Sie im Projekt ContosoUniversity.DAL die Datei Person.cs und fügen Sie die folgende Eigenschaft am Ende der Person Klasse hinzu (es sollten zwei schließende geschweifte Klammern folgen):
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
[Display(Name = "Birth Date")]
public DateTime? BirthDate { get; set; }
Aktualisieren Sie als Nächstes die Seed-Methode so, dass sie einen Wert für die neue Spalte bereitstellt. Öffnen Sie Migrations\Configuration.cs und ersetzen Sie den Codeblock, der mit var instructors = new List<Instructor> beginnt, durch den folgenden Codeblock, der Informationen zum Geburtsdatum enthält:
var instructors = new List<Instructor>
{
new Instructor { FirstMidName = "Kim", LastName = "Abercrombie", HireDate = DateTime.Parse("1995-03-11"), BirthDate = DateTime.Parse("1918-08-12"), OfficeAssignment = new OfficeAssignment { Location = "Smith 17" } },
new Instructor { FirstMidName = "Fadi", LastName = "Fakhouri", HireDate = DateTime.Parse("2002-07-06"), BirthDate = DateTime.Parse("1960-03-15"), OfficeAssignment = new OfficeAssignment { Location = "Gowan 27" } },
new Instructor { FirstMidName = "Roger", LastName = "Harui", HireDate = DateTime.Parse("1998-07-01"), BirthDate = DateTime.Parse("1970-01-11"), OfficeAssignment = new OfficeAssignment { Location = "Thompson 304" } },
new Instructor { FirstMidName = "Candace", LastName = "Kapoor", HireDate = DateTime.Parse("2001-01-15"), BirthDate = DateTime.Parse("1975-04-11") },
new Instructor { FirstMidName = "Roger", LastName = "Zheng", HireDate = DateTime.Parse("2004-02-12"), BirthDate = DateTime.Parse("1957-10-12") }
};
Öffnen Sie im Projekt ContosoUniversity Instructors.aspx , und fügen Sie ein neues Vorlagenfeld hinzu, um das Geburtsdatum anzuzeigen. Fügen Sie ihn zwischen den Einstellungsterminen und der Bürozuweisung hinzu:
<asp:TemplateField HeaderText="Birth Date" SortExpression="BirthDate">
<ItemTemplate>
<asp:Label ID="InstructorBirthDateLabel" runat="server" Text='<%# Eval("BirthDate", "{0:d}") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="InstructorBirthDateTextBox" runat="server" Text='<%# Bind("BirthDate", "{0:d}") %>'
Width="7em"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
(Wenn der Codeeinzug nicht mehr synchronisiert wird, können Sie STRG-K und dann STRG-D drücken, um die Datei automatisch neu zu formatieren.)
Erstellen Sie die Lösung, und öffnen Sie dann das Paket-Manager Konsolenfenster. Stellen Sie sicher, dass ContosoUniversity.DAL weiterhin als Standardprojekt ausgewählt ist.
Wählen Sie im Paket-Manager Konsolenfenster "ContosoUniversity.DAL" als Standardprojekt aus, und geben Sie dann den folgenden Befehl ein:
add-migration AddBirthDate
Nach Abschluss dieses Befehls öffnet Visual Studio die Klassendatei, die die neue DbMigration Klasse definiert, und in der Up Methode wird der Code angezeigt, der die neue Spalte erstellt.
Erstellen Sie die Lösung, und geben Sie dann den folgenden Befehl im Fenster 'Paket-Manager-Konsole' ein (vergewissern Sie sich, dass das Projekt ContosoUniversity.DAL immer noch ausgewählt ist):
update-database
Wenn der Befehl abgeschlossen ist, führen Sie die Anwendung aus, und wählen Sie die Seite "Kursleiter" aus. Wenn die Seite geladen wird, sehen Sie, dass sie das neue Geburtsdatum-Feld enthält.
Bereitstellen des Datenbankupdates in der Testumgebung
Wählen Sie im Projektmappen-Explorer das Projekt ContosoUniversity aus.
Wählen Sie in der Symbolleiste "Web One Click Publish" das Publikationsprofil "Test" aus, und klicken Sie dann auf "Web veröffentlichen". (Wenn die Symbolleiste deaktiviert ist, wählen Sie das ContosoUniversity-Projekt im Projektmappen-Explorer.)
Visual Studio stellt die aktualisierte Anwendung bereit, und der Browser wird auf der Startseite geöffnet. Öffnen Sie die Seite "Dozenten", um zu überprüfen, ob das Update erfolgreich bereitgestellt wurde. Wenn die Anwendung versucht, auf die Datenbank für diese Seite zuzugreifen, aktualisiert Code First das Datenbankschema und führt die Seed Methode aus. Wenn die Seite angezeigt wird, sehen Sie die erwartete Spalte "Geburtsdatum" mit den entsprechenden Datumsangaben.
Bereitstellen des Datenbankupdates in der Produktionsumgebung
Sie können jetzt für die Produktion bereitstellen. Der einzige Unterschied besteht darin, dass Sie app_offline.htm verwenden, um zu verhindern, dass Benutzer auf die Website zugreifen und so die Datenbank aktualisieren, während Sie Änderungen bereitstellen. Führen Sie für die Produktionsbereitstellung die folgenden Schritte aus:
- Laden Sie die app_offline.htm Datei auf die Produktionswebsite hoch.
- Wählen Sie in Visual Studio das Produktionsprofil in der Symbolleiste "Web One-Click-Veröffentlichung" aus und klicken Sie auf "Web veröffentlichen".
- Löschen Sie die app_offline.htm Datei von der Produktionswebsite.
Hinweis
Während Ihre Anwendung in der Produktionsumgebung verwendet wird, sollten Sie einen Sicherungsplan implementieren. Das heißt, Sie sollten die Dateien School-Prod.sdf und aspnet-Prod.sdf von der Produktionswebsite in einen sicheren Speicherort kopieren und mehrere Generationen solcher Sicherungen beibehalten. Wenn Sie die Datenbank aktualisieren, sollten Sie unmittelbar vor der Änderung eine Sicherungskopie erstellen. Wenn Sie dann einen Fehler machen und sie erst entdecken, nachdem Sie sie in der Produktion bereitgestellt haben, können Sie die Datenbank weiterhin in den Zustand wiederherstellen, in dem sie sich befand, bevor sie beschädigt wurde.
Wenn Visual Studio die HOMEPAGE-URL im Browser öffnet, wird die app_offline.htm Seite angezeigt. Nachdem Sie die app_offline.htm Datei gelöscht haben, können Sie erneut zu Ihrer Startseite navigieren, um zu überprüfen, ob das Update erfolgreich bereitgestellt wurde.
Sie haben nun ein Anwendungsupdate bereitgestellt, das eine Datenbankänderung sowohl für Tests als auch für die Produktion enthielt. Das nächste Lernprogramm zeigt, wie Sie Ihre Datenbank von SQL Server Compact zu SQL Server Express und SQL Server migrieren.