Wdrażanie bazy danych (VB)

Autor : Scott Mitchell

Wdrożenie aplikacji internetowej ASP.NET wiąże się z uzyskaniem niezbędnych plików i zasobów ze środowiska deweloperskiego do środowiska produkcyjnego. W przypadku aplikacji internetowych opartych na danych obejmuje to schemat i dane bazy danych. Ten samouczek jest pierwszym z serii, który bada kroki wymagane do pomyślnego wdrożenia bazy danych ze środowiska deweloperskiego do środowiska produkcyjnego.

Introduction

Wdrożenie aplikacji internetowej ASP.NET wiąże się z uzyskaniem niezbędnych plików i zasobów ze środowiska deweloperskiego do środowiska produkcyjnego. W ciągu ostatnich sześciu samouczków omówiliśmy wdrażanie prostej aplikacji internetowej Recenzje książek. Ta witryna demonstracyjna składała się z wielu zasobów po stronie serwera — ASP.NET stron, plików konfiguracji, Web.sitemap pliku itd. — wraz z zasobami po stronie klienta, takimi jak obrazy i pliki CSS. Ale co z aplikacjami internetowymi opartymi na danych? Jakie dodatkowe kroki należy wykonać w celu wdrożenia aplikacji internetowej korzystającej z bazy danych?

W kolejnych kilku samouczkach zajmiemy się krokami wymaganymi do wdrożenia aplikacji internetowej opartej na danych. Ten samouczek rozpoczyna się od zbadania sposobu uzyskiwania schematu i zawartości bazy danych ze środowiska deweloperskiego do środowiska produkcyjnego, podczas gdy w kolejnym samouczku przyjrzymy się wymaganym zmianom konfiguracji. Poniżej omówimy wyzwania związane z wdrażaniem bazy danych korzystającej z usług aplikacji (członkostwo, role, profil itd.).

Badanie zaktualizowanej aplikacji internetowej przeglądów książek

Aby zademonstrować wdrożenie opartej na danych aplikacji internetowej, zaktualizowałem aplikację internetową Book Reviews z prostej, statycznej witryny internetowej do opartej na danych. Tak jak poprzednio, w tym samouczku dostępne są dwie wersje aplikacji do pobrania: jedna korzystająca z modelu projektu aplikacji webowej i druga korzystająca z modelu projektu witryny webowej.

Zaktualizowana aplikacja internetowa Recenzje książek używa bazy danych programu SQL Server 2008 Express Edition, która jest przechowywana w folderze strony App_Data (~/App_Data/Reviews.mdf). Jeśli na komputerze jest zainstalowany program SQL Server 2008, demonstracja powinna działać poprawnie. Jeśli masz starszą wersję programu SQL Server, możesz zainstalować bezpłatną wersję programu SQL Server 2008 Express Edition lub użyć skryptów bazy danych dostępnych w tym samouczku, aby samodzielnie utworzyć bazę danych.

Baza Reviews.mdf danych zawiera cztery tabele:

  • Genres - zawiera rekord dla każdego gatunku, takiego jak technologia, fikcja i biznes.
  • Books — zawiera rekord dla każdego przeglądu, z kolumnami takimi jak Title, GenreId, ReviewDatei Review, między innymi.
  • Authors — zawiera informacje o każdym autorze, który przyczynił się do recenzowanej książki.
  • BooksAuthors - tabela sprzężenia wiele do wielu, która określa, jacy autorzy napisali które książki.

Rysunek 1 przedstawia diagram ER tych czterech tabel.

Baza danych aplikacji internetowej przeglądów książek składa się z czterech tabel

Rysunek 1. Baza danych aplikacji internetowej przeglądów książek składa się z czterech tabel (kliknij, aby wyświetlić obraz pełnowymiarowy)

Poprzednia wersja strony przeglądów książek miała oddzielną stronę ASP.NET dla każdej książki. Na przykład istniała strona o nazwie ~/Tech/TYASP35.aspx, która zawierała recenzję książki Teach Yourself ASP.NET 3.5 w ciągu 24 godzin. Ta nowa wersja witryny internetowej oparta na danych zawiera recenzje przechowywane w bazie danych i jedną stronę ASP.NET, Review.aspx?ID=bookId, która wyświetla przegląd określonej książki. Podobnie istnieje strona Genre.aspx?ID=genreId zawierająca listę recenzowanych książek w określonym gatunku.

Na rysunkach 2 i 3 pokazano strony Genre.aspx i Review.aspx w akcji. Zanotuj adres URL na pasku Adres dla każdej strony. Na rysunku 2 pokazano Genre.aspx?ID=85d164ba-1123-4c47-82a0-c8ec75de7e0e. Ponieważ 85d164ba-1123-4c47-82a0-c8ec75de7e0e jest GenreId wartością gatunku Technologia, nagłówek strony brzmi "Recenzje technologii", a lista punktowana wylicza te recenzje na stronie, które należą do tego gatunku.

Strona gatunku technologii

Rysunek 2. Strona gatunku technologii (kliknij, aby wyświetlić obraz pełnowymiarowy)

Recenzja dla Ucz się ASP.NET 3,5 w ciągu 24 godzin

Rysunek 3: Recenzja samouczka ASP.NET 3.5 w 24 godziny (Kliknij, aby zobaczyć obraz w pełnym rozmiarze)

Aplikacja internetowa Recenzje książek zawiera również sekcję administracyjną, w której administratorzy mogą dodawać, edytować i usuwać gatunki, recenzje i autorów. Obecnie każdy odwiedzający może uzyskać dostęp do sekcji administracyjnej. W przyszłym samouczku dodamy obsługę kont użytkowników i zezwolimy tylko autoryzowanym użytkownikom na strony administracyjne.

Jeśli pobierzesz aplikację Recenzje książek, pamiętaj, że jej celem jest zademonstrowanie wdrożenia aplikacji opartej na danych. Nie wykazuje najlepszych rozwiązań w zakresie projektowania aplikacji. Na przykład nie ma oddzielnej warstwy dostępu do danych (DAL); strony ASP.NET komunikują się bezpośrednio z bazą danych za pomocą kontrolki SqlDataSource lub kodu ADO.NET w ich klasach kodu-behind. Aby uzyskać bardziej szczegółowe informacje na temat tworzenia aplikacji opartych na danych przy użyciu architektury warstwowej, zapoznaj się z samouczkami dotyczącymi pracy z danymi.

Bazy danych w środowisku deweloperskim a produkcyjnym

Podczas tworzenia aplikacji internetowej opartej na danych należy określić parametry połączenia bazy danych, które zawierają szczegółowe informacje o sposobie nawiązywania połączenia z bazą danych. Te parametry połączenia określają między innymi serwer bazy danych, nazwę bazy danych i informacje o zabezpieczeniach. Najczęściej baza danych używana przez aplikację podczas programowania różni się od bazy danych używanej w środowisku produkcyjnym. Istnieje wiele korzyści z używania różnych baz danych na potrzeby programowania i produkcji. Posiadanie innej bazy danych podczas programowania oznacza, że nie musisz martwić się o przypadkowe modyfikowanie lub usuwanie danych na żywo. Umożliwia również wprowadzenie fikcyjnych danych testowych lub dokonanie zmian ingerujących w model danych bez konieczności martwienia się o ich wpływ na aplikację w środowisku produkcyjnym. Wadą posiadania innej bazy danych w środowiskach deweloperskich i produkcyjnych jest to, że po wdrożeniu bazy danych aplikacji należy również wdrożyć wszelkie istotne zmiany w schemacie lub danych bazy danych.

Przed pierwszym wdrożeniem istnieje tylko jedno wystąpienie bazy danych, a to wystąpienie znajduje się w środowisku projektowym. Podczas wdrażania aplikacji w środowisku produkcyjnym po raz pierwszy musimy nie tylko skopiować niezbędne pliki po stronie serwera i po stronie klienta, ale także skopiować bazę danych ze środowiska deweloperskiego do środowiska produkcyjnego. W tym miejscu stoimy teraz z aplikacją internetową Book Reviews — baza danych znajduje się w App_Data folderze w naszym środowisku deweloperskim, ale nie została jeszcze wypchnięta do środowiska produkcyjnego.

Po wdrożeniu aplikacji istnieją dwie kopie bazy danych. W miarę dojrzewania aplikacji można dodawać nowe funkcje, co wymaga zmiany modelu danych (np. dodawania nowych kolumn do istniejących tabel, wprowadzania zmian w istniejących kolumnach, dodawania nowych tabel itd.). Po następnym wdrożeniu aplikacji internetowej zmiany zastosowane do bazy danych w środowisku deweloperskim od czasu ostatniego wdrożenia muszą zostać zastosowane do produkcyjnej bazy danych. Niektóre strategie zarządzania tym procesem zostaną omówione w przyszłym samouczku. Ten samouczek koncentruje się na wdrażaniu całej bazy danych ze środowiska deweloperskiego do środowiska produkcyjnego.

Wdrażanie bazy danych w środowisku produkcyjnym

W pozostałej części tego samouczka przedstawiono sposób wdrażania bazy danych ze środowiska deweloperskiego do środowiska produkcyjnego. Jeśli wykonasz poniższe czynności, upewnij się, że twoje konto z dostawcą hosta sieci Web obejmuje obsługę bazy danych programu Microsoft SQL Server. Musisz również mieć pod ręką pewne informacje, czyli nazwę serwera bazy danych, nazwę bazy danych oraz nazwę użytkownika i hasło używane do nawiązywania połączenia z bazą danych.

Jak wspomniano wcześniej w tym samouczku, baza danych witryny internetowej Book Reviews to baza danych programu SQL Server 2008 Express Edition przechowywana w folderze App_Data . Oznaczałoby to, że wdrożenie takiej bazy danych byłoby tak proste, jak kopiowanie App_Data folderu ze środowiska deweloperskiego do środowiska produkcyjnego. Jednak większość dostawców hostów internetowych nie obsługuje hostowania baz danych w App_Data folderze ze względów bezpieczeństwa. Zamiast tego hosty internetowe udostępniają konto na serwerze bazy danych programu SQL Server w swoim środowisku. Wdrożenie bazy danych ze środowiska programistycznego w środowisku produkcyjnym wymaga zarejestrowania bazy danych na serwerze bazy danych hosta sieci Web.

Jak więc uzyskać bazę danych ze środowiska deweloperskiego do środowiska produkcyjnego? Istnieje kilka sposobów, aby to osiągnąć w zależności od usług, które oferuje host internetowy. W przypadku niektórych hostów, takich jak DiscountASP.NET, można przesłać kopię zapasową bazy danych lub rzeczywisty plik .mdf na swój serwer za pomocą FTP, a następnie z Panelu sterowania przywrócić plik kopii zapasowej lub dołączyć plik .mdf do serwera baz danych programu SQL Server. Dzięki takim narzędziom wdrażanie bazy danych jest tak proste, jak kopiowanie App_Data folderu do środowiska produkcyjnego, a następnie dołączanie go za pośrednictwem Panelu sterowania. Jest to prawdopodobnie najprostszy i najszybszy sposób publikowania bazy danych po raz pierwszy.

Innym podejściem jest użycie Kreatora publikowania bazy danych. Kreator publikowania bazy danych to aplikacja klasyczna systemu Windows, która wygeneruje polecenia SQL w celu utworzenia schematu bazy danych — tabel, procedur składowanych, widoków, funkcji zdefiniowanych przez użytkownika itd. — i, opcjonalnie, danych w tabelach. Następnie możesz nawiązać połączenie z serwerem bazy danych dostawcy hosta sieci Web za pomocą programu SQL Server Management Studio, a następnie wykonać ten skrypt, aby zduplikować bazę danych w środowisku produkcyjnym. Jeszcze lepiej, jeśli dostawca usług hostingowych obsługuje Usługi publikowania baz danych Microsoft, skrypt wygenerowany przez Kreatora publikowania bazy danych jest automatycznie wykonywany na serwerze bazy danych w Twoim imieniu. Ponieważ Kreator publikowania bazy danych generuje skrypt, który tworzy schemat i dane bazy danych, będzie działać niezależnie od tego, czy dostawca hosta sieci Web oferuje funkcje, takie jak dołączanie przekazanego .mdf pliku.

Generowanie poleceń SQL w celu utworzenia schematu bazy danych i danych przy użyciu Kreatora publikowania bazy danych

Przejdźmy krok po kroku przez użycie Kreatora publikowania bazy danych, aby wdrożyć bazę danych Recenzje książek w środowisku produkcyjnym. Jeśli używasz programu Visual Studio 2008 lub nowszego, Kreator publikowania bazy danych jest już zainstalowany.

Otwórz program Visual Studio i przejdź do Reviews.mdf bazy danych. Jeśli używasz programu Visual Web Developer, przejdź do Eksploratora baz danych. Jeśli używasz programu Visual Studio, użyj Eksploratora serwera. Rysunek 4 przedstawia Reviews.mdf bazę danych w Eksploratorze baz danych w programie Visual Web Developer. Jak pokazano na Reviews.mdf rysunku 4, baza danych składa się z czterech tabel, trzech procedur składowanych i funkcji zdefiniowanej przez użytkownika.

Lokalizowanie bazy danych w Eksploratorze baz danych lub Eksploratorze serwera

Rysunek 4. Lokalizowanie bazy danych w Eksploratorze bazy danych lub Eksploratorze serwera (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

Kliknij prawym przyciskiem myszy nazwę bazy danych i wybierz opcję "Publikuj u dostawcy" z menu kontekstowego. To uruchamia Kreatora Publikowania Bazy Danych (zobacz Rysunek 5). Kliknij przycisk Dalej, aby przejść obok ekranu powitalnego.

Zrzut ekranu okna Kreatora publikowania bazy danych, które pokazuje ekran powitalny i przycisk Dalej do przejścia na kolejny krok w kreatorze.

Rysunek 5. Ekran powitalny Kreatora publikowania bazy danych (kliknij, aby wyświetlić obraz pełnowymiarowy)

Drugi ekran w kreatorze zawiera listę baz danych dostępnych dla Kreatora publikowania bazy danych i umożliwia wybór, czy zaskryptować wszystkie obiekty w wybranej bazie danych, czy wybrać konkretne obiekty do zaskryptowania. Wybierz odpowiednią bazę danych i pozostaw zaznaczoną opcję "Skrypt wszystkich obiektów w wybranej bazie danych".

Uwaga / Notatka

Jeśli wystąpi błąd "W bazie danych databaseName nie ma obiektów typów skryptowalnych przez tego kreatora", po kliknięciu na przycisk Dalej na ekranie pokazanym na Rysunku 6, upewnij się, że ścieżka do pliku bazy danych nie jest zbyt długa. Ten błąd może wystąpić, jeśli ścieżka do pliku bazy danych jest za długa.

Zrzut ekranu przedstawiający okno Kreatora publikowania bazy danych z wyróżnioną bazą danych na liście i wypełnionym polem wyboru Skrypt wszystkich obiektów.

Rysunek 6. Ekran powitalny Kreatora publikowania bazy danych (kliknij, aby wyświetlić obraz pełnowymiarowy)

Na następnym ekranie możesz wygenerować plik skryptu lub, jeśli host internetowy go obsługuje, opublikować bazę danych bezpośrednio na serwerze bazy danych dostawcy hosta sieci Web. Jak pokazano na rysunku 7, mam skrypt napisany w pliku C:\REVIEWS.MDF.sql.

Wygeneruj skrypt bazy danych do pliku lub opublikuj go bezpośrednio u dostawcy usług hostingowych

Rysunek 7. Tworzenie skryptu bazy danych do pliku lub publikowanie go bezpośrednio u dostawcy hosta sieci Web (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

Na kolejnym ekranie zostanie wyświetlony monit o podanie różnych opcji skryptowych. Możesz określić, czy skrypt powinien zawierać instrukcje usuwania, aby usunąć te istniejące obiekty. Ta wartość domyślna to True, co jest w porządku podczas wdrażania bazy danych po raz pierwszy. Można również określić, czy docelowa baza danych to SQL Server 2000, SQL Server 2005 lub SQL Server 2008. Na koniec możesz określić, czy chcesz wygenerować skrypt schematu i danych, tylko danych, czy tylko schematu. Schemat jest kolekcją obiektów bazy danych, tabel, procedur składowanych, widoków itd. Dane to informacje znajdujące się w tabelach.

Jak pokazano na rysunku 8, kreator został skonfigurowany do porzucania istniejących obiektów bazy danych, generowania skryptu dla bazy danych programu SQL Server 2008 oraz publikowania zarówno schematu, jak i danych.

Określanie opcji publikowania

Rysunek 8. Określanie opcji publikowania (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

Dwa ostatnie ekrany przedstawiają podsumowanie akcji, które mają zostać wykonane, a następnie wyświetlenie stanu skryptów. Wynikiem uruchomienia kreatora jest to, że mamy plik skryptu zawierający polecenia SQL potrzebne do utworzenia bazy danych w środowisku produkcyjnym i wypełnić go tymi samymi danymi co podczas programowania.

Wykonywanie poleceń SQL w bazie danych środowiska produkcyjnego

Teraz, gdy mamy skrypt zawierający polecenia SQL do utworzenia bazy danych i jej danych, pozostaje tylko wykonać ten skrypt w bazie danych produkcyjnej. Niektórzy dostawcy hostów internetowych oferują pole tekstowe w panelu sterowania, w którym można wprowadzić polecenia SQL do wykonania w bazie danych. Jeśli masz bardzo duży plik skryptu, ta opcja może nie działać (na przykład plik skryptu REVIEWS.MDF.sql ma rozmiar ponad 425 KB).

Lepszym rozwiązaniem jest nawiązanie bezpośredniego połączenia z produkcyjnym serwerem bazy danych przy użyciu programu SQL Server Management Studio (SSMS). Jeśli na komputerze jest zainstalowana wersja programu SQL Server innej niż Express, prawdopodobnie masz już zainstalowany program SSMS. W przeciwnym razie możesz pobrać i zainstalować bezpłatną kopię programu SQL Server Management Studio Express Edition.

Uruchom program SSMS i połącz się z serwerem bazy danych hosta sieci Web przy użyciu informacji dostarczonych przez dostawcę hosta sieci Web.

Zrzut ekranu przedstawiający okno dialogowe Łączenie z serwerem, w którym są wyświetlane informacje o serwerze danych hosta internetowego w polach tekstowych.

Rysunek 9. Nawiązywanie połączenia z serwerem bazy danych dostawcy hosta sieci Web (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

Rozwiń kartę Bazy danych i znajdź bazę danych. Kliknij przycisk Nowe zapytanie w lewym górnym rogu paska narzędzi, wklej polecenia SQL z pliku skryptu utworzonego przez Kreatora publikowania bazy danych, a następnie kliknij przycisk Wykonaj, aby uruchomić te polecenia na serwerze produkcyjnej bazy danych. Jeśli plik skryptu jest szczególnie duży, wykonanie poleceń może potrwać kilka minut.

Zrzut ekranu przedstawiający okno programu Microsoft SQL Server Management Studio, które pokazuje polecenia pliku skryptu wykonywane na serwerze produkcyjnym.

Rysunek 10. Nawiązywanie połączenia z serwerem bazy danych dostawcy hostów sieci Web (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

To wszystko! W tym momencie baza danych deweloperska została skopiowana do środowiska produkcyjnego. Jeśli odświeżysz bazę danych w programie SSMS, powinny zostać wyświetlone nowe obiekty bazy danych. Rysunek 11 przedstawia tabele produkcyjnej bazy danych, procedury składowane i funkcje zdefiniowane przez użytkownika, które odzwierciedlają je w bazie danych deweloperskiej. Ponieważ poinstruowaliśmy Kreatora publikowania bazy danych o opublikowaniu danych, tabele produkcyjnej bazy danych mają te same dane co tabele bazy danych deweloperskich w czasie wykonywania kreatora. Rysunek 12 przedstawia dane w tabeli w produkcyjnej bazie danych Books.

Obiekty bazy danych zostały zduplikowane w produkcyjnej bazie danych

Rysunek 11. Obiekty bazy danych zostały zduplikowane w produkcyjnej bazie danych (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

Produkcyjna baza danych zawiera te same dane co w bazie danych deweloperskich

Rysunek 12. Produkcyjna baza danych zawiera te same dane co w bazie danych deweloperskich (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

W tym momencie wdrożyliśmy tylko bazę danych deweloperskich w środowisku produkcyjnym. Nie przyjrzeliśmy się jeszcze wdrożeniu samej aplikacji internetowej ani przeanalizowaniu, jakie zmiany konfiguracji są potrzebne, aby aplikacja w środowisku produkcyjnym korzystała z produkcyjnej bazy danych. Omówimy te problemy w następnym samouczku!

Podsumowanie

Wdrożenie aplikacji internetowej opartej na danych wymaga skopiowania bazy danych używanej podczas programowania do środowiska produkcyjnego. Wielu dostawców hostów internetowych oferuje narzędzia upraszczające proces wdrażania bazy danych. Na przykład za pomocą DiscountASP.NET można ftp pliku bazy danych .mdf (lub kopii zapasowej), a następnie dołączyć bazę danych do serwera bazy danych z Panelu sterowania. Inną opcją, która działa niezależnie od funkcji oferowanych przez dostawcę hostów internetowych, jest narzędzie Kreatora publikowania baz danych firmy Microsoft, które generuje skrypt poleceń SQL w celu utworzenia schematu i danych bazy danych deweloperskich. Po wygenerowaniu tego skryptu można go wykonać w produkcyjnej bazie danych.

Teraz, gdy baza danych aplikacji internetowej Book Reviews jest w środowisku produkcyjnym, możemy wdrożyć aplikację. Jednak informacje o konfiguracji aplikacji internetowej określają parametry połączenia z bazą danych, a parametry połączenia odwołują się do bazy danych deweloperskiej. Należy zaktualizować te dane połączenia podczas wdrażania strony w systemie produkcyjnym. W następnym samouczku przedstawiono te różnice konfiguracji i przedstawiono kroki wymagane do opublikowania witryny przeglądów książek opartych na danych w środowisku produkcyjnym.

Szczęśliwe programowanie!

Dalsza lektura

Aby uzyskać więcej informacji na temat tematów omówionych w tym samouczku, zapoznaj się z następującym zasobem: