将 Blazor Server App 转换为 Blazor Web-assembly 方法

Convert Blazor Server App to Blazor Web-assembly approach

我想用Blazor技术开发一个SPA项目

由于调试 Blazor Web-assembly 应用程序的复杂性,我想先将其创建为服务器端应用程序,然后再将其更改为 Web-assembly 应用程序。

这可能吗?如果是这样,在我成功使服务器端 Blazor 项目运行后,我需要进行哪些更改才能获得与 WebAssembly 项目一起使用的相同功能?

此外,在我的服务器端 Blazor 项目中是否有任何我应该避免的特定方法或技术,因为它们在使用 WebAssembly 时没有等效项?

在大多数情况下,您的 Blazor 组件应该能够从 Server 迁移到 Webassembly,只需很少或无需更改。

如果您的 Blazor Server 应用程序不需要来自应用程序外部的数据(例如数据库调用),并且它不使用浏览器不支持的任何 API(例如 System.Security.Cryptography),那么您可以迁移到 Blazor Webassembly 而无需对您的组件进行任何更改。

如果您的 Blazor Server 应用程序确实需要来自浏览器外部的数据,那么这些服务将需要托管在其他地方并通过 Http 请求从您的组件调用(请参阅 Call a web API from ASP.NET Core Blazor)。 Blazor Webassembly 后端有几个不错的选择,其中最常见的是 Blazor Webassembly 托管模板。

如果您更愿意将 Webassembly 应用程序作为静态 Web 应用程序提供服务,则可以将后端服务移至无服务器函数应用程序。有多种选择,其中最方便的(在我看来)是使用 Azure Static Web Apps with .NET and Blazor