C#多端桌面程序(可跨平台)

C#多端桌面程序(可跨平台)

 

 JavaScript Binding(JS 绑定),CefSharp

 

核心定位

项目定位
CefSharp Windows 桌面 UI 增强工具
—— 在 WinForms/WPF 窗口中嵌入一个“浏览器控件”
Chromely 跨平台桌面应用框架
—— 用 Web 技术(HTML/JS)构建完整桌面应用,C# 作为后端

跨平台支持

平台CefSharpChromely
Windows ✅ 完美支持(主力平台) ✅ 支持
macOS ❌ 不支持(或极难编译) ✅ 支持(通过 CefGlue.Cocoa)
Linux ⚠️ 实验性支持(社区维护,不稳定) ✅ 支持(通过 CefGlue.Gtk)

 JavaScript 与 C# 通信方式

方式CefSharpChromely
直接对象绑定 RegisterJsObject("obj", instance)
→ JS 可直接调用 window.obj.method()
❌ 不支持
REST API 风格 ❌ 不原生支持(需手动拦截请求) ✅ 原生支持
AddGetRequest("/api/xxx", handler)
→ JS 用 fetch('/api/xxx') 调用
事件回调 ✅ 支持(通过 IJavascriptCallback ✅ 支持(通过自定义事件)

 

特性CefSharpChromely
主要平台 Windows Windows / macOS / Linux
UI 模式 嵌入 WinForm/WPF 独立窗口(无 UI 框架依赖)
JS ↔ C# 通信 直接对象绑定(window.xxx REST API(fetch
学习曲线 需懂 WinForm/WPF 需懂 Web + .NET 控制台
适合项目 Windows 混合应用 跨平台 Web 桌面应用
活跃度 高(GitHub 18k+ stars) 中(GitHub 2k+ stars)
是否开源 ✅ MIT ✅ MIT

 

 

你的需求推荐
“我有个 WinForm 软件,想加个 Web 界面” ➡️ CefSharp
“我想用 Vue 做一个能在 Mac 和 Windows 上跑的 App” ➡️ Chromely
“我希望 JS 能像调函数一样直接调 C#” ➡️ CefSharp
“我想用 fetch 调本地 API,像做 Web 一样” ➡️ Chromely

 

 

 

项目结构特点
CefSharp - 主程序是 WinForm/WPF
- HTML 可以内嵌或本地加载
- 适合混合 UI(部分原生 + 部分 Web)
Chromely - 主程序是控制台应用
- 前端完全由 wwwroot/index.html 驱动
- 更接近 Electron/Tauri 的开发模式

 

posted @ 2026-03-24 09:22  与f  阅读(0)  评论(0)    收藏  举报