Разработка приложения с тремя слоями и двумя уровнями [закрыто]

StackOverflow https://stackoverflow.com//questions/23031060

  •  21-12-2019
  •  | 
  •  

Вопрос

Насколько я понял, мы можем сказать, что 3-уровневая архитектура означает отдельные проекты для каждой проблемы.Это Уровень пользовательского интерфейса, Бизнес-уровень и Уровень данных.Пользовательский интерфейс взаимодействует с BL, а BL - с DB, и наоборот.Это хорошо для ремонтопригодности, и идея разделения проблем разумна.Но, с другой стороны, уровни отличаются от слоев.А именно, уровни напрямую связаны с машинами / сетью.Я имею в виду, когда мы говорим "2 уровня", это, как правило, клиентская машина и сервер базы данных.Когда мы говорим "3 уровня", обычно это клиентская машина, машина сервера приложений и машина сервера базы данных.Таким образом, с точки зрения этой информации возможна разработка двухуровневого приложения, использующего 3-уровневую архитектуру.

До сих пор я использовал 3 уровня, но пришло время решить, следует ли нам разрабатывать 3 уровня или 2 уровня.На местах будет работать Windows form project и около 150 клиентов и 100 ручных терминалов, которые будут использовать Windows form project и взаимодействовать через веб-службы.В ручных терминалах очевидно, что лучшим решением является использование трехуровневых, но для клиентов Windows, которые будут работать на Windows 7, трудно решить, следует ли нам взаимодействовать с базой данных через один сервер приложений или напрямую подключаться к базе данных.

Главный вопрос здесь в чем преимущества 3-уровневой архитектуры по сравнению с 2-уровневой.Для меня еще один уровень означает еще один сервер / хост / машину, который должен быть запущен все время, что может быть накладным.

Пожалуйста, помогите нам выбрать наилучшую многоуровневую архитектуру.

Это было полезно?

Решение

Я бы порекомендовал только использовать «3 уровня» (клиент, сервер приложений и сервере базы данных), если вы собираетесь выполнять некоторую основную задачу на сервере приложений, который в противном случае будет потреблять ресурсы, которые также должны выполнить платформу базы данных.ОтказНапример, объединение соединения или программное обеспечение для управления соединением, работающим между приложением (бизнес-уровнем) и сервером базы данных (слой данных).

Другие советы

Допустим, у вас есть эти компоненты:UI, Common, Biz, DAL

При разработке приложений 2 или 3 уровня вы развертываете UI и Common вкл . client и Common, Biz , DAL вкл . server (обратите внимание, что common развернут на обоих), и вы пытаетесь подключиться к своему бизнесу через .Net Remoting или WCF И, наконец, база данных может находиться на Сервере или других Серверах последнего уровня.

Я надеюсь, что это поможет

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top