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地址

全部源码