【问题标题】:Using Existing Blazor Server as Blazor WASM Backend使用现有 Blazor 服务器作为 Blazor WASM 后端
【发布时间】:2021-04-20 20:27:09
【问题描述】:

我目前正在使用 Blazor 做一个项目,并演示它们的一些功能。我正在考虑创建此应用程序的 Blazor 服务器、WASM 和 MBB 版本。

我的理解是 Blazor WASM(PWA 版本)需要某种服务器或 API 来访问数据或外部 API。

我目前完成了一个 Blazor Sever 应用程序,我想知道是否可以将它用作 Blazor WASM 和数据之间的主干或中介。

知道我应该怎么做吗?

【问题讨论】:

  • Blazor 服务器将与 Blazor webassembly 正交。您应该选择其中之一。根据您实现服务器版本的方式,将其转换为 webassembly 版本可能很简单。实际上,这不太可能,因为当您从服务器版本开始时,您可以做很多在 webassembly 中是非法的事情(例如直接访问服务器数据库),最终可能会付出很大的努力。
  • 感谢您的意见!我正在考虑使用 Blazor 服务器作为 WebAssembly 应用程序的主干,这样 WebAssembly 仍然可以安全地访问数据,而我不必为它开发另一个 API 项目。
  • 你可以两者兼得,你可以在服务上完成所有数据工作,你的开销会更小,而且你不会做一些愚蠢的事情,比如从组件访问数据库

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


【解决方案1】:

虽然您可以重用数据服务,但您仍然需要为您的 WASM 应用程序公开实际的 HTTP 端点——它们需要能够序列化您需要在服务器和客户端之间传输的数据。例如,可以依赖于服务器端 blazor 应用程序已有的数据库服务的 WebAPI 控制器。

Blazor WASM 与您可能见过的任何其他 SPA 框架一样 - 它完全在浏览器中运行,并且需要某种 API 端点来获取数据。

服务器端 Blazor 模型是一个奇怪的模型,它允许您直接与服务器上的数据服务交互。

【讨论】:

  • 感谢您的意见!我想我喜欢你添加 Web api 控制器并使用我已经拥有的服务的想法。至于组件本身,我猜我必须修改我的 blazor 组件并将其粘贴到 WASM 项目中
  • 使用相同的组件,只需将所有数据工作卸载到接口描述的服务中。然后,应用根据它是服务器还是 wasm 来实现新的服务。
  • 感谢您的评论!会尝试一下,看看它是如何工作的:)
猜你喜欢
  • 2020-12-25
  • 2020-09-30
  • 1970-01-01
  • 2020-09-19
  • 2022-11-10
  • 2022-08-20
  • 1970-01-01
  • 1970-01-01
  • 2021-05-28
相关资源
最近更新 更多