В CQRS должна ли моя сторона чтения возвращать DTO или ViewModels?C#

Место общения программистов C#
Anonymous
В CQRS должна ли моя сторона чтения возвращать DTO или ViewModels?

Сообщение Anonymous »

Я обсуждаю с коллегами дизайн стороны чтения приложения CQRS.

Вариант 1: Сторона чтения моего приложения CQRS возвращает DTO, например:

Код: Выделить всё

public interface IOrderReadService
{
public OrderDto Load(int id);
}

public class SomeController
{
public ActionResult SomeAction(int id)
{
var dto = ObjectFactory.GetInstance().Load(id);
var viewModel = Mapper.Map();
return View(viewModel);
}
}

public class SomeOtherController
{
public ActionResult SomeOtherAction(int id)
{
var dto = ObjectFactory.GetInstance().Load(id);
var viewModel = Mapper.Map();
return View(viewModel);
}
}
Вариант 2: Сторона чтения приложения возвращает модели представления, например:

Код: Выделить всё

public interface IOrderReadService
{
public SomeViewModel LoadSomething(int id);
public SomeOtherViewModel LoadSomethingElse(int id);
}

public class SomeController
{
public ActionResult SomeAction(int id)
{
return View(ObjectFactory.GetInstance().LoadSomething(id));
}
}

public class SomeOtherController
{
public ActionResult SomeOtherAction(int id)
{
return View(ObjectFactory.GetInstance().LoadSomethingElse(id));
}
}
Из исследования, которое мы с коллегами провели по этому вопросу, ответы оказались неоднозначными — похоже, что это действительно зависит от контекста. Итак, я спрашиваю вас, мои дорогие последователи StackOverflow:

Имеет ли один подход явные преимущества перед другим? Если да, то какие?

Вернуться в «C#»