C# 想要实现 Electron 那样混合桌面程序可以用以下几个库.
本文使用 EdgeSharp
开始
EdgeSharp 可以直接使用HTML,
也可以配合 Blazor、Razor 、SolidJs、Svelte、React、Vue、Angular 等前端框架。
直接调用系统中 Edge 浏览器 所配套的 WebView2
无需像 Electron 那样打包整个浏览器内核,打包后的文件非常小。
官方示例
更多强大的功能可以查看官方示例,本文只使用了最简单的HTML
直接 控制台项目 调用 win32 创建一个窗口, helloworld 程序打包后只有 1.5M !
本文中使用 Winform 打包后也是只有 1.5M 左右( js库都引用的cdn)
创建一个 Winform 程序
创建后,删除其他文件,只保留 Program.cs
Nuget安装相关依赖
将下面代码放入Program.cs中
新建 Controller/HelloController.cs
继承 ActionController , 并添加 ActionController , ActionRoute 两个特性
新建 wwwroot/index.html
html 代码省略
这里是 Js 发起请求与 C# 交互的关键代码
题外话 : 一个 fetch 例子
运行项目
这样我们就得到了一个使用 HTML 作为页面, C# 作为后端的桌面程序
Github地址
全部源码