Udostępnij za pośrednictwem


Wdrażanie bazy danych (C#)

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 omawia kroki wymagane do pomyślnego wdrożenia bazy danych ze środowiska deweloperskiego do środowiska produkcyjnego.

Wprowadzenie

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 przyjrzeliśmy się wdrożeniu 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 samouczkach zajmiemy się krokami wymaganymi do wdrożenia aplikacji internetowej opartej na danych. Ten samouczek rozpoczyna się od zbadania sposobu pobierania 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ć wdrażanie 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 pobrano dwie wersje aplikacji: jedną, która korzysta z modelu projektu aplikacji internetowej i jednej korzystającej z modelu projektu witryny sieci Web.

Zaktualizowana aplikacja internetowa Book Reviews używa bazy danych express edition SQL Server 2008, która jest przechowywana w folderze lokacji App_Data (~/App_Data/Reviews.mdf). Jeśli na komputerze zainstalowano SQL Server 2008, pokaz powinien działać bez błędów. 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 do samodzielnego utworzenia bazy danych.

Baza Reviews.mdf danych zawiera cztery tabele:

  • Genres - zawiera rekord dla każdego gatunku, takich jak Technology, Fiction i Business.
  • 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, co autorzy napisali, jakie 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 w pełnym rozmiarze)

Poprzednia wersja strony recenzji książek miała oddzielną stronę ASP.NET dla każdej książki. Na przykład na stronie o nazwie ~/Tech/TYASP35.aspx , która zawierała recenzję "Ucz siebie ASP.NET 3,5 w ciągu 24 godzin. Ta nowa wersja witryny internetowej oparta na danych zawiera przeglądy 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ę przeglądanych książek w określonym gatunku.

Na rysunkach 2 i 3 są wyświetlane Genre.aspx strony i Review.aspx w akcji. Zanotuj adres URL na pasku Adres dla każdej strony. Na rysunku 2 jest to Genre.aspx?ID=85d164ba-1123-4c47-82a0-c8ec75de7e0e. Ponieważ 85d164ba-1123-4c47-82a0-c8ec75de7e0e jest GenreId wartością gatunku Technology, nagłówek strony brzmi "Recenzje technologii", a lista punktowana wylicza te recenzje na stronie, która przypada pod tym gatunkiem.

Strona gatunku technologii

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

Recenzja dla nauczania siebie ASP.NET 3,5 w ciągu 24 godzin

Rysunek 3. Recenzja dla nauczania siebie ASP.NET 3,5 w 24 godzinach (kliknij, aby wyświetlić obraz pełnowymiarowy)

Aplikacja internetowa Recenzje książek zawiera również sekcję administracyjną, w której administratorzy mogą dodawać, edytować i usuwać gatunki, recenzje i informacje o autorach. 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 pośrednictwem kontrolki SqlDataSource lub ADO.NET kodu w klasach za pomocą kodu. 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óra zawiera szczegółowe informacje o sposobie nawiązywania połączenia z bazą danych. Ten parametry połączenia określa 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 się martwić o przypadkowe modyfikowanie lub usuwanie danych na żywo. Umożliwia również umieszczanie fikcyjnych danych testowych lub wprowadzanie zmian powodujących niezgodność w modelu danych bez konieczności martwienia się o wpływ aplikacji w środowisku produkcyjnym. Wadą posiadania innej bazy danych w środowiskach deweloperskich i produkcyjnych jest to, że podczas wdrażania bazy danych przez aplikację 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 programistycznym. 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ą Recenzje książek — 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 (na przykład dodawania nowych kolumn do istniejących tabel, wprowadzania zmian w istniejących kolumnach, dodawania nowych tabel itd.). Po następnym wdrożeniu aplikacji internetowej należy zastosować zmiany zastosowane do bazy danych w środowisku deweloperskim od ostatniego wdrożenia do produkcyjnej bazy danych. 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 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 u dostawcy hosta sieci Web obejmuje obsługę bazy danych microsoft SQL Server. Musisz również mieć pod ręką pewne informacje, a mianowicie nazwę serwera bazy danych, nazwę bazy danych oraz nazwę użytkownika i hasło użyte do nawiązania połączenia z bazą danych.

Jak wspomniano wcześniej w tym samouczku, baza danych witryny Internetowej Recenzje książek jest bazą danych SQL Server 2008 Express Edition przechowywaną w folderze App_Data . Wynikałoby to z tego, ż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 folderze App_Data ze względów bezpieczeństwa. Zamiast tego hosty internetowe udostępniają konto na serwerze bazy danych SQL Server w ich środowisku. Wdrożenie bazy danych ze środowiska deweloperskiego 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 utworzyć kopię zapasową bazy danych lub rzeczywistego .mdf pliku w witrynie internetowej, a następnie z Panel sterowania przywrócić plik kopii zapasowej lub dołączyć .mdf go do serwera bazy danych SQL Server. Dzięki takim narzędziom wdrażającym bazę danych wystarczy skopiować App_Data folder do środowiska produkcyjnego, a następnie dołączyć go za pośrednictwem Panel 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 służące do tworzenia schematu bazy danych — tabele, procedury składowane, widoki, funkcje zdefiniowane przez użytkownika itd. — i opcjonalnie dane w tabelach. Następnie możesz nawiązać połączenie z serwerem bazy danych dostawcy hosta sieci Web za pośrednictwem 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 Microsoft Database Publishing Services, możesz automatycznie wykonać skrypt wygenerowany przez Kreatora publikowania bazy danych 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

Przyjrzyjmy się użyciu Kreatora publikowania bazy danych w celu wdrożenia bazy 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.

Znajdź bazę danych w Eksploratorze baz danych lub Eksploratorze serwera

Rysunek 4. Lokalizowanie bazy danych w Eksploratorze baz 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. Spowoduje to uruchomienie Kreatora publikowania bazy danych (zobacz Rysunek 5). Kliknij przycisk Dalej, aby przejść obok ekranu powitalnego.

Zrzut ekranu przedstawiający okno Kreatora publikowania bazy danych z wyświetlonym ekranem powitalnym i przyciskiem Dalej, aby przejść do kreatora.

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 wybranie, czy mają być skryptowe wszystkie obiekty w wybranej bazie danych, czy też wybrać obiekty do skryptu. Wybierz odpowiednią bazę danych i pozostaw zaznaczoną opcję "Skrypt wszystkich obiektów w wybranej bazie danych".

Uwaga

Jeśli zostanie wyświetlony komunikat o błędzie "Brak obiektów w bazie danych databaseName typów możliwych do utworzenia skryptu przez tego kreatora" po kliknięciu przycisku Dalej na ekranie pokazanym na rysunku 6 upewnij się, że ścieżka do pliku bazy danych nie jest zbyt długa. Wykryto, że 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 baz danych 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żna 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 zapisany w pliku C:\REVIEWS.MDF.sql.

Tworzenie skryptu bazy danych w pliku lub publikowanie jej bezpośrednio u dostawcy hosta sieci Web

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

Na kolejnym ekranie zostanie wyświetlony monit o podanie różnych opcji 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 dobrym rozwiązaniem podczas wdrażania bazy danych po raz pierwszy. Można 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 skrypt schematu i danych, tylko dane, czy tylko schemat. Schemat to kolekcja obiektów bazy danych, tabel, procedur składowanych, widoków itd. Dane to informacje znajdujące się w tabelach.

Jak pokazano na rysunku 8, mam kreatora skonfigurowanego do porzucania istniejących obiektów bazy danych, generowania skryptu dla bazy danych 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 pełnowymiarowy)

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ć ją tymi samymi danymi co podczas programowania.

Wykonywanie poleceń SQL w bazie danych środowiska produkcyjnego

Teraz, gdy mamy skrypt zawierający polecenia SQL służące do tworzenia bazy danych i jej danych, to wykonanie skryptu w produkcyjnej bazie danych. Niektórzy dostawcy hostów internetowych oferują pole tekstowe w Panel 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ć ( REVIEWS.MDF.sql na przykład rozmiar pliku skryptu wynosi 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 innej niż Express Edition SQL Server, prawdopodobnie masz już zainstalowany program SSMS. W przeciwnym razie możesz pobrać i zainstalować bezpłatną kopię 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 SQL Server Management Studio firmy Microsoft, które pokazuje polecenia z pliku skryptu są wykonywane na serwerze produkcyjnym.

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

To wszystko jest do tego! W tym momencie baza danych deweloperów została zduplikowana 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ą te 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 Books tabeli w produkcyjnej bazie danych.

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. Te problemy zostaną omówione 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żesz ftp pliku bazy danych .mdf (lub kopii zapasowej), a następnie dołączyć bazę danych do serwera bazy danych z Panel 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 do bazy danych, a parametry połączenia odwołuje się do bazy danych deweloperskiej. Musimy zaktualizować te informacje parametry połączenia podczas wdrażania lokacji w środowisku produkcyjnym. W następnym samouczku przedstawiono te różnice w konfiguracji i przedstawiono kroki wymagane do opublikowania witryny przeglądów książek opartych 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ącym zasobem: