【问题标题】:Blazor Server Side and asp.net core AWS serverless lambda applicationBlazor 服务器端和 asp.net 核心 AWS 无服务器 lambda 应用程序
【发布时间】:2020-02-05 23:14:17
【问题描述】:

我创建了一个 aws serverless lambda (asp.net core) 应用程序。我正在考虑为我的一些 API 调用添加前端。

我想继续使用 c# 并将 Blazor 作为一个选项。然而,我担心由于 lambda(按需)的性质,这与 Blazor 不兼容。

这主要是因为我读到客户端->服务器连接是“维护的”(通过 signalR)。

希望对此主题有经验的人对此进行澄清。

【问题讨论】:

    标签: asp.net-core aws-lambda aws-api-gateway blazor blazor-server-side


    【解决方案1】:

    有 2 个 Blazor :服务器端和客户端(又名 wasm)。

    服务器端 Blazor 在服务器上执行,每个用户的操作都通过 SignalR 连接发送到服务器。渲染组件时,SignalR 将结果发送到客户端,并由一个小的 js 脚本显示它。

    客户端 Blazor 使用 Web assembly (WASM) 在浏览器中执行。客户端和服务器之间没有 SignalR 连接。除了在 WASM 中使用 mono wasm 而不是 JS 编译的 C# 代码这一事实之外,它与任何其他 SPA 框架一样工作。

    服务端从 ASP.Net core 3.0 开始发布,MS 支持。
    客户端仍处于预览阶段,应该会在 2020 年年中发布。

    总而言之,在无服务器的世界里,你不能使用服务器端。

    【讨论】:

    • 我相信有,但在 AWS 上没有。由于 Blazor Server 中的客户端-服务器通信使用 SignalR,因此允许将无状态工作负载与 SignalR 一起使用的服务将起作用。我只知道 Azure SignalR 服务,它似乎是一种自动取款机。
    【解决方案2】:

    Blazor Server:AWS 上没有针对使用 Lambda 的无服务器的最终解决方案,也没有使用 AWS Elastic Beanstalk 的解决方案。

    Blazor Web Assembly:如果这里有解决方案。

    1. 您在 AWS Amplify 上托管的静态页面 (WASM)。
    2. 您必须手动将后端创建为“AWS 无服务器应用程序”类型保护,当它要求您选择“ASP.NET Core Web API”类型时,您必须使用 AWS 开发工具包并将其选择为 Lambda。

    通过这种方式,您将拥有一个超可扩展的应用程序。

    【讨论】:

      猜你喜欢
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      • 2020-09-18
      • 2021-10-21
      • 2019-05-28
      • 2021-10-29
      • 2020-04-14
      • 1970-01-01
      相关资源
      最近更新 更多