繁体   English   中英

在 ASP.Net Boilerplate 中从应用程序服务层调用 SignalR 集线器是一种不好的做法吗?

[英]Is calling a SignalR Hub from the Application Service Layer a bad practice in ASP.Net Boilerplate?



我在 ASP.Net Core 2.1 中使用了 Asp.Net 样板模板。
我在 Web.Core 程序集中实现了一个集线器并创建了一个控制器。
我可以使用集线器从任何客户端订阅/通知数据,这不是我的问题。

我想在应用服务层使用这个集线器,但默认情况下应用服务层不引用 SignalR。

所以我的问题是:
在应用程序服务层中引用 SignalR 是一种不好的做法吗?

提前致谢 !

问候, 皮埃尔-吕克

在应用层直接依赖一个 web 特性并不是一个好的做法。 因为,它假定表示层独立。

我认为你有几个选择;

  1. 如果您认为您永远不会更改 SignalR 并且您永远不会使用来自另一个应用程序的应用程序层,那么您可以直接引用 SignalR 并使用它。 然而,这应该是最坏的情况。
  2. 在应用层抽象SignalR通信(定义一个接口),在web层实现。 在这种情况下,最好在应用层中定义一个 Null 实现(如果您不知道,请搜索“空对象模式”)以消除依赖性并允许应用层在没有 SignalR 的情况下可用。
  3. 如果您的应用程序层无法使用 null 实现(也许它需要来自客户端的真正答案),那么您应该考虑将 SignalR 依赖的代码移动到 Web 层。

所以,就像任何好的答案一样,这取决于:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM