献给自己的一款个人管理的桌面软件(一)

前言

1.从事软件行业近十年,所造所想皆为他人,应了那句话 [遍身罗绮者,不是养蚕人],遂生出了为自己写了一个属于自己的软件,功能虽小,却实用,代码生成、 数据迁移 、脚步管理皆为日常工作辅助,其他功能皆为隐私保护和生活记录。他日如果离开此行业,这个软件便是我留下的印记。

2.本软件从https://gitee.com/ten-ken/personal-manage 孵化,仓库私有,开源仓库不具有离线在线及不具有跨平台的能力,本软件公共模块全使用了.netstandarnd2.0进行封装,虽然UI层仍然是基于.netframework4.6+这种框架,但后面相对仅UI层迁移到跨平台下的UI框架(如MAUI和Avalonia UI ),成本就很低了。

关于项目的ReadMe

项目简介

personal-manage 是一个功能丰富的个人/团队开发效率管理工具与快速开发平台。项目历经多年迭代,从最初的简单工具逐渐演化为一个支持多数据库多语言代码生成系统管理 以及自动化运维的综合性桌面应用系统。

该项目的核心亮点在于其架构兼容性 (支持 .NET Framework 至 .NET 9.0)以及强大的数据库逆向工程与代码生成能力。它不仅是代码片段和账号的保险箱,更是一个集成了 FTP、Python 脚本、水印处理、二维码自定义生成等实用工具的开发者工具箱。


核心功能

1. 跨平台架构支持

  • .NET Standard 2.0 核心库:统一了 UI 与业务逻辑层。
  • 广泛兼容性 :支持在 .NET Framework 4.6.2 - 4.8.2 传统环境以及 .NET Core 3.0.NET 9.0 现代环境中运行。
  • 双模式运行:开创了离线(本地 SQLite)和在线(WebApi/Multi-DB)模式的自由切换。

2. 代码生成器 (Code Generator)

  • 多语言支持
    • Java (JOOQ):通过内置的 Java 工具生成 POJO、DAO、Records、Tables 等全套 JOOQ 源码。
    • C# (NVelocity) :基于 NVelocity 模板引擎生成 【C#/Java/Html/Vue/C++/Python/Golang等】 实体、Service、Controller、UI代码,目前支持数据库包含支持 MySQL, SQLite, Oracle, SQL Server, PostgreSQL五种类型。
  • 数据库逆向 :支持 MySQL, SQLite, Oracle, SQL Server, PostgreSQL 的表结构反向读取。
  • 模板管理:支持模板分组、代码片段管理及项目关联。

3. 数据库工具箱

  • 数据库同步
    • 结构同步:对比不同库(支持 SQLite 互相同步)的表结构并迁移。
    • 数据迁移:支持异构数据库(如 SQLite 到 MySQL,MySQL 到 PostgreSQL)之间的数据迁移(单表限制 5 万条内)。
  • 备份恢复:集成 MySQL 备份/恢复命令行封装。

4. 实用工具集

  • Python 脚本管理:内置 Python 虚拟环境管理、依赖安装、脚本运行支持。
  • FTP 客户端:内置 FTP 上传下载工具。
  • 水印工具:支持图片(PNG/JPG)和 PDF 文档的水印添加,支持锚点拖动定位。
  • 条码/二维码生成:支持动态表头(8个卡槽)和中间 LOGO 图片的二维码/条形码批量生成。
  • 内置浏览器:集成 MiniBlink 浏览器内核,用于网页内容展示。
  • 临时文件管理:方便相关项目或任务的文件管理,具有时效性

技术架构

项目采用经典的分层架构设计,确保业务逻辑与界面分离。

技术栈

  • UI 框架 :Windows Forms (WinForms),集成 AntdUI 组件库。
  • 浏览器内核MiniBlink (基于 Chrome/Blink)。
  • 数据访问层 (DAL)
    • 原生支持 SQLite (默认)。
    • 扩展支持 MySQL, Oracle, PostgreSQL, SQL Server
  • ORM/查询构造器
    • 仿 MyBatis-Plus 的 LambdarWrapper 查询方式。
    • 基于反射的通用 CRUD (BaseDAL, BaseBLL)。
  • Office 处理Aspose.Cells, Aspose.Words, Aspose.Pdf

项目结构概览

  • personal-manage.UI:主界面层,WinForms 窗体。
  • personal-manage.BLL:业务逻辑层,处理核心业务规则。
  • personal-manage.DAL:数据访问层,封装 SQL 操作与数据库适配器。
  • personal-manage.Common:公共工具类(加密、日志、Http 请求、本地文件处理)。
  • personal-manage.Models:实体类与数据结构定义。
  • MiniBlinkPinvoke:封装浏览器控件的动态库调用。
  • MyWfControls:自定义的 WinForms 控件库(分页、按钮、任务管理等)。

功能模块详解

代码片段与项目管理

  • 支持建立多个代码项目,每个项目下可管理独立的代码片段(Code Snippet)。
  • 支持 Java, C#, Python, SQL 等多种语言的语法高亮展示与编辑。
  • 快捷的代码复制与模板应用功能。

账号与隐私管理

  • 账号加密管理:使用 RSA 加密存储敏感账号密码。
  • 二级密码验证:打开特定模块(如账号管理)时需输入管理密码。
  • 支持附件(二进制文件)直接关联到账号记录中。

数据库连接与配置

  • 支持在同一项目中配置多个数据库连接(IP/Port/DbName 不同)。
  • 动态切换数据源进行代码生成或数据迁移。

更新日志 (V3.x 精选)

V3.3.0 (最新主要版本)

  1. 双向异步:服务调用层的CURD及上传下载相关操作的实现异步不阻塞,控制层和UI层的相关强堵塞性操作的从同步可转为异步,本质是重写并兼任 同步和异步的函数式调用。
  2. 新增临时文件功能:类似邮件功能,包含标题、备注以及多个附件 便于在独立查看和下载,因为在微信这类工具查找文件也很麻烦,其次这个具有时效性、安全性及隐私性。

V3.2.2

  1. 架构重构:UI 部分全部迁移至 .NetStandard 2.0,实现了跨 .NET 版本的支持。
  2. WebApi 集成:支持基于 .NET 8.0 的 WebApi 模式。
  3. 业务转发:使用动态代理和 AOP 实现业务转发和回调。

V3.0.6

  1. 条码增强:二维码和条形码功能支持 8 个动态【卡槽】存放动态表头的数据。
  2. 一对多关系:将"一项目一数据库"修改为"一对多",支持项目内管理多个不同数据库。
  3. 水印优化:支持锚点拖动,精准定位水印。

V2.3.0 - V2.5.0

  1. UI 升级:引入 AntdUI,界面更加现代、精简。
  2. 数据库支持:新增 PostgreSQL 数据库支持及代码生成。
  3. Python 环境:新增 Python 脚本管理模块,支持虚拟环境和依赖管理。
  4. 文件管理:新增文件加密解密、FTP 客户端、内置浏览器等功能。
  5. 新增注册功能和控制台功能(数据库连接加密和生成密保sql脚本)
  6. CMD命令行 支持更多额外参数 备份数据库


V0.5.0-V2.0.0

https://gitee.com/ten-ken/personal-manage 相当于是这个项目中的所有功能,后面2.0+版本就是针对架构的迁移,AntdUI的引入,业务底层代码的封装及优化等等。


安装与运行

  1. 环境准备
    • 确保安装了 .NET SDK (推荐 .NET 6.0 或 .NET 8.0 版本) 或 .NET Framework 4.6+
    • 开发工具推荐使用 Visual Studio 2022。
  2. 获取代码
bash 复制代码
git clone https://gitee.com/ten-ken/personal-manage.git
  1. 编译运行
    • 使用 Visual Studio 打开 personal-manage.UI 解决方案或主项目。
    • 还原 NuGet 包(主要依赖包括 AntdUI, Aspose, MiniBlinkPinvoke 等)。
    • 设置启动项为 personal-manage.UI,编译并运行。

附录

配置文件说明

  • App.config / Web.config (如果有):数据库连接字符串配置(默认 CoreDbContextConnection)。
  • 数据库 :项目运行后会自动生成 personal-manage.db (SQLite) 用于存储基础配置和业务数据。
相关推荐
寻寻觅觅☆5 小时前
东华OJ-基础题-106-大整数相加(C++)
开发语言·c++·算法
l1t5 小时前
在wsl的python 3.14.3容器中使用databend包
开发语言·数据库·python·databend
青云计划6 小时前
知光项目知文发布模块
java·后端·spring·mybatis
赶路人儿6 小时前
Jsoniter(java版本)使用介绍
java·开发语言
ceclar1236 小时前
C++使用format
开发语言·c++·算法
探路者继续奋斗7 小时前
IDD意图驱动开发之意图规格说明书
java·规格说明书·开发规范·意图驱动开发·idd
码说AI7 小时前
python快速绘制走势图对比曲线
开发语言·python
Gofarlic_OMS7 小时前
科学计算领域MATLAB许可证管理工具对比推荐
运维·开发语言·算法·matlab·自动化
星空下的月光影子7 小时前
易语言开发从入门到精通:补充篇·网络爬虫与自动化采集分析系统深度实战·HTTP/HTTPS请求·HTML/JSON解析·反爬策略·电商价格监控·新闻资讯采集
开发语言
老约家的可汗7 小时前
初识C++
开发语言·c++