網站首頁 編程語言 正文
Blaozr 是由微軟2019推出得一種使用.NET 生成交互式客戶端得Web UI框架。
該框架利用C#代替JavaScript進行創建UI , 并且可以共享.NET編寫的服務端和客戶端業務代碼。
優勢:
- 1 使用C#代替JavaScript編寫代碼, 意味著, 如果你使用的是.Net進行編寫服務端(例:ASP.NET Core WebApi) 或者是 客戶端(WPF/Winform),那么可以共享應用之前的邏輯, 無需針對Web再編寫其他的業務代碼。
- 2 始終高效支持 Windows、Linux 和 macOS 上的 Visual Studio。
- 3 利用現有的 .NET 庫生態系統。
瀏覽器要求:
Blazor WebAssembly
Microsoft Edge
Mozilla Firefox
Google Chrome,包括 Android
Safari,包括 iOS當前
Microsoft Internet Explorer 不支持 WebAssembly。
Blazor 服務器
Microsoft Edge
Mozilla Firefox
Google Chrome,包括 Android當
Safari,包括 iOS
托管模型
Blazor WebAssembly
Blazor 的主要托管模型在 WebAssembly 上的瀏覽器中運行客戶端。 將 Blazor 應用、其依賴項以及 .NET 運行時下載到瀏覽器。 應用將在瀏覽器線程中直接執行。
UI 更新和事件處理在同一進程中進行。 應用資產作為靜態文件部署到可為客戶端提供靜態內容的 Web 服務器或服務中。
1.模板包括 blazor.webassembly.js 腳本,可處理以下任務:
- 下載 .NET 運行時、應用和應用依賴項。
- 初始化運行應用的運行時。
2.Blazor WebAssembly 托管模型具有以下優點:
- 沒有 .NET 服務器端依賴項。 應用下載到客戶端后即可正常運行。
- 可充分利用客戶端資源和功能。
- 工作可從服務器轉移到客戶端。
- 無需 ASP.NET Core Web 服務器即可托管應用。 無服務器部署方案可行(例如通過 CDN 為應用提供服務的方案)。
3.Blazor WebAssembly 托管具有以下缺點:
- 應用僅可使用瀏覽器功能。
- 需要可用的客戶端硬件和軟件(例如 WebAssembly 支持)。
- 下載項大小較大,應用加載耗時較長。
- .NET 運行時和工具支持不夠完善。 例如,.NET Standard 支持和調試方面存在限制。
Blazor 托管應用模型支持 Docker 容器。 在 Visual Studio 中右鍵單擊 Server 項目,然后選擇“添加” > “Docker 支持” 。
Blazor Server
使用 Blazor 服務器托管模型可從 ASP.NET Core 應用中在服務器上執行應用。 UI 更新、事件處理和 JavaScript 調用是通過 SignalR 連接進行處理。
1.Blazor 服務器托管模型具有以下優點:
- 下載項大小明顯小于 Blazor WebAssembly 應用,且應用加載速度快得多。
- 應用可充分利用服務器功能,包括使用任何與 .NET Core 兼容的 API。
- 服務器上的 .NET Core 用于運行應用,因此調試等現有 .NET 工具可按預期正常工作。
- 支持瘦客戶端。 例如,Blazor 服務器應用適用于不支持 WebAssembly 的瀏覽器以及資源受限的設備。
- 應用的 .NET/C# 代碼庫(其中包括應用的組件代碼)不適用于客戶端。
2.Blazor 服務器托管具有以下缺點:
- 通常延遲較高。 每次用戶交互都涉及到網絡躍點。
- 不支持脫機工作。 如果客戶端連接失敗,應用會停止工作。
- 如果具有多名用戶,則應用擴縮性存在挑戰。 服務器必須管理多個客戶端連接并處理客戶端狀態。
- 需要 ASP.NET Core 服務器為應用提供服務。 無服務器部署方案不可行(例如通過 CDN 為應用提供服務的方案)。
Blazor Server 應用模型支持 Docker 容器。 在 Visual Studio 中右鍵單擊該項目并選擇“添加” > “Docker 支持” 。
原文鏈接:https://www.cnblogs.com/zh7791/p/12722476.html
相關推薦
- 2022-10-11 使用字典的方式給python程序添加config信息
- 2022-02-25 Linux下臨時和永久修改主機名
- 2022-05-02 利用numba讓python速度提升百倍_python
- 2022-11-07 C語言內存函數?memcpy,memmove?,memcmp_C 語言
- 2022-11-18 阿里云kubernetes查找鏡像中jar包的方法(docker查看鏡像中的jar)_云其它
- 2022-11-25 Python中日期和時間的用法超強總結_python
- 2022-04-28 WPF簡介與基礎開發_實用技巧
- 2022-04-09 Tomcat 部署多個SpringBoot 項目:ERROR org.springframework
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支