Blazor 服务器端和 asp.net 核心 AWS 无服务器 lambda 应用程序

Blazor Server Side and asp.net core AWS serverless lambda application

我创建了一个 aws 无服务器 lambda(asp.net 核心)应用程序。我正在考虑在我的一些 API 调用中放置一个前端。

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

这主要是因为我读到客户端->服务器连接是"maintained"(通过signalR)。

希望有这方面经验的人对此进行澄清。

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

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

客户端 Blazor 使用 Web assembly (WASM). There isn't SignalR connection between the client and the server. That works as any other SPA framework except the fact that is C# code compiled in WASM with mono wasm 而不是 JS 在浏览器中执行。

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

总而言之,您不能在无服务器世界中使用服务器端。

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

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

  1. 您在 AWS Amplify 上托管的静态页面 (WASM)。
  2. 您必须手动创建后端作为“AWS 无服务器应用程序”类型保护,当它询问您的类型时,您 select“ASP.NET Core Web API”以及发布时如果您使用 AWS SDK 并且 select 它作为 Lambda。

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