Это абсолютно зависит от вашего приложения, сферы его применения и требований. Представлять слои абстракции просто ради слоев - значит вводить сложность и косвенность, где зачастую это ни к чему вас не приведет. Для чрезмерного использования многоуровневой архитектуры в настоящее время вводится термин Лазанья Софт - замена печально известного Спагетти Софт .
Чтобы прояснить это, я не предлагаю против уровней абстракции. Их использование очень сильно зависит от ваших конкретных требований.
Я бы начал с простой архитектуры и добавлял слои по мере необходимости для обеспечения возможности тестирования и обслуживания. Текущая версия Entity Framework (4.1 на момент написания этой статьи) позволяет работать с POCOs , а DbContext
во многом напоминает Repository и Unit Работа шаблонов. Эти готовые функции в большинстве случаев могут быть достаточными для начала.