Wdrażanie bazy danych (VB)

przez Scott Mitchell

Pobierz kod lub Pobierz plik PDF

Wdrożenie aplikacji sieci Web ASP.NET wymaga pobrania niezbędnych plików i zasobów ze środowiska programistycznego do środowiska produkcyjnego. W przypadku aplikacji sieci Web opartych na danych obejmuje to schemat bazy danych i dane. Ten samouczek jest pierwszą częścią serii, która bada kroki niezbędne do pomyślnego wdrożenia bazy danych ze środowiska programistycznego w środowisku produkcyjnym.

Wprowadzenie

Wdrożenie aplikacji sieci Web ASP.NET wymaga pobrania niezbędnych plików i zasobów ze środowiska programistycznego do środowiska produkcyjnego. W ciągu ostatnich sześciu samouczków oglądamy wdrażanie prostej aplikacji sieci Web. Ta witryna demonstracyjna obejmowała wiele zasobów po stronie serwera — ASP.NET stron, plików konfiguracji, Web.sitemap plików i tak dalej — wraz z zasobami po stronie klienta, takimi jak obrazy i pliki CSS. Ale co z aplikacjami sieci Web opartymi na danych? Jakie dodatkowe kroki należy wykonać w celu wdrożenia aplikacji sieci Web, która korzysta z bazy danych?

W następnym samouczku opisano kroki niezbędne do wdrożenia aplikacji sieci Web opartej na danych. Ten samouczek rozpoczyna się od sprawdzenia, jak uzyskać schemat bazy danych i zawartość ze środowiska programistycznego w środowisku produkcyjnym, podczas gdy kolejny samouczek przegląda wymaganą zmianę konfiguracji. Poniżej przedstawiono informacje na temat problemów związanych z wdrażaniem bazy danych korzystającej z Usługi aplikacji (członkostwo, role, profil itd.).

Sprawdzanie zaktualizowanej aplikacji sieci Web przeglądów książki

Aby zademonstrować wdrożenie aplikacji sieci Web opartej na danych, Zaktualizowano aplikację sieci Web Recenzja książki z prostej, statycznej witryny sieci Web do jednego opartego na danych. Tak jak wcześniej, w tym samouczku s można pobrać dwie wersje aplikacji: jedną, która używa modelu projektu aplikacji sieci Web i jednego, który używa modelu projektu witryny sieci Web.

Aktualizacja aplikacji sieci Web, która przegląda książkę, używa bazy danych SQL Server 2008 Express Edition , która jest przechowywana w App_Data folderze lokacji ( ~/App_Data/Reviews.mdf ). Jeśli na komputerze zainstalowano SQL Server 2008, demonstracja powinna zostać uruchomiona bez błędu. Jeśli masz starszą wersję SQL Server możesz zainstalować bezpłatną SQL Server 2008 Express Edition lub użyć skryptów bazy danych dostępnych w tym samouczku, aby samodzielnie utworzyć bazę danych.

Reviews.mdfBaza danych zawiera cztery tabele:

  • Genres — zawiera rekord dla każdego gatunku, taki jak technologia, fikcja i firma.
  • Books -zawiera rekord dla każdego przeglądu, z kolumnami takimi jak Title ,, GenreId ReviewDate , i Review , między innymi.
  • Authors -zawiera informacje o każdym autorze, który utworzył zrecenzowaną książkę.
  • BooksAuthors — tabela sprzężenia wiele-do-wielu określająca, które autorów zapisują książki.

Rysunek 1 przedstawia diagram ER tych czterech tabel.

Książka przegląda bazę danych aplikacji sieci Web, składającą się z czterech tabel

Rysunek 1. książka przegląda bazę danych aplikacji sieci Web, składającą się z czterech tabel (kliknij, aby wyświetlić obraz w pełnym rozmiarze)

Poprzednia wersja witryny sieci Web przeglądający książki miała osobną stronę ASP.NET dla każdej książki. Na przykład wykryto stronę o nazwie ~/Tech/TYASP35.aspx , która zawiera przegląd do nauki sobie ASP.NET 3,5 w ciągu 24 godzin. Ta nowa wersja witryny sieci Web oparta na danych zawiera przeglądy przechowywane w bazie danych i pojedynczej stronie ASP.NET, przeglądanie. aspx? ID =bookId, który wyświetla przegląd określonej książki. Podobnie istnieje strona o nazwie gatunek. aspx? ID =genreId , która zawiera listę zrecenzowanych ksiąg w określonym gatunku.

Rysunki 2 i 3 pokazują Genre.aspx strony i Review.aspx w akcji. Zwróć uwagę na adres URL na pasku adresu dla każdej strony. Na rysunku 2 to s gatunek. aspx? ID = 85d164ba-1123-4c47-82a0-c8ec75de7e0e. Ponieważ 85d164ba-1123-4c47-82a0-c8ec75de7e0e jest GenreId wartością dla gatunku technologii, w nagłówku strony są odczytywane "Przeglądy technologii", a lista punktowana wylicza te przeglądy w witrynie, które znajdują się pod tym gatunkiem.

Strona gatunek technologii

Rysunek 2: Strona gatunek technologii (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

Przegląd na potrzeby nauki ASP.NET 3,5 w ciągu 24 godzin

Rysunek 3: przegląd do nauki sobie ASP.NET 3,5 w ciągu 24 godzin (kliknij, aby wyświetlić obraz w pełnym rozmiarze)

Aplikacja sieci Web przegląda książkę zawiera również sekcję administracyjną, w której administratorzy mogą dodawać, edytować i usuwać gatunki, przeglądy i informacje o autorze. Obecnie każdy użytkownik może uzyskać dostęp do sekcji Administracja. W przyszłym samouczku dodamy obsługę kont użytkowników i zezwolisz użytkownikom na dostęp tylko dla autoryzowanych użytkowników.

W przypadku pobrania aplikacji do przeglądu książek należy pamiętać, że celem jest zademonstrowanie wdrożenia aplikacji opartej na danych. Nie wykazuje najlepszych praktyk w zakresie projektowania aplikacji. Na przykład nie istnieje osobna warstwa dostępu do danych (DAL); strony ASP.NET komunikują się bezpośrednio z bazą danych za pomocą kontrolki kontrolki SqlDataSource lub kodu ADO.NET w swoich klasach znajdujących się w kodzie. Aby uzyskać bardziej szczegółowe informacje na temat tworzenia aplikacji opartych na danych przy użyciu architektury warstwowej, zobacz moje prace z samouczkami dotyczącymi danych.

Bazy danych na etapie programowania i produkcji

Po rozpoczęciu programowania w aplikacji sieci Web opartej na danych należy określić parametry połączenia z bazą danych, która zawiera szczegółowe informacje dotyczące sposobu łączenia się 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 opracowywania różni się od bazy danych używanej w środowisku produkcyjnym. Istnieje wiele korzyści z używania różnych baz danych do programowania i produkcji. Inna baza danych w programowaniu oznacza, że nie trzeba martwić się o przypadkowe modyfikacje lub usunięcie danych na żywo. Umożliwia także umieszczanie danych fikcyjnych testów lub wprowadzanie istotnych zmian w modelu danych bez konieczności przejmowania się wpływem na działanie aplikacji w środowisku produkcyjnym. Minusem istnienia innej bazy danych w środowiskach programistycznych i produkcyjnych polega na tym, że po wdrożeniu aplikacji baza danych programu i wszelkie istotne zmiany schematu lub danych bazy danych muszą również zostać wdrożone.

Przed pierwszym wdrożeniem istnieje tylko jedno wystąpienie bazy danych, a to wystąpienie znajduje się w środowisku deweloperskim. Podczas wdrażania aplikacji w środowisku produkcyjnym po raz pierwszy nie należy kopiować wymaganych plików po stronie serwera i po stronie klienta, ale również kopiować bazę danych ze środowiska deweloperskiego do środowiska produkcyjnego. Jest to miejsce, w którym już teraz korzystamy z aplikacji sieci Web przeglądający książki — baza danych znajduje się w App_Data folderze w naszym środowisku programistycznym, ale nie została jeszcze wypchnięci do środowiska produkcyjnego.

Po wdrożeniu aplikacji istnieją dwie kopie bazy danych. W miarę dojrzewania aplikacji mogą zostać dodane nowe funkcje, co wymaga zmiany w modelu danych (np. dodanie nowych kolumn do istniejących tabel, wprowadzanie zmian w istniejących kolumnach, dodawanie nowych tabel itd.). Po wdrożeniu aplikacji sieci Web zmiany zastosowane do bazy danych w środowisku programistycznym od momentu ostatniego wdrożenia muszą zostać zastosowane do produkcyjnej bazy danych programu. Niektóre strategie zarządzania tym procesem zostały omówione w przyszłym samouczku. Ten samouczek koncentruje się na wdrażaniu całej bazy danych ze środowiska deweloperskiego w środowisku produkcyjnym.

Wdrażanie bazy danych w środowisku produkcyjnym

W pozostałej części tego samouczka pokazano, jak wdrożyć bazę danych ze środowiska programistycznego w środowisku produkcyjnym. Jeśli jesteś następnym, musisz się upewnić, że konto z dostawcą hosta sieci Web zawiera Microsoft SQL Server obsługi bazy danych. Konieczne będzie również posiadanie pewnych informacji, takich jak nazwa serwera bazy danych, nazwa bazy danych oraz nazwa użytkownika i hasło używane do nawiązania połączenia z bazą danych.

Jak wspomniano wcześniej w tym samouczku, baza danych witryny sieci Web przeglądów książek jest bazą danych SQL Server 2008 Express Edition przechowywaną w App_Data folderze. W efekcie wdrożenie takiej bazy danych byłoby bardzo proste, ponieważ kopiowanie App_Data folderu ze środowiska programistycznego do środowiska produkcyjnego. Większość dostawców hosta sieci Web nie obsługuje jednak hostingu baz danych w App_Data folderze ze względów bezpieczeństwa. Zamiast tego hosty sieci Web udostępniają konto na serwerze bazy danych SQL Server w środowisku. Wdrożenie bazy danych ze środowiska deweloperskiego w środowisku produkcyjnym wymaga zarejestrowania bazy danych na serwerze bazy danych hosta sieci Web.

Jak uzyskać bazę danych ze środowiska programistycznego w środowisku produkcyjnym? Istnieje kilka sposobów, aby to zrobić, w zależności od tego, jakie usługi oferuje Twój host sieci Web. Z niektórymi hostami, takimi jak DiscountASP.NET, można za pomocą usługi FTP wykonać kopię zapasową bazy danych lub .mdf pliku w witrynie sieci Web, a następnie w panelu sterowania przywrócić plik kopii zapasowej lub dołączyć .mdf plik do serwera bazy danych SQL Server. Dzięki tym narzędziom wdrażanie bazy danych jest tak proste jak kopiowanie App_Data folderu do środowiska produkcyjnego, a następnie dołączanie go za pomocą panelu sterowania. Jest to prawdopodobnie najłatwiejszym i najszybszym sposobem na opublikowanie bazy danych po raz pierwszy.

Innym rozwiązaniem jest użycie Kreatora publikacji bazy danych. Kreator publikowania bazy danych to aplikacja klasyczna systemu Windows, która generuje polecenia SQL w celu utworzenia schematu bazy danych — tabele, procedury składowane, widoki, funkcje zdefiniowane przez użytkownika i tak dalej — i opcjonalnie dane w swoich tabelach. Następnie można nawiązać połączenie z serwerem bazy danych dostawcy hosta sieci Web za pomocą SQL Server Management Studio a następnie wykonać ten skrypt w celu zduplikowania bazy danych w środowisku produkcyjnym. Jeszcze lepiej, jeśli dostawca hosta sieci Web obsługuje usługi publikowania baz danych firmy Microsoft, skrypt wygenerowany przez Kreatora publikacji bazy danych jest automatycznie wykonywany na serwerze bazy danych w Twoim imieniu. Ponieważ Kreator publikowania bazy danych generuje skrypt, który tworzy schemat bazy danych i dane, będzie działał niezależnie od tego, czy dostawca hosta sieci Web oferuje takie funkcje jak dołączanie przekazanego .mdf pliku.

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

Pozwól, aby przeanalizować bazę danych przeglądów książki w środowisku produkcyjnym za pomocą Kreatora publikowania bazy danych. Jeśli używasz programu Visual Studio 2008 lub więcej, Kreator publikowania bazy danych jest już zainstalowany. W przypadku korzystania z programu Visual Studio 2005 należy najpierw pobrać i zainstalować kreatora.

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

Znajdź bazę danych w Eksplorator bazy danych lub Eksplorator serwera

Rysunek 4. Odszukaj bazę danych w Eksplorator bazy danych lub Eksplorator serwera (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

Kliknij prawym przyciskiem myszy nazwę bazy danych i wybierz opcję "Publikuj w dostawcy" z menu kontekstowego. Spowoduje to uruchomienie Kreatora publikacji bazy danych (patrz rysunek 5). Kliknij przycisk Dalej, aby przejść do poprzedniego ekranu powitalnego.

Ekran powitalny Kreatora publikacji bazy danych

Rysunek 5. ekran powitalny Kreatora publikacji bazy danych (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

Drugi ekran kreatora zawiera listę baz danych dostępnych dla Kreatora publikacji bazy danych i pozwala określić, czy mają być wyświetlane skrypty wszystkich obiektów w wybranej bazie danych, czy też do wybierania obiektów do skryptu. Wybierz odpowiednią bazę danych i pozostaw zaznaczone pole wyboru "skrypt wszystkie obiekty w wybranej bazie danych".

Note

Jeśli zostanie wyświetlony komunikat o błędzie "nie ma obiektów w bazie danych DatabaseName typów, które mogą być inicjowane przez ten kreator" po kliknięciu przycisku Dalej na rysunku 6, upewnij się, że ścieżka do pliku bazy danych nie jest zbyt długa. Jak wskazano w tym elemencie dyskusji na stronie projektu Kreatora publikacji bazy danych, ten błąd może wystąpić, jeśli ścieżka do pliku bazy danych jest za długa.

Ekran powitalny Kreatora publikacji bazy danych

Ilustracja 6. ekran powitalny Kreatora publikacji bazy danych (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

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

Tworzenie skryptów bazy danych do pliku lub publikowanie jej bezpośrednio dla dostawcy hosta sieci Web

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

Na następnym ekranie zostanie wyświetlony komunikat z wieloma opcjami tworzenia skryptów. Można określić, czy skrypt powinien zawierać instrukcje Drop, aby usunąć te istniejące obiekty. Ta wartość domyślna to true, co jest bardzo precyzyjne podczas wdrażania bazy danych po raz pierwszy. Możesz również określić, czy docelowa baza danych ma SQL Server 2000, SQL Server 2005 czy SQL Server 2008. Na koniec możesz wskazać, czy ma być skryptować schemat i dane, tylko dane, czy tylko schemat. Schemat jest kolekcją obiektów bazy danych, tabel, procedur składowanych, widoków itd. Dane są zawarte w tabelach.

Jak pokazano na rysunku 8, mam kreatora skonfigurowany do usuwania istniejących obiektów bazy danych, generowania skryptu dla bazy danych SQL Server 2008 i publikowania zarówno schematu, jak i danych.

Określ opcje publikowania

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

Ostatnie dwa ekrany podsumowują akcje, które mają zostać wykonane, a następnie wyświetlają stan skryptów. Wynikiem działania kreatora jest plik skryptu, który zawiera polecenia SQL, które są niezbędne do utworzenia bazy danych w środowisku produkcyjnym, i wypełnienie go tymi samymi danymi co na etapie projektowania.

Wykonywanie poleceń SQL w bazie danych środowiska produkcyjnego

Teraz, gdy mamy skrypt, który zawiera polecenia SQL służące do tworzenia bazy danych i jej wszystkich danych, które pozostaną, są wykonywane w produkcyjnej bazie danych. Niektórzy dostawcy hosta sieci Web oferują w panelu sterowania pole tekstowe, w którym można wprowadzać polecenia SQL do wykonania w bazie danych. Jeśli masz bardzo duży plik skryptu, ta opcja może nie działać ( REVIEWS.MDF.sql na przykład rozmiar pliku skryptu przekracza 425 KB).

Lepszym rozwiązaniem jest bezpośrednie połączenie z serwerem produkcyjnej bazy danych przy użyciu programu SQL Server Management Studio (SSMS). Jeśli na komputerze jest zainstalowana wersja nieexpress SQL Server, najkorzystniej jest 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, korzystając z informacji podanych przez dostawcę hosta sieci Web.

Nawiązywanie połączenia z serwerem bazy danych dostawcy hosta sieci Web

Rysunek 9. Łączenie się 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 Nowa kwerenda w lewym górnym rogu paska narzędzi, Wklej w poleceniach SQL z pliku skryptu utworzonego przez Kreatora publikacji 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.

Nawiązywanie połączenia z serwerem bazy danych dostawcy hosta sieci Web

Rysunek 10. Łączenie się z serwerem bazy danych dostawcy hosta sieci Web (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

Wszystko, co wszystko jest gotowe! W tym momencie baza danych programu Development została zduplikowana w środowisku produkcyjnym. W przypadku odświeżenia bazy danych w programie SSMS powinny zostać wyświetlone nowe obiekty bazy danych. Rysunek 11 przedstawia produkcyjne tabele, procedury składowane i funkcje zdefiniowane przez użytkownika, które są dublowane w bazie danych programistycznych. Ze względu na to, że nastąpiło opublikowanie danych przez Kreatora publikacji bazy danych, tabele produkcyjnej bazy danych mają takie same dane jak tabele programistycznej bazy danych w czasie, gdy Kreator został wykonany. Rysunek 12 przedstawia dane w Books tabeli w produkcyjnej bazie danych.

Obiekty bazy danych zostały zduplikowane w produkcyjnej bazie danych

Ilustracja 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 programistycznych

Ilustracja 12. produkcyjna baza danych zawiera te same dane, co w przypadku programu Development Database (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

W tym momencie wdrożono tylko programistyczną bazę danych w środowisku produkcyjnym. Nie przeprowadzono jeszcze wdrożenia samej aplikacji sieci Web lub Zbadaj, jakie zmiany konfiguracji są potrzebne, aby aplikacja w środowisku produkcyjnym korzystała z produkcyjnej bazy danych. Będziemy omawiać te problemy w następnym samouczku.

Podsumowanie

Wdrożenie aplikacji sieci Web opartej na danych wymaga kopiowania bazy danych używanej podczas programowania do środowiska produkcyjnego. Wielu dostawców hosta sieci Web oferuje narzędzia upraszczające proces wdrażania bazy danych. Na przykład za pomocą DiscountASP.NET można FTP plik bazy danych .mdf (lub kopia zapasowa), a następnie dołączyć bazę danych do serwera bazy danych z panelu sterowania. Inna opcja, która działa niezależnie od tego, jakie funkcje są oferowane przez dostawcę hosta sieci Web, to narzędzie Kreatora publikacji bazy danych firmy Microsoft, które generuje skrypt poleceń SQL, aby utworzyć schemat i dane programistycznej bazy danych. Po wygenerowaniu tego skryptu można wykonać go w produkcyjnej bazie danych.

Teraz, gdy książka przegląda bazę danych aplikacji sieci Web w środowisku produkcyjnym, możemy wdrożyć aplikację. Informacje o konfiguracji aplikacji sieci Web s określają jednak parametry połączenia z bazą danych, a parametry połączenia odwołują się do bazy danych programistycznych. Należy zaktualizować te informacje o parametrach połączenia podczas wdrażania lokacji w środowisku produkcyjnym. W następnym samouczku pokazano, jak te różnice w konfiguracji, i przedstawiono kroki wymagane do opublikowania witryny przeglądy książki opartej na danych w środowisku produkcyjnym.

Szczęśliwe programowanie!

Dalsze informacje

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