Возможна ли трехуровневая архитектура приложений с помощью Azure?

Привет, мне поручили преобразовать существующее трехуровневое приложение (уровень представления, бизнес-уровень и уровень данных) в проект Windows Azure.

По сути, я создал веб-роль и поместил в нее уровень представления, затем я создал 2 отдельных проекта библиотеки классов (соответственно, являющихся бизнес-уровнем и уровнем данных) и связал их со слоем представления, используя ссылки.

Однако, когда я развернул приложение в Azure, была загружена только веб-роль (уровень представления): /

Моя текущая трехуровневая архитектура, которая не работает должным образом с лазурным

Может кто-нибудь сказать мне, если:

  1. Можно даже использовать трехуровневую архитектуру с лазурным
  2. Если я ошибся, сославшись на проекты
  3. Если это не может быть достигнуто, существует ли аналогичная архитектура, например, 3 уровня.

Спасибо!


person adi bon    schedule 23.02.2012    source источник


Ответы (3)


Об отсутствующей ссылке: вам нужно будет установить «копировать локальное в истинное» для каждой ссылки, которую вы добавляете в свой проект самостоятельно. Таким образом, все эти ссылки будут упакованы и при развертывании в облаке доступны для вашего проекта.

О презентационном и бизнес-уровне: - Имейте в виду, что если у вас есть веб-роль и роль рабочей роли в вашем приложении, вы получите две отдельные виртуальные машины, запускающие ваше приложение, и вы можете общаться только с помощью внутренних конечных точек. При запуске приложения в Windows Azure подумайте, зачем нужно разделять код на двух виртуальных машинах (при необходимости), потому что у вас наверняка может быть веб-интерфейс, а также код фоновой обработки в веб-роли. Рабочая роль - это ничего, кроме виртуальной машины без предварительно настроенного IIS. Большинство приложений не .net с веб-интерфейсом используют рабочую роль в качестве внешнего интерфейса, поэтому вам нужно тщательно разрабатывать свое приложение, чтобы выбрать, что будет входить в веб-роль, а что - в рабочую роль.

person Avkash Chauhan    schedule 23.02.2012

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

person Craig    schedule 23.02.2012

Azure - это не что иное, как набор компьютеров Windows Server 2008. Вы можете развернуть свое решение по своему усмотрению. Обычно веб-роль используется для веб-уровня (интерфейс), а рабочая роль - для логики (серверная часть). Ваша база данных или хранилище данных - это последний уровень.

person Peter    schedule 23.02.2012
comment
Итак, вы говорите, что мой уровень презентации должен быть веб-ролью, мой бизнес-уровень должен быть рабочей ролью, а мой уровень данных (который подключается к SQL Azure) должен быть другой рабочей ролью, затем я соединяю их вместе через ссылки? - person adi bon; 23.02.2012
comment
Вы можете подключить их к служебной шине Azure / очередям WCF / Azure или любому другому каналу связи, о котором вы только можете подумать. - person Peter; 23.02.2012
comment
Он вообще НЕ ДОЛЖЕН быть отдельной рабочей ролью. Веб-роль - это просто виртуальная машина с установленным IIS. Вы можете запускать фоновые процессы, службы Windows ... все, что вы бы запускали на традиционном сервере, и все в одной роли. Если вы ссылаетесь на этот уровень данных в своем веб-проекте, DLL уровня данных будет развернута вместе с сайтом. Затем вы указываете строку подключения на SQLAzure (или любой другой SQL-сервер, доступный в Интернете), и вы отправляетесь в гонку. - person Matt Quinn; 23.02.2012
comment
Я изначально сделал это, но была развернута только веб-роль, другие библиотеки классов, на которые имеется ссылка, не были развернуты - person adi bon; 23.02.2012
comment
@adibon - вы путаете «роль» с «библиотекой классов». Windows Azure просто запускает виртуальные машины Windows Server. Вы сами выбираете, что в них положить. В вашем случае вы создали веб-приложение и сослались на несколько библиотек классов. Эти библиотеки классов развертываются вместе с вашим веб-приложением. Вот почему вы видите только одну «роль». - person David Makogon; 27.02.2012
comment
привет, Дэвид, мне удалось успешно реализовать трехуровневое приложение на Azure. Я в основном помещаю свой уровень представления в веб-роль, а затем я помещаю свой бизнес-уровень со слоем доступа к данным в рабочую роль. Все работает нормально! - person adi bon; 28.02.2012