ASP.NET Blazor部署方式有哪些?

今天我们来说说Blazor的三种部署方式,如果大家还不了解Blazor,那么我先简单介绍下Blazor

Blazor 是一种 .NET 前端 Web 框架,在单个编程模型中同时支持服务器端呈现和客户端交互性:

● 使用 C# 创建丰富的交互式 UI。

● 共享使用 .NET 编写的服务器端和客户端应用逻辑。

● 将 UI 呈现为 HTML 和 CSS,以支持众多浏览器,其中包括移动浏览器。

● 使用 .NET 和 Blazor 生成混合桌面和移动应用。

以上的介绍来自于官方的文档介绍,简单来说Blazor和Vue,Recat,Angular等前端框架一样,都是Web前端框架,但是Blazor实现了使用C#来编写业务逻辑,不适用JS来编写逻辑。如果大家想了解更详细的介绍内容可以参考官方文档。

Blazor提供了三种部署方式,大家可以根据场景来进行多种选择。

Blazor WebAssembly

让我们先了解下WebAssembly是什么?

WebAssembly也被简称为WASM,是一种为网络设计的可移植的编译目标,旨在将C、C++、Rust等编程语言编译成高效的二进制代码,使其在现代网络浏览器中运行。WebAssembly可以提供更快的加载速度和和更高的执行效率。

Blazor WebAssembly 的部署模式如下:

● 在满足浏览器支持 WASM 标准的前提下,会将 Blazor 项目编译得到的.NET 程序集传输至客户端。

● 这些程序集随后在客户端浏览器的 WebAssembly 环境中运行,可以在离线状态下执行,为用户提供更加灵活的使用体验,无论用户处于网络连接不稳定还是完全脱机的情况,都能正常使用应用程序,提升了应用的可用性和用户体验。

Blazor Server

在这种开发架构中,所有的 HTML+CSS 以及 C# 后端代码的执行过程都是在服务器端完成的。并将解析后的完整 HTML+CSS 代码发送到前端的浏览器执行,Blazor 脚本与服务器建立 SignalR 连接,每个客户端与服务器都会建立一个持久的 SignalR 通道,通过 SignalR 通道实现客户端与服务器的交互。

SignalR

在这种部署方式下我们提到了SignalR,我们对SignalR做一个简单的介绍

ASP.NET SignalR 是一个面向 ASP.NET 开发人员的库,可简化向应用程序添加实时 Web 功能的过程。 实时 Web

功能是让服务器代码在可用时立即将内容推送到连接的客户端,而不是让服务器等待客户端请求新数据。 Blazor Hybrid 使用跨桌面、移动和

Web 共享相同的 Blazor 组件,可以开发出 Android、iOS 移动设备上的 App、还可以开发出在macOS 和

Windows 上运行的桌面应用。简单来说通过Blazor混合应用,可以开发出目前几乎所有的跨平台应用

Blazor Hybrid

使用跨桌面、移动和 Web 共享相同的 Blazor 组件,可以开发出 Android、iOS 移动设备上的 App、还可以开发出在macOS 和 Windows 上运行的桌面应用。简单来说通过Blazor混合应用,可以开发出目前几乎所有的跨平台应用

技术选择

先来看一个官方提供的区别图,下面我总结以下三种方式的优缺点供大家参考

Blazor WebAssembly

(1) WebAssembly为二进制代码,有着更好的性能

(2)在浏览器客户端首次运行获得程序集后,可离线运行

(3)第一次加载需要客户端发送程序集,会导致首次加载速度慢

Blazor Server

(1)所有代码在服务端运行,服务端负载大,客户端加载速度快

(2)不需要浏览器支持WebAssembly标准,可以使得应用在一些旧版本的浏览器上也可以运行

(3)不支持离线场景,无网络情况下无法访问

(4)SignalR连接,会对性能有所损耗

Blazor Hybrid

(1)开发速度快,多平台使用

(2)不同平台需要编译不同的应用

(3)手机和电脑端需要安装APP才能使用,不能直接从浏览器访问

相关推荐
海天鹰6 分钟前
C#:接收从打开方式打开的参数
c#
宝桥南山30 分钟前
.NET 11 - 尝试一下Minimal API中的异步验证新特性
microsoft·微软·c#·asp.net·.net·.netcore
拖孩30 分钟前
# AI 帮我写的小程序,上线不到一个月流量主突然爆了
前端·后端·微信小程序
考虑考虑1 小时前
JFROG手动上传包
运维·后端·自动化运维
开开心心_Every1 小时前
文件查重软件批量删除重复文件释放空间
java·开发语言·c#·计算机外设·ocr·excel·perl
波力海苔夹心脆6751 小时前
VisionPro 与 VisionMaster 对比(上):软件定位、开发环境与核心视觉工具对照
图像处理·算法·计算机视觉·c#·视觉检测·个人开发·vp9
Java爱好狂.2 小时前
挑战一周速通Spring+SpringBoot+SpringCloud!
java·后端·spring·springboot·架构师·java面试·java程序员
柠檬味拥抱2 小时前
基于 YOLO11 的 18 类户外生活垃圾智能检测系统:从模型到 Streamlit 全流程实战
后端
得物技术2 小时前
动态规则的 Agent 实践:用确定性工程驾驭 LLM 的资产智能验收
人工智能·后端·llm
柠檬味拥抱2 小时前
基于 YOLO11 的低空空域反无人机预警系统:红外热成像 + Streamlit 全流程实战
后端