Комментарии 11
Парадигма CQRS в том или ином виде предполагает, что вызовы Query не будут менять состояние приложения. То есть многократные вызовы одной и той же query, в рамках одного запроса, будут иметь один и тот же результат.
НЕЕЕЕ, НУ ТАК НЕ ИНТЕРЕСНО....
+1
Не обязательно было разделять на IQuery и IAsyncQuery, можно в out передать Task.
+2
Это не очень хорошее решение, работа с асинхронным кодом отличается даже на уровне компилятора. Поэтому не стоит объединять это под одним интерфейсом, интерфейс должен быть явным. Да и каждый раз оборачивать возвращаемое значение IQuery в Task ужасно.
Написать один раз вот так легче:
public interface IAsyncQuery<TIn, TOut>: IQuery<TIn, Task<TOut>
{
}
+1
Код хендлера
Контроллер
Закостыливание разделением портит картину. Отсутствие ковариации. И метод кстати все равно у вас асинхронный. На уровне компилятора все так же будет, напишите await — сгенерится стейтмашина.
Контроллер
Закостыливание разделением портит картину. Отсутствие ковариации. И метод кстати все равно у вас асинхронный. На уровне компилятора все так же будет, напишите await — сгенерится стейтмашина.
0
Пытался прочесть статью внимательно.
Не смог. Попахивает велосипедом, щедро сдобренным непонятными абстракциями.
При этом не видно
1) Универсальности кода
2) Простоты синтаксиса
3) Прозрачной архитектуры
Может быть написано сумбурно, но я не нашел ничего такого, что нельзя было сделать не выходя за рамки архитектуры EF и LINQ. Абстракции ради абстракция лишь утяжеляют код.
Не смог. Попахивает велосипедом, щедро сдобренным непонятными абстракциями.
При этом не видно
1) Универсальности кода
2) Простоты синтаксиса
3) Прозрачной архитектуры
Может быть написано сумбурно, но я не нашел ничего такого, что нельзя было сделать не выходя за рамки архитектуры EF и LINQ. Абстракции ради абстракция лишь утяжеляют код.
+1
Как с помощью датасета неявно закешировать результаты Query? Тут скорее вопрос методологии и вам CQRS не нравится
0
Подход прикольный, но добавление чего-то нового призывает делать рутину, которую можно было избежать. К тому же сервисы имеют побочные эффекты, и нечего им делать в домене.
По моему мнению в домене должна лежать чистая логика, которую можно легко тестить, а заниматся моками для домена это как то странно.
Я стараюсь придерживаться такого принципа: домен — калькулятор.
По моему мнению в домене должна лежать чистая логика, которую можно легко тестить, а заниматся моками для домена это как то странно.
Я стараюсь придерживаться такого принципа: домен — калькулятор.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Глобальное кеширование результатов Query в ASP.NET CORE