Здравствуйте, Al_Shargorodsky, Вы писали:
A_S>А что по поводу TypedDataset в NET 2.0 и возможности их расширения partial классами? (Это, конечно, очень специфично, но все же). Т.е. хотелось бы услышать, насколько это удобно по сравнению с ORM. Ведь с одной стороны имеем "совершенно чудным образом справляются с 1 и 3", а с другой — пиши любую функциональность в DataRow, иерархию классов можно заменить иерархией интерфейсов, тот же TableAdapter можно унаследовать от свего компонента и расширить в partial class. (Это не агитация за датасеты, просто интересно мнение по поводу...)
partial classes — это большой шаг вперёд. Датасетами я сейчас не пользуюсь принципиально, т.к. в своё время у меня была ими передозировка и как результат была получена жестокая аллергия, но по идее partial classes должны решить часть проблем. Тем не менее, ещё остаются некоторые вопросы. Например, перечислители. В случае с объектами я могу использовать такой вариант:
public enum Gender
{
[MapValue("F")] Female,
[MapValue("M")] Male,
[MapValue("U")] Unknown,
[MapValue("O")] Other
}
и везде в приложении я буду работать с перечислителями. В случае с датасетами я буду вынужден использовать строковые константы.
Второй, более серьёзный момент — повторное использование сущностей. Одна и та же таблица, объявленная в разных датасетах — это два разнах класса. Соответственно написание одного общего бизнес кода для этих сущностей исключается.
Можно ещё повспоминать что-нибудь, но как я уже сказал, мне это малоинтересно. Для себя я уже давно решил проблемы как с отображением объектов в UI, так и с чтением их из базы, причем даже более высокоуровневыми средствами, чем предоставляет ADO.NET. В результате и код UI и код DAL получается значительно проще и короче. Поэтому, тема эффективного использования датасетов меня больше не волнует.
... << RSDN@Home 1.2.0 alpha rev. 0>>