Одна вещь состоит в том, что DataSets не способны обеспечить совместимость.Даже типизированные наборы данных также не очень совместимы, когда речь идет о потреблении типизированных наборов данных от не .net-клиента.Ссылка на эту ссылку .Если вам нужно добиться совместимости, тогда боритесь за DTO, в противном случае постарайтесь, чтобы ваша команда понимала DTO в течение определенного периода времени, потому что наборы данных все же не так уж и плохи.,Например - если вы возвращаете List<T>
из DAL, вместо этого вы должны вернуть IList<T>
.Некоторые люди доходят до IEnumerable<T>
, потому что все, что вам нужно, - это способность перечислять.Но тогда, делая это, не становитесь архитектором астронавтов .
. В моих приложениях я выяснил, что возвращение IList<T>
вместо List<T>
загрязняет мою кодовую базу с помощью таких кодов:
//consider personCollection as IList<Person>
(personCollection as List<Person>).ForEach(//Do Something)
Поэтому я лично стараюсь поддерживать баланс между возвращающимся интерфейсом или конкретным объектом.Если вы спросите меня, что я делаю сейчас, я скажу, что возвращаюсь List<T>
.На меня повлияло то, что я не стал архитектором-космонавтом .