Существует два аспекта: платформы и трафик, описанные ниже ...
Все в платформе Microsoft
В многоуровневых решениях, где конечным клиентом является Silverlight ивы собираетесь поделиться сгенерированным кодом через службы RIA или у вас есть клиент WPF со службами RIA WCF; первое решение дает вам лучший дизайн.
Конечный клиент не от Microsoft
Если ваш конечный клиент не является клиентом Microsoft, например Flex / Flash, Java или любым интеллектуальным клиентом на основе ajax, то первая модель не будет полезнатак как он должен отслеживать себя (самообследование объектов).Вторая модель здесь предпочтительна.
Приложения с низким трафиком
Если сетевой трафик не так важен и ваш дизайн программного обеспечения более важен, или у вас средне масштабируемая средняяшины для кэширования и т. д., такие как App Fabric и т. д., первое хорошее решение, которое улучшит дизайн.
Приложения с высоким трафиком
Первая модель будет сериализовать больше данных, чем необходимои это может быть реальной проблемой производительности в приложениях с высоким трафиком.Таким образом, в этом случае вторая модель будет работать лучше, потому что только если пользователь запрашивает больше справочных данных, только они будут загружены.
Это довольно компромиссная проблема между «Лучшим дизайном» и «Лучшей производительностью»и его нужно выбирать на основе параметров, упомянутых выше, и может быть больше параметров в зависимости от сложности проекта, размера команды, документации и т. д.