Лучшая «современная» технология доступа к данным MS для слабосвязанного постоянно меняющегося кода? - PullRequest
1 голос
/ 15 июля 2011

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

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

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

Есть ли счастливая среда? Или я застрял, создавая нетипизированные таблицы данных при запуске на некоторое время дольше?

1 Ответ

1 голос
/ 15 июля 2011

Это, конечно, дело вкуса, но я обнаружил, что Наборы данных являются корнем всего зла .
ну, может быть, не все зла, но они представляютструктура данных, с которой не связано поведение => они не являются объектами (как определено в ООП) => их использование способствует программированию не в стиле ООП (не говоря уже о процедурном программировании ).

некоторые другие пункты:

  1. gridviews и любой другой элемент управления полностью поддерживают привязку к списку объектов (а не только к наборам данных).
  2. Я думаю, что, если вам нужно внести изменения в вашу модель данных, установить копию VS не так уж сложно.
  3. в том же духе - также не является преувеличенным требованием перекомпилировать ваш код при внесении изменений в модель данных.
  4. если, когда вы меняете таблицу в своей базе данных, это вызывает изменения в вашем пользовательском интерфейсе, я бы сказал, что она не "слабо связана" с какой-либо натяжкой.

Я полагаю, что единственным оправданием использования наборов данных является извлечение данных из вашей базы данных, а затем передача их в ваши объекты.
но теперь, как вы знаете, если в этом нет необходимости- у вас есть ORM, которые выполняют эту работу за вас (EF - это одно, nHibernate - другой, лучше вариант).

Итак, в заключение, я настоятельно рекомендую вам пересмотреть использование DataSets, поскольку они противоречат самим основам объектно-ориентированного.

ps
извините, если это показалось мне немного эмоциональным - я говорил по горькому личному опыту.
Я вырывал волосы в течение 2 лет, потому что приложение, над которым я работал, использовало DataSetsи это означало, что мы должны были продублировать поведение для всех этих данных.uughh ....

...