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才能使用,不能直接从浏览器访问

相关推荐
轩情吖15 分钟前
一文速通stack和queue的理解与使用
开发语言·c++·后端·deque·优先级队列·stack和queue
秋月的私语33 分钟前
c#实现当捕获异常时自动重启程序
运维·c#
ByteBlossom66637 分钟前
JavaScript语言的正则表达式
开发语言·后端·golang
Pandaconda43 分钟前
【新人系列】Python 入门(二十八):常用标准库 - 上
开发语言·经验分享·笔记·后端·python·面试·标准库
Wanna7151 小时前
后端开发基础——JavaWeb(Servlet)
java·后端·servlet·tomcat
生产队队长1 小时前
项目练习:若依后台管理系统-后端服务开发步骤(springboot单节点版本)
java·spring boot·后端
m0_748236831 小时前
【wiki知识库】08.添加用户登录功能--后端SpringBoot部分
java·spring boot·后端
Wanna7151 小时前
后端开发基础——JavaWeb(根基,了解原理)浓缩
java·后端·servlet·tomcat
轩辕烨瑾1 小时前
Bash语言的安全开发
开发语言·后端·golang
C++小厨神1 小时前
MATLAB语言的文件操作
开发语言·后端·golang