Я вижу две основные "школы мыслей", когда речь идет о создании более масштабных корпоративных приложений на .NET(Winforms, WPF, ASP.NET).
Некоторые люди используют "шаблон репозитория", который использует репозиторий, который знает, как извлекать, вставлять, обновлять и удалять объекты. Эти объекты довольно "тупые" в том смысле, что они не обязательно содержат много логики - например, они являются более или менее объектами передачи данных.
В другом лагере используется то, что я называю "умными" бизнес-объектами, которые знают, как загружать себя, и обычно они имеют метод Save(), возможно Update() или даже Delete(). Здесь вам действительно не нужен репозиторий - сами объекты знают, как загружать и сохранять себя.
Большой вопрос: что вы используете или предпочитаете? И почему?
Используете ли вы один и тот же подход во всех своих приложениях, или у вас есть какие-то особые критерии, когда нужно выбирать один подход по сравнению с другим? Если да - каковы эти критерии?
Я не пытаюсь начать здесь пламенную войну - просто пытаюсь выяснить, что все думают об этом и каково ваше мнение, и почему вы используете один (или оба) шаблона над другим.
Спасибо за любой конструктивный ввод!