簡體   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