【问题标题】:ASP .NET MVC & SignalR push notifications clean architectureASP .NET MVC 和 SignalR 推送通知清洁架构
【发布时间】:2017-11-23 13:56:43
【问题描述】:

我正在开发一个使用带有 SignalR 的 ASP .NET MVC 的实时通知系统。

我的应用有这样的三层:

我的所有应用程序方法都已构建并正在运行,我目前正在使用 SignalR 添加通知系统。

我面临的问题是我需要修改每个可能暗示发送通知的方法以返回要通知的用户数组,该数组可能为空(因为该操作可能会关闭通知) .

SignalR 集线器安装在 MVC 层中,因此我无法从业务逻辑层 (BAL) 调用它。我知道我可以使用 SQL Dependencies 以干净的方式解决它,但这不是一个选项。

一个例子是(伪代码):

Controler.cs(无通知)

AddComent(Comment){
 int error = BALComments.AddComment(Comment);
 return View();   
}

Controler.cs(带有通知)

AddComent(Comment){
 NotificationHub notifHub;
 int error = BALComments.AddComment(Comment,UserArray);
 notifHub.notify(UserArray);
 return View();   
}

问题是如何修改我的业务逻辑层中的每个“可通知”方法,而不显式更改每个方法以返回可选的用户数组列表。

【问题讨论】:

    标签: asp.net-mvc design-patterns notifications signalr


    【解决方案1】:

    您需要在 BAL 和 MVC 之间进行某种通信,可能是观察者模式。 BAL 中任何可以检测到发生变化的类都应该将“变化”推送到正在观察事件的任何事物。基本上,您在 BAL 上创建和事件/委托,在 MVC 层,您连接到这些事件并将它们传递给 signal/r

    【讨论】:

      猜你喜欢
      • 2014-05-25
      • 2017-07-07
      • 1970-01-01
      • 2022-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      • 2021-07-23
      相关资源
      最近更新 更多