Развертывание сайта
184ASP.NET --- Интернет магазин --- Развертывание сайта
Исходный код проектаЗавершающим и критически важным шагом разработки веб-приложений является развертывание: обеспечение доступности приложения внешнему миру. В этой статье будет показано, как подготовить и развернуть приложение GameStore.
Существует множество разнообразных способов развертывания приложений MVC Framework, а также широкий спектр целевых платформ, предназначенных для развертывания. Приложение можно развернуть на машине Windows Server с Internet Information Services (IIS), что предполагает локальное управление, развернуть с помощью службы удаленного хостинга, самостоятельно управляющей серверами, или же развернуть в облачной инфраструктуре, обеспечивающей работу и масштабирование приложения, гладко удовлетворяя его требованиям.
В течение некоторого времени я размышлял, как организовать полезный пример развертывания в этой статье. Вариант развертывания непосредственно в IIS был исключен, поскольку процесс конфигурирования сервера является длительным и сложным, и большинство разработчиков, использующих MVC Framework и ориентированных на локальные серверы, полагаются в решении задач конфигурирования и развертывания на группу специалистов по информационным технологиям. Использование Windows Azure - облачной платформы от Microsoft, является платным. Таким образом, не остается ничего другого, кроме демонстрации развертывания с использованием хостинга.
Развертывание веб-приложения представляет собой утомительный и подверженный ошибкам процесс, но в Microsoft приложили немало усилий для совершенствования инструментов развертывания в Visual Studio. Таким образом, если необходимо проводить развертывание в инфраструктуру другого вида, вы обнаружите, что среда Visual Studio способна выполнить множество сложных работ.
Экспорт базы данных
Перед началом развертывания веб-приложения на хостинге, необходимо экспортировать существующую базу данных (в нашем случае это база данных GameStore). В качестве тестового хостинга была выбрана компания ISP Server, предоставляющая бесплатный тестовый доступ. Тестовую базу данных можно создать используя интуитивно понятный интерфейс этого сайта:
Теперь можно подключить эту базу данных в Visual Studio. В окне Server Explorer щелкните по кнопке Connect to Database вверху панели и добавьте настройки подключения, как показано на рисунке ниже (обратите внимание, что IP-адрес сервера должен быть указан у хостинг-компании в личном кабинете, имя пользователя и пароль мы создали выше, при добавлении новой базы данных):
Щелкните на кнопке ОК, после чего в окне Server Explorer должно появиться новое подключение (если данные подключения указаны правильно):
Обратите внимание, что вверху указано подключение к локальной версии базы данных GameStore (EFDbContext), а внизу - подключение к базе данных, расположенной на хостинге. Теперь нам нужно экспортировать таблицу Games и данные, содержащиеся в этой таблице, в базу данных на хостинге. Для этого выберите подключение EFDbContext (у вас оно может называться по другому) и раскрывайте содержащиеся в нем элементы, пока не доберетесь до записи для таблицы Games в разрабатываемом приложении GameStore. Не обращайте внимание на таблицы Orders и OrderLines, их мы использовали при создании интернет-магазина на ASP.NET Web Forms 4.5 и здесь они не понадобятся.
Щелкните на таблице Games правой кнопкой мыши и выберите в контекстном меню пункт Open Table Definition (Открыть определение таблицы). Откроется редактор для схемы таблицы. На вкладке T-SQL вы увидите код SQL, приведенный в примере ниже:
CREATE TABLE [dbo].[Games] (
[GameID] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (100) NOT NULL,
[Description] NVARCHAR (500) NOT NULL,
[Category] NVARCHAR (50) NOT NULL,
[Price] DECIMAL (16, 2) NOT NULL,
[ImageData] VARBINARY (MAX) NULL,
[ImageMimeType] VARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([GameID] ASC)
);
Скопируйте этот код SQL из Visual Studio в буфер. Щелкните правой кнопкой по подключению к базе данных, расположенной на хостинге, и выберите в контекстном меню пункт New Query (Новый запрос) и введите в текстовой области скопированный код SQL. Щелкните на кнопке Execute (Выполнить), помеченной с помощью стрелки, в левом верхнем углу окна и Visual Studio обновит базу данных, расположенную на хостинге, добавив в нее таблицу Games.
Теперь, когда таблица создана, ее можно наполнить данными о товарах. Вернитесь к записи для таблицы Games в окне Server Explorer, щелкните на ней правой кнопкой мыши и выберите в контекстном меню пункт Show Table Data (Показать табличные данные). В верхней части открывшегося окна вы найдете кнопку Script (Сценарий), как показано на рисунке ниже:
Откроется новое окно, содержащее еще один оператор SQL. Выполните те же манипуляции с этим кодом SQL, чтобы добавить данные в базу данных, расположенную на хостинге.
Развертывание приложения
После того как настройка базы данных завершена, развертывание приложения осуществляется довольно просто. В Visual Studio щелкните правой кнопкой мыши на проекте GameStore.WebUI в окне Solution Explorer и выберите в контекстном меню пункт Publish (Опубликовать). Откроется диалоговое окно Publish Web (Публикация в веб), которое показано на рисунке ниже:
Щелкните по раскрывающемуся списку и выберите команду New Profile (Новый профиль). В появившемся диалоговом окне введите имя профиля и нажмите кнопку OK:
Щелкните на кнопке Next (Далее) для перехода к следующему этапу процесса развертывания. В новом окне выберите тип развертывания (Publish method) - FTP и укажите данные FTP-аккаунта, необходимые для подключения к серверу. Некоторые хостинг-компании используют в качестве параметров подключения к FTP логин и пароль, созданные при регистрации на их сайте. В случае ISP Server, нужно будет создать новый профиль FTP в личном кабинете и добавить эти данные в это окно:
В следующем окне не нужно заменять какие-либо значения из числа отображаемых. Щелкните на кнопке Next для предварительного просмотра результатов развертывания:
Щелкните на кнопке Publish (Развернуть), чтобы развернуть приложение. Диалоговое окно Publish Web закроется, и вы сможете наблюдать за ходом работ по развертыванию в окне Output среды Visual Studio. Развертывание приложения занимает несколько минут, после чего процесс завершается. Среда Visual Studio откроет окно браузера и перейдет на URL веб-сайта указанного в настройках развертывания.