Blazor模式讲解

简介: Blazor模式讲解

Blazor的三种模式

Blazor Server:

Blazor Server在 ASP.NET Core 应用中支持在服务器上托管 Razor 组件。 可通过 SignalR 连接处理 UI 更新。

运行时停留在服务器上并处理:

  • 执行应用的 C# 代码。
  • 将 UI 事件从浏览器发送到服务器。
  • 将 UI 更新应用于服务器发送回的已呈现的组件。

Blazor Server用于与浏览器通信的连接还用于处理 JavaScript 互操作调用。

Blazor Server 应用以不同于传统模型的方式呈现内容,以便在 ASP.NET Core 应用中使用 Razor 视图或 Razor Pages 呈现 UI。 这两种模型都使用 语言描述 HTML 内容,但两者在标记的呈现方式上差别显著。

呈现 Razor 页面或视图时,每行 Razor 代码都以文本形式发出 HTML。 呈现后,服务器会丢弃页面或视图实例,包括生成的任何状态。 当对页面进行另一请求时,整个页面将再次重新呈现为 HTML,并发送到客户端。

Blazor Server 生成组件图,以显示类似于 HTML 或 XML 文档对象模型 (DOM) 的内容。 组件图包含属性和字段中保存的状态。 Blazor 计算组件图以生成标记的二进制表示形式,并将该表示形式发送到客户端以进行呈现。 客户端与服务器之间建立连接后,组件的静态预呈现元素会替换为交互式元素。 通过在服务器上预呈现内容,应用在客户端上的响应速度更快。

组件在客户端交互后,用户交互和应用事件将触发 UI 更新。 发生更新时,将重新呈现组件图,并计算 UI diff(差异)。 此差异是更新客户端上的 UI 所需的最小一组 DOM 编辑。 差异以二进制格式发送到客户端,并由浏览器应用。

用户退出组件之后,组件会被丢弃。

Blazor WebAssembly

Blazor WebAssembly 用于使用 .NET 生成交互式客户端 Web 应用。 Blazor WebAssembly 使用无插件或将代码重新编译为其他语言的开放式 Web 标准。 Blazor WebAssembly 适用于所有新式 Web 浏览器,包括移动浏览器。

通过 WebAssembly(缩写为 wasm),可在 Web 浏览器内运行 .NET 代码。 WebAssembly 是针对快速下载和最大执行速度优化的压缩字节码格式。 WebAssembly 是开放的 Web 标准,支持用于无插件的 Web 浏览器。

WebAssembly 代码可通过 JavaScript(称为 JavaScript 互操作性,通常简称为 JavaScript 互操作或 JS 互操作)访问浏览器的完整功能。 通过浏览器中的 WebAssembly执行的 .NET 代码在浏览器的 JavaScript 沙盒中运行,沙盒提供的保护可防御客户端计算机上的恶意操作。

Blazor Hybrid

混合应用混合使用本机和 Web 技术。 Blazor Hybrid 应用在本机客户端应用中使用 Blazor。 Razor 组件在 .NET 进程中本机运行,并使用本地互操作通道将 Web UI 呈现到嵌入式 Web View 控件。 WebAssembly 不用于混合应用。 混合应用包含以下技术:

  • .NET Multi-platform App UI (.NET MAUI):用于使用 C# 和 XAML 创建本机移动应用和桌面应用的跨平台框架。
  • Windows Presentation Foundation (WPF):一个与分辨率无关的 UI 框架,使用基于矢量的呈现引擎,构建用于利用现代图形硬件。
  • Windows 窗体:一个可创建适用于 Windows 的丰富桌面客户端应用的 UI 框架。 Windows 窗体开发平台支持广泛的应用开发功能,包括控件、图形、数据绑定和用户输入。

Blazor Hybrid 甚至可在rust的tauri中运行,或者其他平台

Blazor Hybrid中C#代码在本机运行,性能是本机性能,对于性能Blazor Hybrid更好!

目录
相关文章
|
1月前
|
前端开发 JavaScript 安全
C#一分钟浅谈:Blazor WebAssembly 开发
Blazor WebAssembly 是一个客户端框架,允许开发者使用C#和Razor语法构建Web应用。本文介绍了Blazor WebAssembly的基本概念、常见问题及解决方案,包括路由配置、数据绑定、异步操作、状态管理和性能优化等方面的内容,并分享了一些易错点及如何避免的方法。希望这些内容能帮助你在Blazor WebAssembly开发中少走弯路,提高开发效率。
105 51
|
2月前
|
缓存 测试技术 C#
使用Radzen Blazor组件库开发的基于ABP框架炫酷UI主题
【10月更文挑战第20天】本文介绍了使用 Radzen Blazor 组件库开发基于 ABP 框架的炫酷 UI 主题的步骤。从准备工作、引入组件库、设计主题、集成到 ABP 框架,再到优化和调试,详细讲解了每个环节的关键点和注意事项。通过这些步骤,你可以打造出高性能、高颜值的应用程序界面。
|
4月前
|
开发框架 前端开发 JavaScript
构建响应式设计超赞!Blazor 与 Bootstrap 完美结合,开启高效 Web 开发新潮流!
【8月更文挑战第31天】在当前的网络环境中,响应式设计是打造优质用户体验的核心。为满足用户在不同设备上的需求,Blazor结合Bootstrap成为构建响应式设计的高效方案。Blazor作为C#和 .NET技术栈下的Web开发框架,实现了服务端与客户端同语言开发,提升了开发效率与代码维护性。而Bootstrap作为一个流行的前端框架,提供了丰富的CSS和JavaScript组件,便于快速搭建美观且响应式的用户界面。结合两者的优点,可以轻松实现复杂Web应用的高效开发。
84 0
|
4月前
|
前端开发 C# 开发工具
在winform中使用blazor hybrid构建页面
在winform中使用blazor hybrid构建页面
80 0
|
6月前
|
开发框架 JavaScript 前端开发
微软官方开源免费的Blazor UI组件库 - Fluent UI Blazor
微软官方开源免费的Blazor UI组件库 - Fluent UI Blazor
128 1
|
7月前
|
JavaScript 前端开发 API
Blazor系统教程
基于.net8的Blazor系统教程
|
7月前
|
前端开发 JavaScript C#
10款值得推荐的Blazor UI组件库
10款值得推荐的Blazor UI组件库
352 0
|
前端开发 JavaScript C#
基于TDesign风格的Blazor企业级UI组件库
基于TDesign风格的Blazor企业级UI组件库
101 0
|
JavaScript 前端开发 C#
如何将现有的Blazor项目的主题切换写的更好看?
如何将现有的Blazor项目的主题切换写的更好看?
129 1
|
JavaScript 前端开发 C#
Blazor Hybrid (Blazor混合开发)更好的读取本地图片
Blazor Hybrid (Blazor混合开发)更好的读取本地图片
144 0
Blazor Hybrid (Blazor混合开发)更好的读取本地图片