Что-то, что я заметил, глядя на несколько наборов .NET для начинающих, заключается в том, что построение бизнес-объектов часто обрабатывается на уровне клиента. Затем бизнес-объект передается бизнес-уровню для манипулирования, сериализации в базу данных и т. Д. Не следует ли абстрагировать этот код на бизнес-уровень, чтобы клиенту только нужно передать необходимые данные? Есть ли преимущество иметь бизнес-уровень с абстракциями CRUD, которые принимают объекты только в качестве аргументов?Строительство объекта на клиенте или на бизнес-уровне?
ответ
Я согласен с вами в том, что взаимодействие с бизнес-слоем должно быть максимально простым, со сложными типами и другой сложностью скрыто, или в чем смысл. В точке, где подключены объекты пользовательского интерфейса и бизнеса, должна быть как можно меньше сложности 0.
Я могу представить себе сценарии, где построение относительно сложных типов в этом пункте было бы законным. Чем меньше сайт, тем более вероятно, что < 3 уровня могут быть лучше, чем строгий 3 уровня. Поэтому, чтобы быть откровенным в отношении комплектов стартеров, которые вы видите: возможно, масштаб настолько мал, что строгое разделение проблем будет излишним, и их подход вполне может быть подходящим для ситуации. Или, что они делают, так это complex, что это лучший способ справиться с этим. Чем сложнее проводка или интеграция, или если есть подключаемая модель или что-то еще, то, казалось бы, слишком сложный тип может быть тем, что обеспечивает согласованный гибкий интерфейс. Иногда небольшая сложность в одном месте экономит вам массу сложности в другом месте. Но чаще это не так. Я предполагаю, что на самом деле то, что вы видите как плохое. , , плохой.
- Многие Microsoft быстро начала демки и шаблоны имеют очень плохую архитектуру. Модель веб-форм сама по себе не поддается хорошему Разделение проблем. Вы увидите много официальных примеров: spaghetti code кошмары. Бизнес, DB и пользовательский интерфейс живущих вместе - это ужасная гармония.
- Если вы говорите о 3-й партии SDKs: многие из них требуют сложных типов, передаваемых в бизнес-объекты , потому что они были перенесены из C++ , но никогда не пересмотренные быть объектно-ориентированным. Пару раз мне приходилось делать какие-то безумные типы, чтобы перейти к некоторым объектам программного обеспечения для обработки изображений, где логически потребовалось только два простых значения параметров.
Обычно я выполнял этот вид работы в Service или в режиме доступа к данным. То есть, для меньшего проекта у меня есть мой уровень доступа к данным, возвращающий мои объекты домена. Для больших проектов я бы использовал сервисный уровень для обработки сложной конструкции объекта и вызова бизнес-логики.
- 1. NoRouteToHostException на клиенте или сервере?
- 2. Автозаполнение на сервере или клиенте?
- 3. Сортировка на сервере или на клиенте?
- 4. Строительство объекта
- 5. Строительство объекта
- 6. Строительство объекта Java
- 7. Строительство Elsa на окнах
- 8. Строительство FFmpeg на RHEL4
- 9. Создание данных на сервере или клиенте
- 10. Сценарий запускается на сервере или клиенте?
- 11. Кэширование PHP на клиенте или сервере?
- 12. Обработка данных на клиенте или сервере
- 13. Событие silverlight на сервере или клиенте
- 14. Кэш ASP.NET на клиенте или сервере
- 15. приложение теперь работает на сервере или клиенте
- 16. Создание модели AngularJS на сервере или клиенте?
- 17. Как запретить строительство объекта?
- 18. Запросы на строительство solr
- 19. Строительство WebRTC на прошивке
- 20. Поручитель «на месте» строительство
- 21. Строительство ssldump на Ubuntu
- 22. Строительство OpenWRT на centos7
- 23. EJB на клиенте
- 24. EJB на удаленном клиенте
- 25. readObject() EOFException на клиенте
- 26. Время на клиенте
- 27. модификация ModelState на клиенте
- 28. Строительство объекта домена из DTO
- 29. Создание эскизов на клиенте
- 30. Несколько стартапов на клиенте