Я большой сторонник разделения и редко, если вообще когда-либо, вижу необходимость выбросить полный набор данных в пользовательский интерфейс.
На самом деле вы должны только передавать объекты в пользовательский интерфейс, который необходимо использовать, поэтому, если вы не показываете большую диаграмму или какую-то структуру данных, которая должна отображать отношения между данными, это не стоит затрат.
Меньшие подмножества данных, когда это применимо, гораздо эффективнее. Действительно ли ваше приложение использует все функции в наборе данных пользовательского интерфейса? если нет, то лучший способ продолжить - передать только те данные, которые вы отображаете.
Если вы привязываете данные к элементу управления, сортируете / разбиваете на страницы и т. Д. Через него, вы можете реализовать множество интерфейсов, позволяющих поддерживать этот набор данных, в виде гораздо меньшего куска кода.
В этой заметке я бы сохранил данные, которые в основном статичны (например, они не так часто обновляются), в кеше. Поэтому вам нужно посмотреть, как часто данные обновляются, прежде чем вы действительно сможете принять решение.
Наконец, я скажу это снова, я вижу необходимость очень и очень редко использовать набор данных в интерфейсе пользователя. Это очень тяжелый объект данных и экономическая выгода от рассмотрения ваших требований к данным по сравнению с простотой реализации , может значительно перевесить необходимость кэширования набора данных.
ИМХО, наборы данных довольно плохо использовать, если вы беспокоитесь о производительности или использовании памяти.