Blazor Hybrid / MAUI 簡介和實戰

1. Blazor

Blazor 是一個使用 .NET 生成交互式客戶端 Web UI 的框架:

使用 C# 代替 JavaScript 來創建信息豐富的交互式 UI。共享使用 .NET 編寫的服務器端和客戶端應用邏輯。將 UI 呈現為 HTML 和 CSS,以支持眾多瀏覽器,其中包括移動瀏覽器。與新式托管平臺(如 Docker)集成。使用 .NET 進行客戶端 Web 開發可提供以下優勢:

使用 C# 代替 JavaScript 來編寫代碼。利用現有的 .NET 庫生態系統。在服務器和客戶端之間共享應用邏輯。受益于 .NET 的性能、可靠性和安全性。在 Windows、Linux 和 macOS 上使用 Visual Studio 保持高效工作。以一組穩定、功能豐富且易用的通用語言、框架和工具為基礎來進行生成

2. MAUI

.NET 多平臺應用程序 UI (.NET MAUI) 是一個跨平臺框架,用于使用 C# 和 XAML 創建本機移動和桌面應用程序, 使用 .net MAUI,可以開發可在 Android、iOS、macOS 上運行的應用,Windows 以及從單個共享代碼庫運行的應用。

3. Blazor Hybrid

Blazor Hybrid(混合),可以通過它在 ASP.NET Core 應用中使用 .NET 生成交互式客戶端 Web UI。
使用 Blazor Hybrid 將桌面和移動本機客戶端框架與 .NET 和 Blazor 結合使用。
在 Blazor Hybrid 應用中,Razor 組件在設備上本機運行。組件通過本地互操作通道呈現到嵌入式 Web View 控件。組件不在瀏覽器中運行,并且不涉及 WebAssembly。Razor 組件可快速加載和執行代碼,組件可通過 .NET 平臺完全訪問設備的本機功能。

4. Blazor Hybrid 應用和 .NET MAUI

Blazor Hybrid 支持內置于 .NET 多平臺應用 UI (.NET MAUI) 框架。.NET MAUI 包含 BlazorWebView 控件,該控件運行將 Razor 組件呈現到嵌入式 Web View 中。通過結合使用 .NET MAUI 和 Blazor,可以跨移動設備、桌面設備和 Web 重復使用一組 Web UI 組件。

5. 具有 WPF 和 Windows 窗體的 Blazor Hybrid 應用

Blazor Hybrid 應用可以使用 Windows Presentation Foundation (WPF) 和 Windows 窗體構建。Blazor 為這兩個框架提供 BlazorWebView 控件。Razor 組件在 Windows 桌面本機運行并呈現到嵌入式 Web View。通過在 WPF 和 Windows 窗體中使用 Blazor,可以將新的 UI 添加到現有的 Windows 桌面應用,這些應用可以跨具有 .NET MAUI 的平臺或在 Web 上重復使用。

5. 歸納總結

大概意思就是, 可以使用 C# 建立一套用 Blazor 技術的單個共享代碼庫, HTML 和 CSS的交互式 UI, 可以直接生成多端應用程序 APP

類型技術平臺特點特點
瀏覽器SSRWindows/Linux/macOS/iPhone/Android注(1)
瀏覽器PWAWindows/Linux/macOS/iPhone/Android注(2)
Blazor MAUIBlazorWebViewWindows(UWP)、Android、iOS、macOS注(3)跨平臺框架,用于使用 C# 和 XAML 創建本機移動應用和桌面應用
Blazor WPFBlazorWebViewWindows注(3)與分辨率無關的 UI 框架,使用基于矢量的呈現引擎,構建用于利用現代圖形硬件
BlazorWinFormsBlazorWebViewWindows注(3)可創建適用于 Windows 的豐富桌面客戶端應用的 UI 框架。Windows 窗體開發平臺支持廣泛的應用開發功能,包括控件、圖形、數據綁定和用戶輸入
  • (1) Blazor Server在 ASP.NET Core 應用中支持在服務器上托管 Razor 組件。可通過 SignalR 連接處理 UI 更新 ,組件在客戶端交互后,用戶交互和應用事件將觸發 UI 更新。發生更新時,將重新呈現組件圖,并計算 UI diff(差異)。此差異是更新客戶端上的 UI 所需的最小一組 DOM 編輯。差異以二進制格式發送到客戶端,并由瀏覽器應用。
    用戶退出組件之后,組件會被丟棄。

  • (2) 在 Web 瀏覽器內運行 .NET 代碼。Blazor WebAssembly 運行時使用 JavaScript 互操作來處理 DOM 操作和瀏覽器 API 調用。

  • (3) 混合應用混合使用本機和 Web 技術。Blazor Hybrid 應用在本機客戶端應用中使用 Blazor。Razor 組件在 .NET 進程中本機運行,并使用本地互操作通道將 Web UI 呈現到嵌入式 Web View 控件。WebAssembly 不用于混合應用

6. 測試工程

項目地址

https://github.com/densen2014/BlazorMaui

https://gitee.com/densen2014/BlazorMaui

項目結構

c97c393a4bd0084dfddcb487dc29fd0d.png

運行截圖

0588e83fc247667e46fd94459d79bb8a.png

7. 相關文章:

在 M1 Mac 上開發 .NET MAUI (iOS):https://www.cnblogs.com/densen2014/p/16057563.html

在 Mac 上開發 .NET MAUI:?https://www.cnblogs.com/densen2014/p/16057571.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287224.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287224.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287224.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux下ffmpeg編譯成so文件,一、ffmpeg編譯成android使用的so庫

1.在https://ffmpeg.org/中下載ffmpeg源碼(目前版本為ffmpeg-3.2.1)2.下載ndk3.分別解壓ffmpeg和ndk, 路徑如 :ffmpeg路徑:/home/lx/Downloads/ffmpeg-3.2.1ndk路徑:/home/lx/Downloads/android-ndk-r13b4.替換ffmpeg-3.2.1/confi…

SpringMVC總結帖

SpringMVC是基于MVC設計理念的一款優秀的Web框架,是目前最流行的MVC框架之一,SpringMVC通過一套注解,讓POPJ成為處理請求的控制器,而無需實現任何接口,然后使用實現接口的控制器也完全沒問題;支持REST風格的…

Android之RxPermissions用kotlin寫沒反應

1 問題 用rxPermisssons下面的寫法沒反應 RequiresApi(Build.VERSION_CODES.N)fun test(){val rxPermissions RxPermissions(this)rxPermissions.requestEach(Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE).subscribe {object : Consumer<Perm…

基于.NetCore開發博客項目 StarBlog - (7) 頁面開發之文章詳情頁面

系列文章基于.NetCore開發博客項目 StarBlog - (1) 為什么需要自己寫一個博客&#xff1f;基于.NetCore開發博客項目 StarBlog - (2) 環境準備和創建項目基于.NetCore開發博客項目 StarBlog - (3) 模型設計基于.NetCore開發博客項目 StarBlog - (4) markdown博客批量導入基于.N…

關 于 解 析 php 的 問 題

在搭建discuz論壇的時候出的問題&#xff0c;上次搭建用的是2.2版本&#xff0c;這次下了個2.4版的Apache發現有好多地方不一樣&#xff1b;比如在order deny allow 方面就變了Deny from all變成Require all deniedAllow from all變成Require all granted今天在配置完后開始在瀏…

【攝影測量原理】第三章:雙像立體測圖

本章主要內容: 第一節 人眼的立體視覺和立體觀測第二節 立體像對相對定向和核線幾何第三節 立體像對的前方交會第四節 單元模型的絕對定向第五節 雙像解析攝影測量 第一節 人眼的立體視覺和立體觀測 1.1 人眼的立體視覺 人用雙眼判斷景物可判斷其遠近,得到…

linux源碼編譯emqttd,emqtt編譯及簡單測試記錄

emqtt&#xff1a;在Erlang中實現的MQTT客戶端庫和命令行工具&#xff0c;支持MQTT v5.0 / 3.1.1 / 3.1。下載源碼編譯cd emqtt & make運行./rebar3 shell測試1、初始化{ok, ConnPid} emqtt:start_link([{clientid, "2020"},{keepalive, 0},{proto_ver, v5},{ho…

《看聊天記錄都學不會C語言?太菜了吧》(18)2分鐘搞結構體

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我&#xff0c;若你是真心學習可以送你書籍&#xff0c;指導你學習&#xff0c;給予你目標方向的學習路線&#xff0c;無套路&#xff0c;博客為證。 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋…

【攝影測量原理】第四章:解析空中三角測量

第一節 概述第二節 航帶法解析空中三角測量第三節 獨立模型法解析空中三角測量第四節 光束法解析空中三角測量第五節 GPS輔助空中三角測量第六節 機載POS系統對地定位 第一節 概述 空中三角測量 是立體攝影測量中,根據少量的野外控制點,在室內進…

setInterval和setTimeout的使用區別

setTimeout和setInterval的使用 這兩個方法都可以用來實現在一個固定時間段之后去執行JavaScript。不過兩者各有各的應用場景。 方 法 實際上&#xff0c;setTimeout和setInterval的語法相同。它們都有兩個參數&#xff0c;一個是將要執行的代碼字符串&#xff0c;還有一個是以…

「System Design」設計一個短鏈接系統

短鏈接系統可以把比較長的 URL 網址轉換成簡短的網址字符串&#xff0c;短鏈接的優勢是方便傳播。適合在一些對字符串長度有要求的場景中使用&#xff0c;比如短信&#xff0c;微博等&#xff0c;比如https://www.cnblogs.com/myshowtime/p/16227260.html轉換成短鏈接為https:/…

Android之頁面有變化用onWindowFocusChanged來監聽權限是否開啟

1 問題 我們需要在Activity里面監聽網絡變化、熱點是否開啟和關閉、GPS服務是否開啟、位置權限是否開啟等一些列行為。 2 思路 方法一: 如果是需要啟動activity進行權限申請,我們可以用如下組合模式 var intent = Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)startA…

iOS中 Animation 動畫大全 韓俊強的博客

每日更新關注:http://weibo.com/hanjunqiang 新浪微博&#xff01; iOS開發者交流QQ群&#xff1a; 4463102061.iOS中我們能看到的控件都是UIView的子類,比如UIButton UILabel UITextField UIImageView等等 2.UIView能夠在屏幕的顯示是因為在創建它的時候內部自動添加一個CALa…

IROS 2017上,這些廠商將會給我們展示什么樣的黑科技?

相比起大多數AI學術會議&#xff0c;機器人領域最具影響力的學術會議IROS要“好看”得多。在這個學術會議上不僅會有AI和機器人領域最新的研究成果的論文展示&#xff0c;更有不少來自于科研機構和機器人領域公司機器人&#xff0c;向我們展示著展示機器之美。 比如&#xff0c…

《看聊天記錄都學不會C#?太菜了吧》(3)變量:我大哥呢?$:小弟我罩著你!

本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋了新手在學習中的一般問題。此系列將會持續更新&#xff0c;包括別的語言以及實戰都將使用對話的方式進行教學&#xff0c;基礎編程語言教學適用于零基礎小白&#xff0c;之后實戰課程也將會逐步更新。 若…

linux block設備,Linux I/O Block--塊設備的表示

塊設備的分區信息由struct hd_struct結構描述&#xff0c;其中最重要的信息就是分區的起始扇區號和分區的大小。所有分區信息都一起保存在gendisk的part_tbl結構中&#xff0c;同時每個分區的block_device也可以通過bd_part來查詢對應的分區信息。下圖描述了block_device,gendi…

【搶鮮版】ArcGIS 10.7手把手經典圖文安裝教程(附安裝包下載地址)

軟件更新真是個快,ArcGIS10.7已經亮相了!回頭想想,作者追隨ArcGIS已經有11個年頭了(從ArcGIS 9.2到ArcGIS10.7,每個版本都搶鮮使用,先睹為快),本文演示10.7完美安裝過程(附下載地址),親測可用! 目 錄 一、系統環境要求 二、軟件安裝過程 三、軟件下載地址 一、…

Android之解決ViewPager2+PhotoView滑動圖片花屏問題

1 問題 用ViewPager2和開源框架PhotoView(com.github.chrisbanes.photoview.PhotoView)組合實現滑動預覽圖片, 但是部分機型出現花屏效果 2 原因 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas…

請來圍觀:WPF開發的微信客戶端!!!

本文經原作者授權以原創方式二次分享&#xff0c;歡迎轉載、分享。原文作者&#xff1a;眾尋原文鏈接&#xff1a;https://www.cnblogs.com/ZXdeveloper/p/6058206.html公司的同事離職了&#xff0c;接下來的日子可能會忙碌&#xff0c;能完善DEMO的時間也會少了&#xff0c;因…

C#字符串、字節數組和內存流間的相互轉換 - IT浪潮之巔

定義string變量為str,內存流變量為ms,比特數組為bt 1.字符串>比特數組 (1)byte[] btSystem.Text.Encoding.Default.GetBytes("字符串");(2)byte[] btConvert.FromBase64String("字符串"); 補充&#xff1a; System.Text.Encoding.Unicode.GetBytes(str)…