【问题标题】:Blazor Server vs Blazor Web Assembly [closed]Blazor 服务器与 Blazor Web 程序集 [关闭]
【发布时间】:2021-03-04 03:53:08
【问题描述】:

我将使用新的 .NET 5 Blazor 框架创建一个 ERP 应用程序,其中包含 300 个页面和 250 个并发用户。我想知道在开发 ERP 应用程序时首选哪种建模托管:Blazor Server 或 Blazor Web Assembly。

【问题讨论】:

    标签: blazor blazor-server-side blazor-webassembly


    【解决方案1】:

    如果保持相同的功能级别,Blazor 服务器应用程序或 WebAssembly 将消耗几乎相同的资源:API 调用和双向通信(WebSocket = SignalR 连接)

    如果您不需要 WebSocket,那么 WebAssembly 可以更好地扩展。

    对于少于 5000 个并发连接的 Intranet,Blazor Server 是更好的选择,因为:

    • 无需创建API,直接从页面代码调用业务逻辑。例如 cmd.ExecuteQuery()。开发 API 是一项艰巨的开发任务,请使用 gRPC 来简化任务。
    • 您可以像 WinForm 应用程序一样进行调试,这非常宝贵。不使用 API 让调试更容易

    WebSocket 更适合 CPU 密集型处理,可以在客户端或调用很少 API 的站点上运行

    【讨论】:

      【解决方案2】:

      Blazor 服务器应用在服务器上运行,并通过 SignalR 与其客户端(浏览器)通信。服务器不会为每个与应用程序的连接创建应用程序实例。由于代码在服务器上执行,并且只有 html 差异被传递给客户端以更新 DOM,服务器为每个连接的客户端创建一个电路对象,该对象存储应用程序状态、会话数据等。这可以是要求很高,但它仍然可以工作,并且服务器可以同时为数千个客户端提供服务。

      WebAssembly Blazor 应用托管的工作方式不同。服务器的作用只是在首次访问应用程序时为其提供服务。应用程序本身在客户端的浏览器上运行,一切都在客户端上执行。此处不涉及服务器。当您的 Web 应用程序是 MVC 应用程序或 Razor Pages 应用程序时,执行从 Blazor 客户端到 Web Api 端点的 HTTP 调用等效于执行从客户端浏览器到 Web Api 的 AJAX 调用。实际上,在幕后,WebAssembly 应用程序使用 JavaScript Fetch Api 将 HTTP 调用发送到 Web Api 端点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-01
        • 2021-01-14
        • 1970-01-01
        • 2020-06-09
        • 2021-02-08
        • 2021-05-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多