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

相关推荐
程序员张31 小时前
SpringBoot计时一次请求耗时
java·spring boot·后端
程序员岳焱7 小时前
Java 与 MySQL 性能优化:Java 实现百万数据分批次插入的最佳实践
后端·mysql·性能优化
麦兜*8 小时前
Spring Boot启动优化7板斧(延迟初始化、组件扫描精准打击、JVM参数调优):砍掉70%启动时间的魔鬼实践
java·jvm·spring boot·后端·spring·spring cloud·系统架构
大只鹅8 小时前
解决 Spring Boot 对 Elasticsearch 字段没有小驼峰映射的问题
spring boot·后端·elasticsearch
ai小鬼头8 小时前
AIStarter如何快速部署Stable Diffusion?**新手也能轻松上手的AI绘图
前端·后端·github
葬歌倾城9 小时前
JSON的缩进格式方式和紧凑格式方式
c#·json
IT_10249 小时前
Spring Boot项目开发实战销售管理系统——数据库设计!
java·开发语言·数据库·spring boot·后端·oracle
bobz9659 小时前
动态规划
后端
stark张宇9 小时前
VMware 虚拟机装 Linux Centos 7.9 保姆级教程(附资源包)
linux·后端
亚力山大抵10 小时前
实验六-使用PyMySQL数据存储的Flask登录系统-实验七-集成Flask-SocketIO的实时通信系统
后端·python·flask