Объектный источник данных или код - позади: который лучше?

Можно присоединиться к повторяемой из форматированных строк даты, как:

', '.join(item['day'].strftime('%Y-%-m-%-d') for item in chart_data)

, Таким образом, здесь мы таким образом отформатируем каждый day объект, как:

>>> dd.strftime('%Y-%-m-%-d')
'2019-6-24'

и мы тогда присоединяемся к ним вместе, разделенный запятой и пространством (', ').

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

10
задан Josh E 19 May 2009 в 13:38
поделиться

6 ответов

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

11
ответ дан 3 December 2019 в 18:00
поделиться

Чем больше и больше вы знакомитесь с используемой базовой структурой ADO.NET, тем меньше и меньше вы будете полагаться на элементы управления источниками данных, которые входят в состав Visual Studio. Я неукоснительно использовал их в первых нескольких проектах .NET, над которыми работал, но быстро обнаружил, что мне было бы намного лучше, если бы я просто использовал основы подключения и получения данных в базе данных, чем полагался бы на .NET, чтобы сделать его Лучшая попытка сделать это за меня.

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

4
ответ дан 3 December 2019 в 18:00
поделиться

Лично я считаю, что это зависит от проекта. Если это небольшое приложение CRUD с парой страниц, то привязка к источнику данных объекта, вероятно, будет быстрой, простой и будет иметь небольшие последствия.

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

0
ответ дан 3 December 2019 в 18:00
поделиться

На мой взгляд, у обоих есть свое место, свои сильные и слабые стороны. Сэкономленное время на кодировании элементов, которые вы упоминаете, особенно разбиения на страницы и сортировки, очень помогает, но если вы хотите сделать с ними что-то отдаленно интересное, с ними быстро справиться.

Я использую ODS, когда данные будут использоваться только для отображения. Вставьте сетку данных, ODS, и все готово. Но если с этими данными нужно каким-либо образом манипулировать, я держусь подальше от всех встроенных элементов, ни сеток, ни ODS.

0
ответ дан 3 December 2019 в 18:00
поделиться

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

Источники данных настраиваемых объектов, с другой стороны, очень полезны, потому что они допускают внутреннюю привязку к элементу управления GridView. Набор данных, предоставляемый источником данных настраиваемого объекта, позволяет упростить сортировку и разбиение на страницы. Пользовательский объект также обеспечивает центральное расположение для доступа к уровню данных.

0
ответ дан 3 December 2019 в 18:00
поделиться

Самым большим преимуществом DataSourceControls является то, что они абстрагируются от некоторых проблем, связанных с жизненным циклом .NET, обеспечивая поддержку полного CRUD и выражений двусторонней привязки данных, например <% # Bind (" FirstName ")%> (однако двухсторонняя привязка данных - отстой, так что вы, вероятно, ничего не упустите). В качестве шаблона проектирования это довольно хорошая идея с посредственной реализацией (очень похожей на саму WebForms).

Если вы отключите viewstate и обнаружите, что пытаетесь выяснить, почему ваши обратные передачи не обрабатываются, или вам в конечном итоге придется вызвать DataBind () в нескольких местах, источники данных могут снять часть головной боли, потому что DataBoundControls достаточно умен, чтобы знать, когда им нужны данные, и они просто требуют их от источника данных. Вызов DataBind () не требуется.

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

Обратной стороной источников данных является то, что не было много хороших реализаций. И обычно вы в конечном итоге привязываете свой веб-интерфейс к своей реализации постоянства (например, SqlDataSource, LinqDataSource и т.д.), или вы в конечном итоге используете ObjectDataSource, который отстой, потому что он настолько ограничен, требует, чтобы вы жестко кодировали имена классов и имена методов в вашем ASPX , и использует отражение несколько неэффективно. Из-за этого он бесполезен для людей, использующих внедрение зависимостей или статические классы DAO. Это довольно плохо продуманный класс, и кажется, что MS задумала его запоздало.

Лично я предпочел бы использовать источники данных И программный код. Используйте DataSource, чтобы избавиться от головной боли жизненного цикла / состояния просмотра, а затем предоставить ему событие / делегат «Выбрать» в коде программной части. К сожалению, ObjectDataSource может использовать только отражение, однако вы можете легко написать свою собственную реализацию. У меня есть один, но он не публичный. Однако до того, как я написал это, я использовал это, что компенсирует некоторые недостатки ObjectDataSource:

http://mikeoff.blogspot.com/2006/06/objectdatasource-working-alternative.html

7
ответ дан 3 December 2019 в 18:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: