Структура проекта MVC-3

У меня есть следующая структура проекта, это все отдельные проекты, мне сказали сделать это таким образом, так что это не мой выбор.

CORE 
  --Self Explanitory
DATA 
  --Contains EF 4.1 EDMX, POCO's Generic Repository Interface
DATAMapping
  --Contains Generic Repository
Services
  -- Contains nothing at the moment
MVC 3 Application
  -- Self Explanitory

Вот мой вопрос. Я читал, что лучше всего держать контроллеры на диете и что модели / модели представления должны быть тупыми, поэтому представляем часть уровня обслуживания в структуре моего проекта. Актуальный вопрос сейчас; Это хороший подход, или я создаю слишком много работы для себя?

Итак, если я хочу сказать, что у меня есть какие-то CRUD-операции для продуктов или категорий или любых других объектов, репозиторий должен быть создан из уровня обслуживания/уровня бизнес-логики?

Некоторый ввод пожалуйста??


person CrazyCoderz    schedule 02.04.2011    source источник


Ответы (1)


Лично у меня есть мой сервисный уровень, ссылающийся только на общие и абстрактные репозитории для операций CRUD. Например, конструктор сервисного уровня может выглядеть так:

public class MyService: IMyService
{
    private readonly IFooRepository _fooRepo;
    private readonly IBarRepository _barRepo;

    public MyService(IFooRepository fooRepo, IBarRepository barRepo)
    {
        _fooRepo = fooRepo;
        _barRepo = barRepo;
    }

    public OutputModel SomeBusinessMethod(InputModel input)
    {
        // ... use CRUD methods on _fooRepo and _barRepo to define a business operation
    }
}

и контроллер просто возьмет IMyService в свой конструктор и будет использовать бизнес-операцию.

Затем все будет подключено выбранной вами инфраструктурой внедрения зависимостей.

person Darin Dimitrov    schedule 02.04.2011
comment
Я согласен с Дариной. Эта структура упрощает жизнь - person JP.; 02.04.2011
comment
Потрясающе спасибо. У меня есть еще один вопрос к вам, так как вы, кажется, отлично разбираетесь в этом. Я свяжу это, когда я это опубликую - person CrazyCoderz; 02.04.2011
comment
stackoverflow.com/questions/5524414/ - person CrazyCoderz; 02.04.2011