【问题标题】:Blazor Web Assembly with asp.net core hosted vs Blazor Server Project托管 asp.net 核心的 Blazor Web 程序集与 Blazor 服务器项目
【发布时间】:2022-01-05 14:13:39
【问题描述】:

我正在从事数据迁移项目,我们需要从本地或云端的旧系统中获取数据,然后对其进行转换并显示带有过滤和搜索等功能的只读数据视图。

注意:- IIS 上没有托管代码

我对选择 Blazor 托管选项感到有些困惑,无论是 Blazor 服务器还是托管 asp.net 核心的 Blazor Web 程序集?

请注意,数据是历史数据,我们需要良好的性能。

谢谢,

【问题讨论】:

  • @HenkHolterman 是的,你说得对,我们需要一台服务器。但是您可以看到这两个选项都包含服务器项目。我在选择最合适的方法之间有点困惑。如您所见,blazor web 程序集也有一个 asp.net core 托管选项,所以我很困惑,因为我假设如果我使用带有 asp.net core 托管的 Blazor Web 程序集,在这种情况下我可以实现搜索/过滤,WASM 上的事件处理和获取数据,API 和服务器端数据库中的读写。

标签: blazor blazor-server-side blazor-webassembly asp.net-blazor


【解决方案1】:

如果只能从 Intranet(或通过低延迟网络)访问,请选择 Blazor 服务器。在这种情况下,与 WASM 相比,Blazor 服务器有几个优点:

  1. 加载速度非常快。
  2. 更严格的 EF Core 实现。 Web 程序集应用程序无法直接访问数据库。因此,即使您不打算使用其他数据库访问方法,也会涉及序列化/反序列化成本和约束。
  3. 更好地控制安全性。在 WASM 上,身份验证/授权只发生一次。在 Blazor 服务器上,它可以根据每个请求强制执行。此外,整体实现更清晰 请参阅 Microsoft 文档:

https://docs.microsoft.com/en-us/aspnet/core/blazor/security/?view=aspnetcore-6.0

  1. 一般来说,原生 WASM 构建时间很长。因此,您需要为您的日常生产版本做一些规划。

假设网络延迟较低,唯一的缺点是对服务器的投资。但如果用户数量有限,您可以尝试并找出您需要购买的合适的处理能力。

【讨论】:

  • 感谢您帮助选择正确的方法。我会去 blazorserver。
  • 其实我对 blazor 还是很陌生,我对 asp.net 核心托管选项和 blazor 服务器有点混淆。因为我们需要从遗留系统中获取数据并将它们存储在 SQL 数据库中(这项工作将由调度程序完成)。我对托管的 WASM asp.net 核心的考虑是,它可能在搜索/过滤数据方面具有更好的性能,因为事件是在 balzor.client 端实现/处理的,但是在 SQL 方法中实现了获取数据、处理和存储它服务器端。如果我错了,请纠正我?
  • 这就是它应该在纸上的样子。但是 blazor WASM 在不是完全原生的单 IL 上运行。对于原生 WASM,在这方面没有足够的基准。根据我的个人经验(具有数百个点的多个图表的图表应用程序)Blazor 服务器更快。如果您有疑问,您可以自己进行基准测试。如果设计得当,无需更改代码即可轻松在两个模型之间切换。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-19
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 2020-09-26
  • 1970-01-01
  • 2021-04-14
相关资源
最近更新 更多