Развертывание базы данных (VB)

по Скотт Митчелл

Скачать код или скачать PDF

Развертывание веб-приложения ASP.NET влечет за собой получение необходимых файлов и ресурсов из среды разработки в рабочую среду. Для веб-приложений, управляемых данными, включает схему и данные базы данных. Этот учебник является первым в серии, в которой рассматриваются шаги, необходимые для успешного развертывания базы данных из среды разработки в рабочей среде.

Введение

Развертывание веб-приложения ASP.NET влечет за собой получение необходимых файлов и ресурсов из среды разработки в рабочую среду. В течение прошлых шести учебных курсов мы рассматривали развертывание простого веб-приложения для рецензирования книги. Этот демонстрационный веб-узел состоит из ряда ресурсов на стороне сервера — ASP.NET страниц, файлов конфигурации, Web.sitemap файла и т. д. Вместе с ресурсами на стороне клиента, например с изображениями и CSS-файлами. Но как насчет веб-приложений, управляемых данными? Какие дополнительные действия необходимо предпринять для развертывания веб-приложения, использующего базу данных?

В следующих нескольких учебных курсах будут рассмотрены действия, необходимые для развертывания управляемого данными веб-приложения. Этот учебник начинается с изучения того, как получить схему базы данных и содержимое из среды разработки в рабочую среду, а в следующем руководстве рассматриваются изменения, которые необходимо внести. Далее мы рассмотрим проблемы развертывания базы данных, в которой используется Службы приложений (членство, роли, профиль и т. д.).

Изучение обновленного веб-приложения "Рецензирование книги"

Чтобы продемонстрировать развертывание управляемого данными веб-приложения, я обновил веб-приложение "Рецензирование книги" с простого статического веб-сайта на основе данных. Как и ранее, в этом руководстве есть две версии приложения: одна использует модель проекта веб-приложения, а другая использует модель проекта веб-сайта.

В обновленном веб-приложении для рецензирования книги используется база данных SQL Server 2008 Express Edition , которая хранится в App_Data папке Sites ( ~/App_Data/Reviews.mdf ). Если на компьютере установлено SQL Server 2008, демонстрационная версия должна работать без ошибок. Если у вас более старая версия SQL Server можно либо установить бесплатную SQL Server 2008 Express Edition, либо воспользоваться скриптами базы данных, доступными в этом руководстве по скачиванию, чтобы создать базу данных.

Reviews.mdfБаза данных содержит четыре таблицы:

  • Genres — включает запись для каждого жанра, например технологии, вымышление и бизнес.
  • Books — включает запись для каждой проверки с такими столбцами, как Title ,, GenreId ReviewDate и Review , между прочим.
  • Authors — содержит сведения о каждом авторе, который участвовал в рецензированном бюллетене.
  • BooksAuthors — Таблица соединений типа «многие ко многим», указывающая, какие авторы записали книги.

На рис. 1 показана схема ER этих четырех таблиц.

База данных веб-приложений с проверкой книг состоит из четырех таблиц.

Рис. 1. база данных веб-приложений с проверкой книг состоит из четырех таблиц (щелкните, чтобы просмотреть изображение с полным размером)

В предыдущей версии веб-сайта рецензирования книги была отдельная страница ASP.NET для каждой книги. Например, есть страница с именем ~/Tech/TYASP35.aspx , которая содержала проверку для обучения ASP.NET 3,5 за 24 часа. Эта новая версия веб-сайта, управляемая данными, содержит обзоры, сохраненные в базе данных, и одну ASP.NET страницу, проверьте. aspx? ID =букид, которая отображает проверку для указанной книги. Аналогично, на странице жанр. aspx? ID =genreId перечислены проверенные книги в указанном жанре.

На рисунках 2 и 3 Genre.aspx показаны Review.aspx страницы и в действии. Запишите URL-адрес в адресной строке для каждой страницы. На рис. 2 он является жанром. aspx? ID = 85d164ba-1123-4c47-82A0-c8ec75de7e0e. Так как 85d164ba-1123-4c47-82A0-c8ec75de7e0e — это GenreId значение для жанра технологии, заголовок страницы считывает «обзоры технологий», а маркированный список перечисляет эти рецензии на сайте, которые попадают под этот жанр.

Страница «жанр на технологии»

Рис. 2. страница «жанр технологии» (щелкните, чтобы просмотреть изображение с полным размером)

Обзор для обучения самому ASP.NET 3,5 за 24 часа

Рис. 3. проверка на ASP.NET 3,5 за 24 часа (щелкните, чтобы просмотреть изображение с полным размером)

В веб-приложение Books views также входит раздел Администрирование, в котором администраторы могут добавлять, изменять и удалять жанры, обзоры и сведения об авторе. Сейчас любой посетитель может получить доступ к разделу Администрирование. В следующем учебном курсе мы добавим поддержку учетных записей пользователей и разрешив только разрешенных пользователей на страницах администрирования.

Если вы загрузили приложение для рецензирования книги, помните, что его целью является демонстрация развертывания приложения, управляемого данными. В нем не приведутся рекомендации по проектированию приложений. Например, не существует отдельного уровня доступа к данным (DAL); страницы ASP.NET напрямую взаимодействуют с базой данных с помощью элемента управления SqlDataSource или кода ADO.NET в своих классах кода программной части. Более подробные сведения о создании приложений, управляемых данными, с использованием многоуровневой архитектуры см. в статье Работа с учебниками по работе с данными.

Базы данных в разработке и рабочей среде

При запуске разработки на управляемом данными веб-приложении необходимо указать строку подключения к базе данных, которая предоставляет сведения о приложении по подключению к базе данных. Эта строка подключения указывает, помимо прочего, сервер базы данных, имя базы данных и сведения о безопасности. Чаще всего база данных, используемая приложением во время разработки, отличается от базы данных, используемой в рабочей среде. Существует множество преимуществ использования разных баз данных для разработки и рабочей среды. Наличие другой базы данных в разработке означает, что вам не нужно беспокоиться о случайном изменении или удалении динамических данных. Он также позволяет добавлять фиктивные тестовые данные или вносить критические изменения в модель данных, не заботясь о влиянии на приложение в рабочей среде. Недостаток базы данных в средах разработки и рабочей среде заключается в том, что при развертывании базы данных и внесении соответствующих изменений в схему или данные базы данных также должны быть развернуты.

До первого развертывания существует только один экземпляр базы данных, и этот экземпляр находится в среде разработки. При первом развертывании приложения в рабочей среде необходимо не только копировать необходимые серверные и клиентские файлы на стороне сервера, но и копировать базу данных из среды разработки в рабочую среду. Здесь мы сейчас работаем с веб-приложением для рецензирования книги — база данных находится в App_Data папке в нашей среде разработки, но еще не была передана в рабочую среду.

После развертывания приложения существует две копии базы данных. По мере разработки приложения могут добавляться новые функции, требующие изменения модели данных (например, добавление новых столбцов в существующие таблицы, внесение изменений в существующие столбцы, добавление новых таблиц и т. д.). При следующем развертывании веб-приложения изменения, примененные к базе данных в среде разработки с момента последнего развертывания, должны быть применены к рабочей базе данных. Некоторые стратегии управления этим процессом обсуждаются в следующем учебном курсе. В этом учебнике рассматривается развертывание всей базы данных из среды разработки в рабочей среде.

Развертывание базы данных в рабочей среде

В оставшейся части этого руководства рассматривается развертывание базы данных из среды разработки в рабочую среду. При необходимости убедитесь, что учетная запись с поставщиком веб-узла включает Microsoft SQL Server поддержку базы данных. Кроме того, необходимо иметь некоторую информацию, а именно имя сервера базы данных, имя базы данных и имя пользователя и пароль, используемые для подключения к базе данных.

Как отмечалось ранее в этом учебнике, база данных веб-сайта проверки книги является базой данных SQL Server 2008 Express Edition, хранящейся в App_Data папке. Это может привести к попричине того, что развертывание такой базы данных будет таким же простым, как копирование App_Data папки из среды разработки в рабочую среду. Однако большинство поставщиков веб-узлов не поддерживают размещение баз данных в App_Data папке по соображениям безопасности. Вместо этого веб-узлы предоставляют учетную запись на SQL Server сервере базы данных в своей среде. Для развертывания базы данных из среды разработки в рабочей среде требуется, чтобы база данных была зарегистрирована на сервере базы данных веб-узлов.

Итак, как вы получаете базу данных из среды разработки в рабочую среду? Это можно сделать несколькими способами в зависимости от того, какие службы предлагает веб-узел. С помощью некоторых узлов, таких как DiscountASP.NET, можно выполнить FTP-архивацию базы данных или собственно .mdf файла на веб-сайте, а затем в панели управления восстановить файл резервной копии или присоединить .mdf файл к серверу базы данных SQL Server. Такие средства развертывают базу данных так же просто, как копирование App_Data папки в рабочую среду, а затем присоединение ее через панель управления. Это, возможно, самый простой и быстрый способ публикации базы данных в первый раз.

Другой подход заключается в использовании мастера публикации баз данных. Мастер публикации баз данных — это классическое приложение Windows, которое создает команды SQL для создания схемы базы данных, таблицы, хранимые процедуры, представления, определяемые пользователем функции и т. д. и, при необходимости, данные в таблицах. Затем можно подключиться к серверу базы данных поставщика веб-узла с помощью SQL Server Management Studio а затем выполнить этот скрипт для дублирования базы данных в рабочей среде. Более того, если поставщик веб-узла поддерживает службы публикации баз данных Microsoft s, то сценарий, создаваемый мастером публикации базы данных, автоматически выполняется на сервере базы данных от вашего имени. Поскольку мастер публикации баз данных создает скрипт, который создает схему базы данных и данные, она будет работать независимо от того, предлагает ли поставщик веб-узла такие функции, как присоединение загруженного .mdf файла.

Создание команд SQL для создания схемы и данных базы данных с помощью мастера публикации баз данных

Давайте рассмотрим использование мастера публикации баз данных для развертывания базы данных рецензий книги в рабочей среде. Если вы используете Visual Studio 2008 или более поздней, мастер публикации баз данных уже установлен. Если вы используете Visual Studio 2005, необходимо сначала скачать и установить мастер.

Откройте Visual Studio и перейдите к Reviews.mdf базе данных. Если вы используете Visual Web Developer, перейдите на обозреватель базы данных; Если вы используете Visual Studio, используйте обозреватель сервера. На рис. 4 показана Reviews.mdf база данных в Обозреватель базы данных в Visual Web Developer. Как показано на рис. 4, Reviews.mdf база данных состоит из четырех таблиц, трех хранимых процедур и определяемой пользователем функции.

Нахождение базы данных в обозреватель базы данных или обозреватель сервера

Рис. 4. размещение базы данных в обозреватель базы данных или обозреватель сервера (щелкните, чтобы просмотреть изображение с полным размером)

Щелкните правой кнопкой мыши имя базы данных и выберите пункт "опубликовать в поставщике" в контекстном меню. Запустится мастер публикации базы данных (см. рис. 5). Нажмите кнопку Далее, чтобы перейти за пределы экрана-заставки.

Экран-заставка мастера публикации баз данных

Рис. 5. экран-заставка мастера публикации баз данных (щелкните, чтобы просмотреть изображение с полным размером)

На втором экране мастера перечисляются базы данных, доступные мастеру публикации баз данных, и можно выбрать, следует ли создать скрипты для всех объектов в выбранной базе данных или выбрать объекты для включения в скрипт. Выберите соответствующую базу данных и оставьте параметр "создать скрипт для всех объектов в выбранной базе данных" установленным.

Note

Если появляется сообщение об ошибке "в базе данных DatabaseName типов, которые можно создать с помощью этого мастера, нет объектов", то при нажатии кнопки "Далее" на экране, показанном на рис. 6, убедитесь, что путь к файлу базы данных не слишком длинный. Как отмечалось в этом элементе обсуждения на странице проекта мастера публикации баз данных, эта ошибка может возникать, если путь к файлу базы данных слишком длинный.

Экран-заставка мастера публикации баз данных

Рис. 6. экран-заставка мастера публикации баз данных (щелкните, чтобы просмотреть изображение с полным размером)

На следующем экране можно создать файл скрипта или, если ваш веб-узел поддерживает его, опубликовать базу данных непосредственно на сервере базы данных поставщика веб-узла. Как показано на рис. 7, сценарий записывается в файл C:\REVIEWS.MDF.sql .

Создание скрипта базы данных в файле или публикация ее непосредственно в поставщике веб-узла

Рис. 7. Создание скрипта базы данных в файле или публикация ее непосредственно в поставщике веб-узла (щелкните, чтобы просмотреть изображение с полным размером)

На следующем экране появится запрос на ввод различных параметров создания скриптов. Можно указать, должен ли скрипт включать инструкции DROP для удаления существующих объектов. По умолчанию используется значение true, что нормально при развертывании базы данных в первый раз. Можно также указать, имеет ли целевая база данных SQL Server 2000, SQL Server 2005 или SQL Server 2008. Наконец, можно указать, следует ли создать скрипты для схемы и данных, только для данных или только для схемы. Схема — это коллекция объектов базы данных, таблиц, хранимых процедур, представлений и т. д. Данные — это сведения, находящиеся в таблицах.

Как показано на рис. 8, у меня есть мастер, настроенный на удаление существующих объектов базы данных, создание скрипта для базы данных SQL Server 2008, а также публикацию схемы и данных.

Укажите параметры публикации

Рис. 8. Указание параметров публикации (щелкните, чтобы просмотреть изображение с полным размером)

На последних двух экранах суммируются действия, которые будут выполнены, а затем отображается состояние сценариев. Общий результат работы мастера заключается в том, что у нас есть файл скрипта, содержащий команды SQL, необходимые для создания базы данных в рабочей среде, и заполнять ее теми же данными, что и при разработке.

Выполняя команды SQL в базе данных рабочей среды

Теперь, когда у нас есть скрипт, содержащий команды SQL для создания базы данных, и все остальные данные остаются, выполните сценарий в рабочей базе данных. Некоторые поставщики веб-узлов предлагают текстовое поле на панели управления, где можно вводить команды SQL для выполнения в базе данных. При наличии очень большого файла скрипта этот параметр может не работать ( REVIEWS.MDF.sql например, размер файла скрипта превышает 425 КБ).

Лучшим подходом является прямое подключение к рабочему серверу базы данных с помощью SQL Server Management Studio (SSMS). Если на компьютере установлен SQL Server выпуск, отличный от Express, то, вероятно, у вас уже установлена среда SSMS. В противном случае можно скачать и установить бесплатную копию SQL Server Management Studio Express Edition.

Запустите SSMS и подключитесь к серверу базы данных веб-узлов, используя сведения, предоставленные поставщиком веб-узла.

Подключение к серверу базы данных поставщика веб-узла

Рис. 9. подключение к серверу базы данных поставщика веб-узла (щелкните, чтобы просмотреть образ полного размера)

Разверните вкладку базы данных и перейдите к базе данных. Нажмите кнопку Создать запрос в левом верхнем углу панели инструментов, вставьте команды SQL из файла скрипта, созданного мастером публикации баз данных, и нажмите кнопку выполнить, чтобы выполнить эти команды на сервере рабочей базы данных. Если файл скрипта особенно большой, выполнение команд может занять несколько минут.

Подключение к серверу базы данных поставщика веб-узла

Рис. 10. подключение к серверу базы данных поставщика веб-узла s (щелкните, чтобы просмотреть изображение полного размера)

Вот и все! На этом этапе база данных разработки дублируется в рабочей среде. При обновлении базы данных в среде SSMS должны отобразиться новые объекты базы данных. На рис. 11 показаны таблицы и хранимые процедуры рабочей базы данных, а также определяемые пользователем функции, которые отражают значения в базе данных разработки. Так как мы представили инструкции по публикации данных в мастере публикации баз данных, таблицы рабочих баз данных имеют те же данные, что и таблицы базы данных разработки на момент выполнения мастера. На рис. 12 показаны данные в Books таблице рабочей базы данных.

Объекты базы данных дублируются в рабочей базе данных

Рис. 11. объекты базы данных дублируются в рабочей базе данных (щелкните, чтобы просмотреть изображение с полным размером)

Рабочая база данных содержит те же данные, что и база данных разработки.

Рис. 12. Рабочая база данных содержит те же данные, что и в базе данных разработки (щелкните, чтобы просмотреть изображение с полным размером)

На этом этапе мы развернули базу данных разработки только в рабочей среде. Мы еще не рассматривали развертывание самого веб-приложения или проверили, какие изменения конфигурации необходимы для того, чтобы приложение в рабочей среде использовало рабочую базу данных. Эти проблемы будут рассмотрены в следующем руководстве.

Сводка

Для развертывания управляемого данными веб-приложения необходимо скопировать базу данных, используемую во время разработки, в рабочую среду. Многие поставщики веб-узлов предлагают средства для упрощения процесса развертывания базы данных. Например, с помощью DiscountASP.NET можно выполнить FTP-файл базы данных .mdf (или резервную копию), а затем подключить базу данных к серверу базы данных с помощью панели управления. Другой вариант, который работает независимо от того, какие функции предлагает поставщик веб-узлов — это средство мастера публикации баз данных Microsoft s, которое создает скрипт команд SQL для создания схемы и данных базы данных разработки. После создания скрипта его можно выполнить в рабочей базе данных.

Теперь, когда книга просматривает базу данных веб-приложений в рабочей среде, мы можем развернуть приложение. Однако сведения о конфигурации веб-приложения указывают строку подключения к базе данных, а эта строка подключения ссылается на базу данных разработки. Необходимо обновить эти сведения строки подключения при развертывании сайта в рабочей среде. В следующем учебнике рассматриваются различия в конфигурации и описываются шаги, необходимые для публикации веб-узла рецензий на основе данных в рабочую среду.

Поздравляем с программированием!

Дополнительные материалы

Дополнительные сведения о разделах, обсуждаемых в этом руководстве, см. в следующих ресурсах: