首页 > 解决方案 > 将 Blazor 服务器应用程序转换为 Blazor Web 程序集方法

问题描述

我想通过 Blazor 技术开发一个 SPA 项目。

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

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

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

标签: .net-coreblazorblazor-server-sideblazor-client-side

解决方案


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

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

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

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


推荐阅读