在网页应用中舒适地使用C#
Bootsharp简化了在网页项目中使用.NET C#应用和库的过程。它非常适合构建同时使用.NET C#编写后端和独立TypeScript或JavaScript项目编写前端的网页应用。可以把它想象成C++的Embind或Rust的wasm-bindgen。
特点
✨ 高级别的C# <-> TypeScript互操作
📦 将二进制文件嵌入到单文件ES模块中
🗺️ 在浏览器和JS运行时(Node、Deno、Bun)中工作
⚡ 生成C#接口的绑定和类型
🏷️ 支持对象实例的互操作
🛠️ 允许自定义发射的绑定
🔥 支持WASM多线程、AOT、修剪
🎬 快速入门
https://bootsharp.com/guide/getting-started
为什么不选择Blazor?
与尝试将整个网页平台引入.NET的解决方案Blazor不同,Bootsharp促进了C#和TypeScript之间的高级互操作,允许在自然生态系统中使用行业标准工具和框架(如React和Svelte)构建UI层。
为什么不是 System.JavaScript
?
Bootsharp本身构建在.NET 7中引入的System.Runtime.InteropServices.JavaScript之上。
如果您只是想将简单的库API暴露给JavaScript,并且不需要类型声明,Bootsharp可能有些过度。然而,.NET的互操作是低级的,不支持传递自定义类型的值,并且需要大量样板代码来编写绑定。这对于大规模API是不切实际的。
使用Bootsharp,您只需提供特定领域的接口,即可像它们最初是用TypeScript编写的一样无缝使用(反之亦然)。此外,Bootsharp还提供了将所有二进制文件打包成单文件ES模块的选项,并修补了.NET的内部JavaScript代码,使其在受限的运行时环境中兼容,如VS Code网页扩展。