Я знаю, что не все используют тщательную архитектуру при разработке приложения MVC, но давайте предположим, что у меня есть следующая архитектура:
App.Core --> Class Library (POCO or Domain objects)
App.Data --> Class Library (Repository and Entity Framework)
App.Service --> Class Library (Service layer with all business logic)
App.Web --> asp.net MVC 3.0 project
App.Data --> Has a reference to App.Core
App.Service --> Has a reference to App.Core and App.Data
App.Web --> Has a reference to App.Core and App.Service
Внутри нашего приложения MVC мы стараемся придерживаться этого подхода:
- Внутри нашего Контроллера (внутри метода) мы создаем экземпляр ViewModel.
- Мы заполняем эти вызывающие методы ViewModel из нашего уровня App.Service
- Как только ViewModel заполнен, мы возвращаем его в View (таким образом, представление
теперь строго набрано).
Это происходит в 99,9% случаев. Он чистый, нам нравится, и он довольно хорошо себя использует ... и т.д.!
Теперь мой вопрос следующий:
Если мы решим переместить наше приложение в MVC 4.0 и начать использовать
новый Web API подход, я не уверен, что полностью понимаю, где (или как)
это будет соответствовать нашей нынешней архитектуре?
Имейте в виду, что мы открыты, чтобы изменить это вокруг!
Должны ли мы создать новый слой App.WebAPI, который находится между App.Service и App.Web?
Это означает, что внутри наших контроллеров нам больше не нужно напрямую вызывать App.Service, а вместо этого новый слой App.WebAPI?
Или оставить Web API внутри слоя App.Web и заставить контроллеры вызывать другие APIControllers, которые, в свою очередь, будут вызывать слой App.Service?
Не уверен, что здесь есть какой-то смысл ... но, пожалуйста, не стесняйтесь предлагать что-нибудь, поскольку мне любопытно на разных входах.
Спасибо