Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Развертывание веб-приложения ASP.NET подразумевает получение необходимых файлов и ресурсов из среды разработки в рабочую среду. Для веб-приложений, управляемых данными, это включает схему базы данных и данные. Это руководство является первым в серии, в которой рассматриваются шаги, необходимые для успешного развертывания базы данных из среды разработки в рабочую среду.
Введение
Развертывание веб-приложения ASP.NET подразумевает получение необходимых файлов и ресурсов из среды разработки в рабочую среду. На протяжении последних шести учебников мы рассмотрели развертывание простого веб-приложения "Обзоры книг". Этот демонстрационный сайт состоит из ряда серверных ресурсов — ASP.NET страниц, файлов конфигурации, Web.sitemap файла и т. д. вместе с клиентскими ресурсами, такими как изображения и CSS-файлы. Но как насчет веб-приложений, управляемых данными? Какие дополнительные действия необходимо выполнить для развертывания веб-приложения, использующего базу данных?
В следующих нескольких руководствах мы рассмотрим шаги, необходимые для развертывания веб-приложения на основе данных. В этом руководстве описывается, как получить схему и содержимое базы данных из среды разработки в рабочую среду, а в последующем руководстве рассматриваются необходимые изменения конфигурации. После этого мы рассмотрим проблемы развертывания базы данных, которая использует службы приложений (членство, роли, профиль и т. д.).
Изучение обновленного веб-приложения с отзывами на книги
Чтобы продемонстрировать развертывание веб-приложения на основе данных, я обновил веб-приложение "Обзоры книг" с простого статического веб-сайта на управляемый данными. Как и раньше, в этом руководстве есть две версии приложения: одна из них использует модель проекта веб-приложения и модель проекта веб-сайта.
Обновленное веб-приложение "Обзоры книг" использует базу данных SQL Server 2008 Express Edition , которая хранится в папке сайта App_Data (~/App_Data/Reviews.mdf). Если на компьютере установлен SQL Server 2008, демонстрация должна выполняться без ошибок. Если у вас есть более ранняя версия SQL Server, можно установить бесплатную версию SQL Server 2008 Express Edition или использовать скрипты базы данных, доступные в этом руководстве, для создания базы данных самостоятельно.
База Reviews.mdf данных содержит четыре таблицы:
-
Genres— включает запись для каждого жанра, например, технологии, фантастики и бизнеса. -
Books— включает запись для каждой проверки с такими столбцами, какTitle,GenreIdReviewDateиReview, среди прочего. -
Authors— включает сведения о каждом авторе, который внес свой вклад в рецензированную книгу. -
BooksAuthors— таблица соединения "многие ко многим", указывающая, какие авторы написали какие книги.
На рисунке 1 показана диаграмма ER этих четырех таблиц.
Рис. 1. База данных веб-приложения отзывов книг состоит из четырех таблиц (щелкните, чтобы просмотреть изображение полного размера)
Предыдущая версия веб-сайта "Отзывы книг" имела отдельную страницу ASP.NET для каждой книги. Например, была страница с именем ~/Tech/TYASP35.aspx, которая содержала обзор на Изучаем ASP.NET 3.5 за 24 часа. Эта новая версия веб-сайта на основе данных содержит отзывы, хранящиеся в базе данных, и одна страница ASP.NET, Review.aspx?ID=bookId, которая отображает обзор указанной книги. Аналогичным образом, существует страница Genre.aspx?ID=genreId , которая перечисляет проверенные книги в указанном жанре.
На рисунках 2 и 3 показаны страницы Genre.aspx и Review.aspx в действии. Запишите URL-адрес в адресной строке для каждой страницы. На рис. 2 это Genre.aspx?ID=85d164ba-1123-4c47-82a0-c8ec75de7e0e. Поскольку 85d164ba-1123-4c47-82a0-c8ec75de7e0e является GenreId значением для жанра "Технологии", заголовок страницы выглядит как "Обзоры технологий", а маркированный список перечисляет отзывы на сайте, относящиеся к этому жанру.
Рис. 2. Страница жанра технологии (щелкните, чтобы просмотреть изображение полного размера)
Рис. 3. Обзор для самоучителя по ASP.NET 3.5 за 24 часа (щелкните здесь, чтобы увидеть изображение в полном размере)
Веб-приложение "Обзоры книг" также содержит раздел администрирования, в котором администраторы могут добавлять, редактировать и удалять жанры, отзывы и сведения о авторе. В настоящее время любой посетитель может получить доступ к разделу администрирования. В будущем руководстве мы добавим поддержку учетных записей пользователей и разрешаем только авторизованным пользователям страницы администрирования.
Если вы скачайте приложение "Отзывы книг", помните, что его цель заключается в том, чтобы продемонстрировать развертывание приложения на основе данных. В нем не представлены рекомендации по проектированию приложений. Например, отсутствует отдельный уровень доступа к данным (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, можно загрузить резервную копию базы данных или фактический файл .mdf на ваш сайт через FTP, а затем с панели управления восстановить файл резервной копии или присоединить файл .mdf к серверу базы данных SQL Server. С помощью таких средств развертывание базы данных так же просто, как копирование App_Data папки в рабочую среду, а затем присоединение к ней через панель управления. Это, возможно, самый простой и быстрый способ публикации базы данных в первый раз.
Другой подход — использовать мастер публикации базы данных. Мастер публикации баз данных — это классическое приложение Windows, которое создаст команды SQL для создания схемы базы данных — таблиц, хранимых процедур, представлений, пользовательских функций и т. д. и, при необходимости, данных в своих таблицах. Затем вы можете подключиться к серверу базы данных поставщика веб-узлов через SQL Server Management Studio, а затем выполнить этот скрипт, чтобы дублировать базу данных в рабочей среде. Даже лучше, если ваш поставщик веб-узла поддерживает службы публикации баз данных Майкрософт, вы можете создать скрипт, созданный мастером публикации базы данных, автоматически выполняемый на сервере базы данных от вашего имени. Так как мастер публикации баз данных создает скрипт, который создает схему и данные базы данных, он будет работать независимо от того, предлагает ли поставщик веб-узла такие функции, как присоединение отправленного .mdf файла.
Создание команд SQL для создания схемы базы данных и данных с помощью мастера публикации базы данных
Давайте рассмотрим, как использовать мастер Database Publishing Wizard для развертывания базы данных Book Reviews в производственной среде. Если вы используете Visual Studio 2008 или более поздней версии, мастер публикации баз данных уже установлен.
Откройте Visual Studio и перейдите к Reviews.mdf базе данных. Если вы используете Visual Web Developer, перейдите в обозреватель баз данных; Если вы используете Visual Studio, используйте обозреватель серверов. На рисунке 4 показана Reviews.mdf база данных в обозревателе баз данных в Visual Web Developer. Как показано на рисунке 4, Reviews.mdf база данных состоит из четырех таблиц, трех хранимых процедур и определяемой пользователем функции.
Рис. 4. Поиск базы данных в обозревателе баз данных или обозревателе серверов (щелкните, чтобы просмотреть изображение полного размера)
Щелкните правой кнопкой мыши имя базы данных и выберите параметр "Опубликовать в поставщике" в контекстном меню. Откроется мастер публикации базы данных (см. рис. 5). Нажмите кнопку "Далее", чтобы перейти к экрану-заставку.
Рис. 5. Экран заставки мастера публикации базы данных (щелкните, чтобы просмотреть изображение полного размера)
Второй экран мастера выводит список баз данных, доступных мастеру публикации базы данных, и позволяет выбрать, следует ли выполнять скрипты для всех объектов в выбранной базе данных или выбрать объекты для скрипта. Выберите соответствующую базу данных и оставьте опцию "Создать скрипты для всех объектов в выбранной базе данных" отмеченной.
Замечание
Если при нажатии кнопки "Далее" на экране, показанном на рисунке 6, возникает ошибка "Нет объектов в базе данных databaseName, типов поддерживаемых для скриптования этим мастером", убедитесь, что путь к файлу базы данных не слишком длинен. Эта ошибка может возникнуть, если путь к файлу базы данных слишком длинный.
Рис. 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 Edition, скорее всего, установлен SSMS. В противном случае можно скачать и установить бесплатную копию SQL Server Management Studio Express Edition.
Запустите SSMS и подключитесь к серверу базы данных веб-узла, используя сведения, предоставленные поставщиком веб-узла.
Рис. 9. Подключение к серверу базы данных поставщика веб-узлов (щелкните, чтобы просмотреть изображение полного размера)
Разверните вкладку "Базы данных" и найдите базу данных. Нажмите кнопку "Создать запрос" в левом верхнем углу панели инструментов, вставьте команды SQL из файла скрипта, созданного мастером публикации базы данных, и нажмите кнопку "Выполнить", чтобы выполнить эти команды на рабочем сервере базы данных. Если файл скрипта особенно велик, может потребоваться несколько минут для выполнения команд.
Рис. 10. Подключение к серверу базы данных поставщика веб-узлов (щелкните, чтобы просмотреть изображение полного размера)
Вот и все! На этом этапе база данных разработки была продублирована в рабочую среду. Если обновить базу данных в SSMS, вы увидите новые объекты базы данных. На рисунке 11 показаны таблицы рабочей базы данных, хранимые процедуры и определяемые пользователем функции, которые отражают эти таблицы в базе данных разработки. И так как мы поручили мастеру публикации базы данных опубликовать данные, таблицы рабочей базы данных имеют те же данные, что и таблицы базы данных разработки во время выполнения мастера. На рисунке 12 приведены данные из таблицы в Books производственной базе данных.
Рис. 11. Объекты базы данных были дублированы в рабочей базе данных (щелкните, чтобы просмотреть полноразмерное изображение)
Рис. 12. Рабочая база данных содержит те же данные, что и в базе данных разработки (щелкните, чтобы просмотреть изображение полного размера)
На этом этапе мы развернули только базу данных разработки в рабочей среде. Мы еще не рассмотрели развертывание веб-приложения или изучили, какие изменения конфигурации необходимы для того, чтобы приложение в рабочей среде использовало рабочую базу данных. Мы рассмотрим эти проблемы в следующем руководстве!
Сводка
При развертывании веб-приложения на основе данных требуется копирование базы данных, используемой во время разработки в рабочую среду. Многие поставщики веб-узлов предлагают средства для упрощения процесса развертывания базы данных. Например, с помощью DiscountASP.NET можно FTP-файл базы данных (или резервную копию), а затем подключить базу данных .mdf к серверу базы данных с панели управления. Другой вариант, который работает независимо от того, какие функции предлагает поставщик веб-узла, — это средство мастера публикации баз данных Майкрософт, которое создает скрипт команд SQL для создания схемы и данных базы данных разработки. После создания этого скрипта его можно выполнить в рабочей базе данных.
Теперь, когда база данных веб-приложения "Обзоры книг" находится в рабочей среде, мы можем развернуть приложение. Однако сведения о конфигурации веб-приложения указывают строку подключения к базе данных, и эта строка подключения ссылается на базу данных разработки. При развертывании сайта в рабочей среде необходимо обновить эту строку подключения. В следующем руководстве рассматриваются эти различия конфигурации и описаны шаги, необходимые для публикации сайта отзывов книг на основе данных в рабочей среде.
Счастливое программирование!
Дальнейшее чтение
Дополнительные сведения о разделах, описанных в этом руководстве, см. в следующем ресурсе: