乐于分享
好东西不私藏

一个入门简单、跨平台、企业级桌面软件开发框架

一个入门简单、跨平台、企业级桌面软件开发框架

前言

桌面软件在办公、工具等场景中依然有着不可替代的地位,但传统桌面开发往往需要学习 C++、C# 等语言,门槛不低。electron-egg 的目标是让熟悉 Web 技术的人也能快速上手桌面应用开发。

这篇文章就来聊聊这个框架的整体情况,包括它能做什么、有什么特点、代码怎么写,以及实际效果如何。希望能给想入门桌面开发的朋友一些参考。

项目介绍

electron-egg 是一个跨平台的桌面软件开发框架,基于 Electron 和 Egg.js 的设计理念构建。它的核心定位是"入门简单、企业级、跨平台"。

目前这个框架已经在记账、政务、医疗、学校、股票交易、ERP、娱乐、视频等领域有了不少实际应用案例。一套代码能打包成 Windows、Mac、Linux 以及国产 UOS、Deepin、麒麟等系统的安装包,对需要覆盖多个平台的项目来说比较实用。

项目功能

功能模块
说明
配置管理
支持多环境配置(开发、生产),默认配置与本地配置分离
进程通信
封装了主进程与渲染进程的通信机制,调用方式简洁
任务调度
支持多任务(进程、线程、渲染进程),适合大型项目拆分
数据库
内置 SQLite 示例,也支持其他数据库扩展
自动升级
打包时生成 latest.yml 和增量升级包,支持平滑更新
日志记录
主进程和渲染进程都有日志输出,方便排查问题
打包构建
集成 electron-builder,一键打出各平台安装包
安全加密
支持字节码加密、代码压缩混淆

项目特点

跨平台支持:一套代码,打包成 Windows、Mac、Linux、UOS、Deepin、麒麟等多个版本

前端技术栈自由:不绑定任何前端框架,Vue、React、HTML 都可以拿来用

模块化架构:采用"单业务进程 + 模块化 + 多任务"的设计,大型项目也能保持结构清晰

工程化思维:可以用前后端的开发习惯来写桌面软件,服务层、控制器、路由都有规范

高性能:事件驱动 + 非阻塞 I/O,页面响应比较流畅

跨语言扩展:业务逻辑可以用 Java、Go、Python、C++ 等语言编写,再通过框架调用

项目技术

  • Electron:桌面应用的基础运行时

  • Node.js:提供文件系统、进程管理等底层能力

  • Egg.js 设计理念:借鉴了阿里开源的企业级 Node.js 框架的插件机制、中间件和配置管理思路

  • TypeScript / JavaScript:业务代码主要用 JS 或 TS 编写

  • Vue(Demo 示例):前端 Demo 用 Vue 实现,但实际项目可按需替换

项目代码

project/├── package.json          # npm 配置├── build/                # 打包脚本和图标资源├── cmd/                  # 命令配置(开发、打包)├── electron/             # 主进程服务│   ├── main.js           # 入口文件│   ├── config/           # 配置(default/local/prod)│   ├── controller/       # 控制器,接收前端请求│   ├── service/          # 业务层,处理具体逻辑│   ├── preload/          # 预加载脚本(托盘、升级等)│   └── jobs/             # 定时任务或后台任务├── frontend/             # 前端目录(Vue Demo)├── public/               # 资源目录(生产环境加载)│   ├── dist/             # 编译后的前端资源│   └── electron/         # 加密后的主进程代码├── out/                  # 打包输出(exe/dmg/deb 等)├── logs/                 # 运行日志└── data/                 # 内置数据库文件

控制器示例,接收前端参数并调用服务层:

const { Controller } = require('ee-core');classExampleControllerextendsController{async test(args, event) {// 调用 service 处理业务const result = await Services.get('example').test('electron');// 向前端返回数据return result;  }}

服务层示例,处理具体业务逻辑:

const { Service } = require('ee-core');classExampleServiceextendsService{async test(args) {return { status'ok'params: args };  }}

应用生命周期入口,继承 Application 类:

const { Application } = require('ee-core');classIndexextendsApplication{async ready() {// 框架加载完成后的初始化操作  }async electronAppReady() {// Electron 就绪后的操作  }async windowReady() {// 主窗口加载完成  }}

项目效果

实际跑起来的效果和普通 Electron 应用没什么区别,但因为框架把前后端分离了,开发体验会更接近 Web 项目的感觉。

用 npm run build 就能打出各平台的安装包,对需要多端发布的项目来说比较方便。

项目源码

GitHub:https://github.com/dromara/electron-egg

Gitee:https://gitee.com/dromara/electron-egg

总结

electron-egg 的核心思路是降低桌面开发的门槛,让熟悉 Web 技术的人也能快速上手。它不像传统方案那样要求你去学 C++ 或 Win32 API,而是用 Node.js + 前端技术栈来解决问题。

从功能上看,配置管理、通信机制、任务调度、打包升级这些桌面软件的常见需求,框架都提供了现成的解决方案。如果你正好需要开发一个跨平台桌面应用,又不想从零开始搭架构,这个框架值得一试。

关键词

#跨平台桌面开发、Electron、#桌面软件框架#Node.js、前端工程化、Vue桌面应用、#React桌面应用#国产系统适配、字节码加密、自动升级、模块化架构、进程通信

作者:小码编匠

出处:gitee.com/smallcore/DotNetCore

声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!

END
AI 大模型 + Asterisk 通信引擎构建的新一代智能客服呼叫中心系统
一款基于React生态的大屏数据可视化设计器
基于 React + FastAPI + 百炼大模型的智能运维诊断平台
一款开源企业级别的中后台管理系统
开源的快速开发平台(快速开发骨架 / 通用后台管理系统 / 完善的前后端代码)
JSON存储+拖拽设计,这款工作流引擎有点东西
微服务权限系统:Spring Cloud + React 19 的 RBAC 实践
企业后台、SaaS 管理端、数据可视化平台和内部低代码工具的中后台框架
面向企业后台、SaaS 管理端、数据可视化平台和内部低代码工具的中后台框架
一款面向数字化场景的可视化流程编排与数据交换平台
Vue 前后端分离的企业办公 OA 审批管理系统
接入 AI 辅助后,后台管理平台开发到底省了哪些事?
一套前后端分离的轻量级智能 BI 系统
一款跨平台物联网设备配置管理工具
一套开源的多模式聚合支付系统(聚合支付 + 多应用接入)
为什么我放弃了手写后台管理?聊聊这个开源免费的AI低代码平台,太实用了
一款集成报表、打印、大屏与仪表盘的免费开源工具
基于 React + Vite + TypeScript 的天气可视化大屏
一个基于 Vue 3 的开源流程设计器
Java + Vue + MySQL 的物联网设备管理平台
一套完整的多租户 SaaS 架构,源码全放出来了,不玩虚的
一款开源可视化引擎 面向Web与物联网场景
工业物联网和电力自动化场景 拖拽式规则编排编辑器
电商项目无从下手?这个 60k+Star 的实战项目一套代码,前台后台全搞定
备注【开源

方便大家交流、资源共享和共同成长

纯技术交流群、需要的小伙伴请扫码

有收获?不妨分享让更多人受益

关注「程序员开源栈」,共同提升技术实力

点分享
点收藏
点在看
点点赞