所以通常中间层会为查看器/浏览器生成一个网页
我有点不同意这一点。我会说中间层会生成视图然后可以使用的数据。该视图可以是 ASP.NET WebForm、ASP.NET MVC razor 视图,也可以是 C# 桌面应用程序中的 WinForm。
如果您想要真正分离数据和视图,那么您可能应该考虑将系统的后端设置为 Web 服务,该服务可以由网站/Web 应用程序或桌面客户端/二进制文件使用,例如
SQL DB + 文件系统 -> 业务逻辑/中间层 -> 视图(Web/桌面/移动)
您的第一个视图实现将是桌面 C# 二进制视图。
更重要的是,我如何将更新/通知从数据库推送到中间层,然后再推送到 c# 应用程序?
基于此,我假设您希望 C# 应用程序立即接收更新,并且尽管您的应用程序不是 Web 应用程序(HTML/JS 等),但它实际上是一个 Web 客户端。
像这样的通知往往以几种方式实现。
- HTTP 轮询
- HTTP 长轮询
- HTTP 流式传输
- 网络套接字
后者现在是客户端和服务器之间实时双向全双工通信的标准。但是,如果更新频率非常低,那么您可以简单地实现一个 Web 服务,您的 C# 客户端可以长时间轮询以检查更新。
如果更新频率合理,并且您对推送通知的要求表明是合理的,那么我建议使用实时推送系统,因此我建议使用 WebSocket 服务器和客户端。有许多可用的 WebSocket 服务器和客户端示例,例如:
如果您不想实现和托管您自己的实时消息传递基础架构,那么您可以考虑托管实时服务。