.net也可以用Electron开发跨平台的桌面程序了

Electron.NET的用法

Electron.NET 是一个将 .NET CoreElectron 深度集成的框架,它允许开发者使用 C# 和 ASP.NET Core 技术栈来构建跨平台的桌面应用程序。它的核心价值在于让 .NET 开发者无需学习 JavaScript 或 Electron 原生 API,即可快速开发出 Windows、macOS 和 Linux 上运行的原生桌面应用。

Electron.NET 的核心用法

1. 环境准备

在开始之前,你需要确保本地环境已安装:

  • .NET SDK(建议 6.0 或更高版本)
  • Node.jsnpm
  • Electron.NET CLI(全局工具)

安装 Electron.NET CLI:

cs 复制代码
dotnet tool install ElectronNET.CLI -g
2. 创建项目

你可以使用 .NET CLI 创建一个新的 Blazor Server 或 ASP.NET Core Web 应用,并将其改造为 Electron 应用。

创建项目:

cs 复制代码
mkdir ElectronApp
cd ElectronApp
dotnet new blazorserver -o ElectronApp
dotnet sln add ElectronApp
3. 集成 Electron.NET

在项目中安装 Electron.NET 的 NuGet 包:

cs 复制代码
dotnet add package ElectronNET.API

修改 Program.cs 文件,启用 Electron 支持:

cs 复制代码
using ElectronNET.API;
using ElectronNET.API.Entities;

var builder = WebApplication.CreateBuilder(args);

// 启用 Electron
builder.WebHost.UseElectron(args);

var app = builder.Build();

// 配置中间件
if (app.Environment.IsDevelopment())
{
    app.UseWebAssemblyDebugging();
}

app.UseBlazorFrameworkFiles();
app.UseStaticFiles();
app.UseRouting();

app.MapFallbackToFile("index.html");

// 启动 Electron 窗口
await ElectronApp.StartAsync();
var window = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions
{
    Width = 1200,
    Height = 800,
    Show = false
});
window.OnReadyToShow += () => window.Show();

app.Run();
4. 启动与调试

在项目根目录下执行以下命令,启动 Electron 应用:

cs 复制代码
electronize start

这会自动启动 ASP.NET Core 服务器,并启动 Electron 客户端,加载你的 Web 应用。

5. 打包发布

当你完成开发后,可以使用以下命令打包应用:

cs 复制代码
electronize build /target win /architecture x64

支持的目标平台包括:

  • Windows (win)
  • macOS (mac)
  • Linux (linux)

优势与适用场景

  • .NET 生态无缝接入:可以直接使用 NuGet 包、Entity Framework、SignalR 等 .NET 技术。
  • 跨平台支持:一次编写,可发布到 Windows、macOS、Linux。
  • 现代化 UI:支持 Blazor、Razor Pages、Vue、React 等前端框架。
  • 原生功能调用 :通过 ElectronNET.API 可以调用系统托盘、通知、文件对话框、剪贴板等原生桌面功能。

注意事项

  • 打包体积较大:由于内置了 Chromium,最终打包体积通常在 100MB 以上。
  • 性能开销:相比纯原生应用,Electron 应用的内存占用和启动速度略逊一筹。
  • 更新机制:需要自行实现或集成自动更新功能(如 Squirrel 或 Electron 自带的更新机制)。

Electron.NET 特别适合那些希望利用现有 .NET 技术栈快速构建跨平台桌面应用的团队,尤其是内部工具、管理后台、客户端软件等场景。

相关推荐
子兮曰2 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰2 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万2 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝2 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋2 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
大蓝头2 天前
安装包UI美化之路-nsNiuniuSkin全新UI调试与预览方法
ui·electron·安装包·截图控件·截屏控件
卡布鲁2 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
李少兄2 天前
JavaScript 隐式全局变量解析
javascript
汉堡大王95272 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大2 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端