Если ObjectDataSource не является ответом для большого приложения, что это? - PullRequest
5 голосов
/ 20 декабря 2010

Цитируя ответ Эндрю Харе на Этот вопрос .

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

Архитектура приложения = Поддержка + Масштабируемость + ......

И я думаю, что каждая статья, которую я прочитал, чтобы начать изучать архитектуру приложения, использовала некоторые классы для построения уровня бизнес-данных и использовала ObjectDataSource для соединения уровня представления с бизнес-уровнем.

Похоже, яу меня все неправильно.Какой действительно лучший подход для бизнес-уровня и его связи с уровнем презентации?

Ответы [ 2 ]

4 голосов
/ 23 декабря 2010

Нет сомнений, что ObjectDataSource облегчает процесс привязки.

Он обрабатывает фильтрацию, подкачку страниц и т. Д. С меньшей головной болью.

Точки, которые необходимо учитывать.

  • Представление (.aspx) имеет ссылку на объект Business, поэтомуон ограничивает некоторые задачи, такие как рефакторинг, в то время как приложение расширяется.
  • Многие приложения в настоящее время используют IoC, и ODS не поддерживает это.
  • ODS работает с параметрами, и если условия фильтра увеличиваются, мы должныувеличить №параметров в бизнесе, что также нежелательно.

Так что, если мы рассмотрим все эти точки, ODS не будет хорошо масштабироваться.

2 голосов
/ 20 декабря 2010

Я не использую ObjectDataSource;лично мне нравится контроль над процессом связывания, поэтому я связываюсь напрямую через свойство DataSource, а не использую элементы управления DS.Поскольку DS контролирует, когда связывать или не связывать, я не люблю подключаться к событиям, чтобы отменить привязку, только потому, что я не хотел делать это в это конкретное время ... Он может маскировать некоторые ошибки кодирования, затрудняя отладку, но если есть ошибка, вы можете подключиться к выбранному, вставленному и т. д. событию и обработать ошибку, я считаю.

Однако я не понимаю, почему это неправильно;Я не совсем уверен, почему он не будет хорошо масштабироваться ... если он работает для вас, и когда вы проверяете производительность в порядке, то почему бы и нет, я бы сказал.

HTH.

...