Разработка приложения с тремя слоями и двумя уровнями [закрыто]
-
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
И, наконец, база данных может находиться на Сервере или других Серверах последнего уровня.
Я надеюсь, что это поможет