Развертывание сайта

184 Исходный код проекта

Завершающим и критически важным шагом разработки веб-приложений является развертывание: обеспечение доступности приложения внешнему миру. В этой статье будет показано, как подготовить и развернуть приложение 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 должно появиться новое подключение (если данные подключения указаны правильно):

Новое подключение в окне 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 (Сценарий), как показано на рисунке ниже:

Кнопка Script в окне с табличными данными

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

Развертывание приложения

После того как настройка базы данных завершена, развертывание приложения осуществляется довольно просто. В Visual Studio щелкните правой кнопкой мыши на проекте GameStore.WebUI в окне Solution Explorer и выберите в контекстном меню пункт Publish (Опубликовать). Откроется диалоговое окно Publish Web (Публикация в веб), которое показано на рисунке ниже:

Диалоговое окно Publish Web

Щелкните по раскрывающемуся списку и выберите команду New Profile (Новый профиль). В появившемся диалоговом окне введите имя профиля и нажмите кнопку OK:

Создание нового профиля при развертывании

Щелкните на кнопке Next (Далее) для перехода к следующему этапу процесса развертывания. В новом окне выберите тип развертывания (Publish method) - FTP и укажите данные FTP-аккаунта, необходимые для подключения к серверу. Некоторые хостинг-компании используют в качестве параметров подключения к FTP логин и пароль, созданные при регистрации на их сайте. В случае ISP Server, нужно будет создать новый профиль FTP в личном кабинете и добавить эти данные в это окно:

Сведения о профиле FTP, необходимые для подключения

В следующем окне не нужно заменять какие-либо значения из числа отображаемых. Щелкните на кнопке Next для предварительного просмотра результатов развертывания:

Экран предварительного просмотра в диалоговом окне Publish Web

Щелкните на кнопке Publish (Развернуть), чтобы развернуть приложение. Диалоговое окно Publish Web закроется, и вы сможете наблюдать за ходом работ по развертыванию в окне Output среды Visual Studio. Развертывание приложения занимает несколько минут, после чего процесс завершается. Среда Visual Studio откроет окно браузера и перейдет на URL веб-сайта указанного в настройках развертывания.

Пройди тесты
Лучший чат для C# программистов