Типизированные наборы данных - это обновление от мира классических наборов записей, отключенных от ADO. Я обнаружил, что их все еще приятно использовать в простых ситуациях, когда вам нужно выполнить какую-то задачу сортировки, которая ориентирована на строки - то есть вы все еще хотите работать в контексте парадигмы базы данных строк, столбцов, ограничений и тому подобного. Если в этом контексте использовать мудро, то все в порядке.
Есть несколько областей, где их преимущества уменьшаются:
- Я думаю, что возникшие здесь проблемы с синхронизацией, безусловно, являются проблемой, особенно если вы их настроили или настроили в качестве базового класса.
- В зависимости от количества таблиц данных в наборе данных они могут стать весьма жирными . Я имею в виду это в том смысле, что наборы данных из нескольких таблиц обычно представляют собой реляционное представление данных. Помимо этого, помимо объема занимаемой в памяти памяти, определяются ключи и, возможно, другие ограничения. Опять же, если это то, что вам нужно, но если вам нужно быстро просмотреть данные, один раз, то лучшим вариантом может быть эффективный цикл с устройством чтения данных.
- Из-за их сложного определения и потенциального размера использование их в удаленных ситуациях также не рекомендуется.
- Наконец, когда вы начинаете понимать, что вам нужно работать с вашими данными в объектах, которые относятся к вашей проблемной области, их использование становится скорее помехой, чем выгодой. Вы постоянно обнаруживаете, что перемещаете поля в и из таблиц строк в наборе и сами заботитесь о состоянии таблиц и строк. Вы начинаете понимать, что они создали ОО-языки, чтобы упростить представление реальных проблемных объектов предметной области, и что работа с таблицами, строками и столбцами на самом деле не вписывается в этот образ мышления.
В целом, исходя из своего опыта, я обнаружил, что сложные системы (например, многие крупные корпоративные системы) лучше переходят от использования наборов данных и в большей степени переходят к объектной модели, ориентированной на конкретные области, - как вы получаете и выводите свои данные из этих объектов (например, с использованием ORM) - еще одна тема для разговора. Однако в небольших проектах, где перед данными собирается форма, требующая базового обслуживания и некоторых других простых операций, можно достичь высокой производительности с помощью парадигмы набора данных, особенно в сочетании с мощными функциями привязки данных Visual Studio / .Net.