在 Windows Service 应用程序中使用 MediatR 和 CQRS



我已经看到MediatR和CQRS的组合主要用于Web项目(特别是在MVC项目中(。我们可以在控制器操作中调用MediatRSend方法,而不会出现问题。

var result = await _mediator.Send(command);

是否适合在 Windows 服务应用程序中使用此组合?我找不到任何在Windows服务应用程序中使用MediatR和CQRS的文章。

MediatR 只是内部消息传递。 您可以在您喜欢的任何类型的应用程序中使用它。

我想我明白 OP 是从哪里来的。

在 Web 应用程序中使用 MediatR 时,很容易看到构成应用程序的各个部分。每个控制器操作都有一个请求/处理程序/可选,每个操作彼此完全分离。

在 Windows 服务中,没有单个操作的概念。只有一个入口点,因此知道在哪里使用 MediatR 可能会令人困惑。

我相信一个好的方法是使用与单个入口点相对应的单个请求/处理程序/响应。这意味着将所有Windows服务逻辑放在处理程序中。

如果这会导致处理程序很长,则随着发现新的抽象和消除代码重复的机会,不断重构。这与您在 MediatR 驱动的 Web 应用程序中执行的方法完全相同。

最新更新