当你的才华不能撑起你的野心时,就是你该选择学习的时候了!

Blazor

Blazor首页、文档和下载 - 可在任意浏览器中运行的 Web UI 框架 - OSCHINA - 中文开源技术交流社区

(333条消息) Blazor 从入门到放弃_风神修罗使的博客-CSDN博客

Blazor 是微软在 .NET 里推出的一个 WEB 客户端 UI 交互的框架,

使用 Blazor 你可以代替 JavaScript 来实现自己的页面交互逻辑,可以很大程度上进行 C# 代码的复用,Blazor 对于 .NET 开发人员来说是一个不错的选择。

托管模型
Blazor 有两种托管模式,一种是 Blazor Server 模式,基于 asp.net core 部署,客户端和服务器的交互通过 SignalR 来完成,来实现客户端 UI 的更新和行为的交互。

另外一种是 Blazor WebAssembly 模式, 将 Blazor 应用、其依赖项以及 .NET 运行时下载到浏览器, 应用将在浏览器线程中直接执行。

两种模式各有优缺点,但是个人觉得 WebAssembly 模式的 Blazor 意义更大一些

Blazor Server 托管模型具有以下优点:

下载项大小明显小于 Blazor WebAssembly 应用,且应用加载速度快得多。
应用可充分利用服务器功能,包括使用任何与 .NET Core 兼容的 API。
服务器上的 .NET Core 用于运行应用,因此调试等现有 .NET 工具可按预期正常工作。
支持瘦客户端。 例如,Blazor Server 应用适用于不支持 WebAssembly 的浏览器以及资源受限的设备。
应用的 .NET/C# 代码库(其中包括应用的组件代码)不适用于客户端。
Blazor Server 托管模型具有以下局限性:

通常延迟较高。 每次用户交互都涉及到网络跃点。
不支持脱机工作。 如果客户端连接失败,应用会停止工作。
如果具有多名用户,则应用扩缩性存在挑战。 服务器必须管理多个客户端连接并处理客户端状态(SignalR)。
需要 ASP.NET Core 服务器为应用提供服务。 无服务器部署方案不可行,例如通过内容分发网络 (CDN) 为应用提供服务的方案。
Blazor WebAssembly 托管模型具有以下优点:

没有 .NET 服务器端依赖,应用下载到客户端后即可正常运行。
可充分利用客户端资源和功能。
工作可从服务器转移到客户端。
无需 ASP.NET Core Web 服务器即可托管应用。 无服务器部署方案可行,例如通过内容分发网络 (CDN) 为应用提供服务的方案。
Blazor WebAssembly 托管模型具有以下局限性:

应用仅可使用浏览器功能。
需要可用的客户端硬件和软件(例如 WebAssembly 支持)。
下载项大小较大,应用加载耗时较长。
.NET 运行时和工具支持不够完善。 例如,.NET Standard 支持和调试方面存在限制。

项目结构
Blazor 结合了 Razor Page 的开发模式,可以使用 Razor 的语法,文件结构也和 Razor Page 的模式有些类似

Blazor 是以组件为核心的,页面所有的部分都是一个组件

Blazor WebAssembly 对应的 SDK 是 Microsoft.NET.Sdk.BlazorWebAssembly,来看一下具体的项目文件:

App.razor: Blazor WebAssembly 应用根组件

Program.cs: 配置应用 WebAssembly host 的入口文件

_Imports.razor: 和 Razor Page 一样,可以在这里定义一些 Razor Page 或者组件里公用的 namespace

Pages:包含可以路由到的页面,page 需要使用 @page 指令指定

Shared:包含一些公共的组件或者样式定义

wwwroot: 应用公共静态文件的根目录

Routing
在页面组件上通过 @page 指令指定页面路由 @page "/path",就会生成一个 RouteAttribute 以支持路由,路由支持像 asp.net core 一样的路由约束和 Path 参数

 

posted @   hofmann  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· DeepSeek “源神”启动!「GitHub 热点速览」
· 上周热点回顾(2.17-2.23)
历史上的今天:
2018-07-05 sql server datetime类型字段使用isnull返回1900-01-01 00:00:00.000的问题
2018-07-05 sqlserver获取指定数据库的描述
点击右上角即可分享
微信分享提示