摘要:開發文檔: https://github.com/ElderJames/ant-design-blazor/wiki。5.19的微軟Build大會上就正式發佈了,我最近也在積極的研究學習blazor,在博客和公衆號發了幾篇最新版本發佈的文章,在評論區還是微信羣,有人問我,爲什麼你對blazor如此熱情,這些同學都在使用vue/angular/react等前端框架,blazor正好是利用WebAssembly 開發的前端框架,編程語言從js變成了c#, 我覺得如果您對你的前端技術棧感到滿意,你可以繼續使用現在你所用的框架繼續前進,也許blazor並不適合你 ,巧的是最近vue3 也發佈了beta版本,vue3 要真正普及也是需要至少一年的時間,blazor 可以充分的吸收前端技術棧的精華,爲我所用,我將在文章的末尾列出一些blazor 吸收前端技術圈的成果的開源項目。

最近blazor更新很快,今天在官方博客上發佈了 Blazor WebAssembly 3.2.0 RC: https://devblogs.microsoft.com/aspnet/blazor-webassembly-3-2-0-release-candidate-now-available/ ,這是最後一次預覽版了,功能開發都已經完成。

5.19的微軟Build大會上就正式發佈了,我最近也在積極的研究學習blazor,在博客和公衆號發了幾篇最新版本發佈的文章,在評論區還是微信羣,有人問我,爲什麼你對blazor如此熱情,這些同學都在使用vue/angular/react等前端框架,blazor正好是利用WebAssembly 開發的前端框架,編程語言從js變成了c#, 我覺得如果您對你的前端技術棧感到滿意,你可以繼續使用現在你所用的框架繼續前進,也許blazor並不適合你 ,巧的是最近vue3 也發佈了beta版本,vue3 要真正普及也是需要至少一年的時間,blazor 可以充分的吸收前端技術棧的精華,爲我所用,我將在文章的末尾列出一些blazor 吸收前端技術圈的成果的開源項目。

blazor適用於編寫內部應用程序,企業應用開發人員開發的B2B和B2C的應用程序都適合使用blazor開發,現在已經有很多企業應用開發人員接受了JavaScript,還有許多企業開發人員沒有,特別是winform,wpf 等開發人員,他們特別希望能夠高效的的完成開發工作,這裏面有很多的開發人員都很認同Sliverlight 是他們交付Web應用程序的捷徑,一朝被蛇咬,十年怕井繩,有人認爲blazor 只是 Silverlight vNext。我們爲什麼要相信微軟這次不會殺死它?這種觀點可以理解,但是將blazor 的未來與Sliverlight的過去混爲一談是荒謬的。

Silverlight是瀏覽器插件模型的犧牲品。2010年Flash是瀏覽器上非常流行的插件,史蒂夫-喬布斯(Steve Jobs)殺死了他,iOS設備上不支持Flash,當時Silverlight 也是如日中天,微軟親手殺死了它,擁抱了Html5這種無插件模型,相比之下,blazor是在WebAssembly標準之下的現代瀏覽器中運行,每個主流瀏覽器(IE11除外),甚至是iOS設備上的Safari 都支持blazor,這裏要吐槽下微信裏面的哪個瀏覽器貌似支持不太好。我們可以將WebAssembly視爲在JavaScript運行所在的沙箱中運行的二進制編譯代碼,blazor 正式藉助於WebAssembly 實現了將.NET 運行時運行在瀏覽器中。這個運行時處理 JavaScript 互操作,並提供基本服務(如垃圾回收)和更高級別的功能(佈局、路由和用戶界面小部件等)。換句話說,blazor使用了一個駐留在另一個虛擬機中的虛擬機,堪稱《盜夢空間》級別的悖論,也是一種在瀏覽器中運行非 JavaScript 應用程序框架的巧妙方法。

運行時使得blazor 和 WebAssembly 上運行的其他語言與衆不同,MonoCLR 編譯爲WebAssembly。任何.NET Standard 2.1的代碼都可以在上面運行,這樣就可以把.NET生態的大量庫帶到前端開發,其他的語言只實現了直接編譯爲WebAssembly,blazor當前利用WebAssembly 的一個獨特創新,據我所知,還沒有一個類似於blazor這樣的WebAssembly運行時存在。

blazor 真正是一個組件模型,組件模型也很優雅,blazor的綁定模型也很容易理解。事件模型和標準的C# 一樣,隨着諸如DevExpress、Telerik、Radzen、Syncfusion等控件廠商提供了大量的控件,企業應用開發人員有理由開始blazor之旅。 InfoQ的一篇文章《Mono 現狀與未來: 從 Xamarin 到 WebAssembly、Blazor 及.NET 5》有助於大家理解blazor和.NET的關係。

我這裏也期望JavaScript的開發同學一起來使用這項創新的前端開發框架,人們經常說,WebAssembly 並不是用來代替 JavaScript 的。但這句話對所有革命性平臺都是一樣的。JavaScript 當初並不是要取代嵌入瀏覽器的 Java。Web 應用程序並非旨在替代桌面應用。但一旦能做到這些,它們必然會走上那條路。 在社區也出現了大量的blazor 開源項目,這項開源項目都是急需前端開發同學的參與:

    • 開源項目 ant-design-blazor,目標是成爲Ant Design官方認可的Blazor實現,並豐富Blazor生態

Github: https://github.com/ElderJames/ant-design-blazor

Demo: https://ant-design-blazor.gitee.io

開發文檔: https://github.com/ElderJames/ant-design-blazor/wiki

  • Bootstrap 是 Blazor基於Bootstrap ,這個UI庫目前只有服務器端,客戶端wasm模式等正式版出來會搞

倉庫地址: https://gitee.com/LongbowEnterprise/BootstrapBlazor

演示地址:blazor.sdgxgz.com

  • Blazui  Element的blazor版本,用 .NET 寫前端的 UI 框架

倉庫地址: https://github.com/wzxinchen/Blazui

演示地址 http://blazui.com:9000

  • Blazorise 是一個組件庫,基於 像Bootstrap, Bulma 和Material 等CSS frameworks

github: https://github.com/stsrki/Blazorise

官網: https://blazorise.com/

  • Skclusive-UI Component library for Blazor using Material Design.

github: https://github.com/skclusive/Skclusive.Material.Component

  • Material Design components for Blazor and Razor Components

github: https://github.com/SamProf/MatBlazor

github的倉庫: https://github.com/AdrienTorris/awesome-blazor 收集了更全面的blazor 和webassembly相關的資料。

相關文章