#asp.net-mvc-3 #c#-4.0 #service-layer
#asp.net-mvc-3 #c #-4.0 #уровень обслуживания
Вопрос:
Я хочу использовать шаблон уровня обслуживания (как описано на сайте Мартина Фаулера здесь) для моего ASP.NET Приложение MVC 3.
Моя цель — настроить структуру решения таким образом, чтобы мне было легче изучить шаблон, установив для него надлежащую структуру, прежде чем углубляться в код.
Может ли кто-нибудь показать мне обычный способ компоновки решения, проектов и папок в решении Visual Studio 2010?
Ответ №1:
Есть много способов реализовать это. Либо выделите уровень обслуживания в отдельную сборку, либо он может находиться в той же сборке, что и ASP.NET Приложение MVC (например, в Services
папке). На самом деле для этого нет правила. Это будет зависеть от уровня повторного использования, который вы ожидаете от этого уровня, и размера вашего проекта. Однако важно абстрагировать этот уровень обслуживания:
public interface IMyService
{
... some service methods
}
и тогда ваши контроллеры будут работать только с этой абстракцией:
public class MyController: Controller
{
private readonly IMyService _service;
public MyController(IMyService service)
{
_service = service;
}
public ActionResult MyAction()
{
... call some methods on the service layer
}
}
Затем, чтобы подключить конкретную реализацию, вы должны настроить свою среду внедрения зависимостей.