Blazor 和 TypeScript 互操作工具庫

張善友 發表於 2022-01-25

現在傳統的前端框架React,Angular 和 Vue等都使用TypeScript 構建庫,Blazor 雖然使用C# 作為主要的語言,它的生態非常需要借力他的弟弟TypeScript 來豐富生態,從語法上來說TypeScript 已經和C# 非常接近, Blazor 也存在和JavaScript 互操作的API,今天就給大家介紹這麼一個工具庫EventHorizon.Blazor.TypeScript.Interop.Generator,它是一個開源專案,Github Repository: canhorn/EventHorizon.Blazor.TypeScript.Interop.Generatorhttps://github.com/canhorn/EventHorizon.Blazor.TypeScript.Interop.Generator/tree/main/Tool/EventHorizon.Blazor.TypeScript.Interop.Tool)。同時釋出了NuGet Package: EventHorizon.Blazor.TypeScript.Interop.Generator

還有一個.NET工具包 EventHorizon.Blazor.TypeScript.Interop.Tool 可用於從 CLI 輕鬆生成專案,從 TypeScript 定義檔案的抽象語法樹生成 C# Blazor Interop 抽象,為使用者提供一個生成的專案,該專案可以更輕鬆地從 C# 與 JavaScript 庫進行互動,生成的專案可以與 Blazor WASM 一起使用,以便與 C# 中的 JavaScript 進行互動,這為大多數 JavaScript 庫提供了一個來自 C# 的易於使用的介面。它使用 JSRuntime 直接與 C# 中的基礎 JavaScript 進行互操作,這是通過自定義互操作抽象完成的。

作者為了驗證這樣的一個互操作工具庫的可用性,通過一個 Three.js類似的一款WebGL開發框架 Babylon , 示例站點:BabylonJS 生成的示例站點https://wonderful-pond-05f7b3b10.azurestaticapps.net/

工具包最新是基於.NET 6,所以要先安裝.NET 6 SDK, 然後通過下面的命令安裝工具包

dotnet tool install -g EventHorizon.Blazor.TypeScript.Interop.Tool

具體用法參考倉庫的Readme:https://github.com/canhorn/EventHorizon.Blazor.TypeScript.Interop.Generator/tree/main/Tool/EventHorizon.Blazor.TypeScript.Interop.Tool