你有沒有想過哪一天能用自己熟悉的語言來撰寫前端嗎?
由 Mozilla、Google、Microsoft、Apple 所組成的開發團隊,也就是瀏覽器四大天王 Firefox、Chrome、Microsoft Edge、Safari 共同推動名為 WebAssembly 的新技術,讓網頁開發者能運用自己熟悉的程式語言,編譯再藉虛擬機器引擎在瀏覽器內執行,而去(2019)年 12 月 5 日成為全球資訊網協會(W3C)的推薦,與 HTML,CSS 和 JavaScript 一起,成為 Web 的第四種語言。
想了解 WebAssembly 技術可以看看 IThome 之前的新聞(WebAssembly重新定義網頁技術)。
2017 年 Blazor 作為實驗產品悄悄登場,經過這幾年的打磨,終於在今(2020)年 5 月正式發行,對歷史有興趣的讀者可以參考(ASP.NET Blazor 關鍵報告)。
Blazor 是 .NET 平台的客戶端互動式網頁框架,以元件(Component
)為基礎組合而成的應用程式。而元件是獨立的使用者介面區塊如頁面、對話方塊或資料輸入表單,其包含 HTML 標籤以及插入資料或回應 UI 事件所需要的處理邏輯,具有彈性且輕量,並能夠在各專案之間進行嵌套、重複使用及共用。
對於 .NET 網頁開發人員有著以下特點:
- 以 C# 撰寫而不是 JavaScript。
- 利用 .NET 程式庫的現有 .NET 生態系統。
- 跨伺服器和用戶端共用應用程式邏輯。
- 從 .NET 的效能、可靠性和安全性中獲益。
- 使用 Windows、Linux 和 macOS 版的 Visual Studio 保持生產力。
- 以常用的語言、架構和工具建置,不僅穩定、功能豐富,而且容易使用。
簡單的說就是如果你是 .NET 開發人員,即便你不會寫 JavaScript,不知道 '1' + 1
會等於字串'11'
,而 '1' - -1
等於數字 2
,也可以寫出互動式網頁,還能享受 .NET 生態系統上的各種程式庫,像不像變一個魔術,讓你一整個窩在舒適圈啊。(謎之聲:當然你還是要會 HTML 與 CSS,只是不用去管JavaScript)
而 Blazor 的有兩種裝載模型:Client 端的 Blazor WebAssembly 專案與 Server 端的 Blazor Server 專案,而本系列主要介紹的是 Client 端的 Blazor WebAssembly 專案,透過 30 天來介紹並使用這些魔術道具,但不會帶你揭開這神秘的面紗,就像頂尖對決中的魔術師應該也不知道最後那機關的原理(雖然是 2006 年的電影但也是避免劇透不明說),就讓我們一起享受這 30 天吧!
Blazor WebAssembly 不支援 IE 但 Blazor Server 可以透過 polyfill 支援 IE 11(Polyfills for Blazor (for Internet Explorer 11 support and some other browsers))。