Cqrs делает веб-проект намного проще. На сайте get все запросы будут выглядеть
msgstr "выбрать * из таблицы, где id = @id"). Для этих простых запросов вам не понадобится такая форма, как NHiberante. Вам не нужно использовать базу данных sql, и когда вы захотите, вы можете сериализовать свой объект в таблицу базы данных или использовать соглашение об именах. Вы по-прежнему можете запрашивать базу данных чтения с помощью NHibernate, но вы не получите от этого никаких преимуществ, потому что все ваши запросы будут одинаковыми.
public class Controller
{
public ActionResult Get(Guid id)
{
var viewModel = reportingDatabase.Get(id);
return View(viewmodel);
}
}
На командной стороне контроллеры будут выглядеть так:
public class Controller
{
public ActionResult Post(SomeForm form)
{
// do validation
var command = new SomeCommand(form.Property1, form.Property2);
bus.Send(command);
return redirecto(something else);
}
}
Контроллер просто отправляет сообщение, и он не знает, куда отправляется сообщение и каков результат сообщения. Эта часть программы очень проста в программировании. Cqrs сделает написание веб-части приложения очень скучным, но вы можете сделать его более увлекательным, добавив некоторый код, который помогает пользователю принимать решения (необязательно возвращая json, используемый ajax).