Dorisoy.Pan 二次开发指南:手把手教你扩展文档管理系统自定义功能
Dorisoy.Pan 二次开发指南手把手教你扩展文档管理系统自定义功能【免费下载链接】Dorisoy.PanDorisoy.Pan 是基于 .NET 10 的跨平台文档管理系统使用 MS SQL 2012 / MySQL 8.0或更高版本后端数据库您可以在 Windows、Linux 或 Mac 上运行它。项目中的所有方法都是异步的支持 JWT 令牌身份验证项目体系结构遵循 CQRS MediatR 模式和最佳安全实践。源代码完全可定制热插拔且清晰的体系结构使开发定制功能和遵循任何业务需求变得容易。项目地址: https://gitcode.com/gh_mirrors/do/Dorisoy.PanDorisoy.Pan 是一款基于 .NET 10 的开源跨平台文档管理系统采用 CQRS MediatR 架构模式后端支持 MySQL 与 SQL Server前端同时提供 Angular Web 版与 Avalonia 桌面客户端所有方法均为异步实现并内置 JWT 令牌身份认证。无论你是想给文档管理系统增加自定义功能还是打算基于它搭建企业私有云盘这篇二次开发指南都能帮你快速上手从零开始扩展属于你自己的功能模块。Dorisoy.Pan 是什么为什么适合二次开发Dorisoy.Pan 的定位很明确一套开箱即用、同时拥有完整前后端的文档管理系统。它自带文件分片上传、MD5 秒传、AES 加密存储、缩略图生成、文件夹共享、外部分享链接、版本历史、评论、通知、回收站等几十项成熟功能二次开发时你不需要从零搭建基础能力只需在现有骨架上长出新的业务模块。维度亮点运行时框架.NET 10net10.0全异步方法架构模式CQRS MediatR 14命令查询职责分离身份认证ASP.NET Core Identity JWT Bearer对象映射AutoMapper 16实体与 DTO 自动转换参数验证FluentValidation 12管道式统一校验数据库MySQL 8.0 / SQL Server 2012EF Core 10前端Angular MaterialWeb Avalonia桌面/移动清晰的热插拔分层设计让二次开发只需要聚焦于业务代码本身这正是 Dorisoy.Pan 作为文档管理系统二次开发基座的最大优势。二次开发准备环境搭建与源码获取开始前请先准备好以下环境.NET 10 SDK必需MySQL 8.0或SQL Server 2012二选一Redis可选用于上传并发锁未安装时自动降级Node.js 14 与 npm仅 Angular 前端需要获取源码并进入仓库git clone https://gitcode.com/gh_mirrors/do/Dorisoy.Pan随后编辑 appsettings.json 中的数据库连接字符串将其指向你自己的 MySQL 或 SQL Server 实例即可开始本地开发调试。快速跑通项目本地启动只需三步二次开发的第一步是让项目在你本机完整跑起来。第一步初始化数据库。推荐直接执行仓库自带的 SQL 脚本MySQL 执行 MySQL.sqlSQL Server 执行 MsSQL.sql也可以使用 EF Core Migration在包管理器控制台对 Dorisoy.Pan.Domain 项目执行Update-Database。第二步启动后端 API。打开解决方案 Dorisoy.Pan.sln运行dotnet run --project Web/Dorisoy.Pan.API启动后访问http://localhost:5000/swagger即可看到完整的接口文档所有 API 一目了然方便二次开发时调试接口。第三步启动前端。在UI目录执行npm install与npm run start浏览器访问http://localhost:4200用默认账号admingmail.com/admin123登录。Dorisoy.Pan 文档管理系统 Web 端登录界面.png)读懂架构CQRS MediatR 的七层结构二次开发前建议先理解后端 Web 目录下的分层设计每个项目各司其职项目职责Dorisoy.Pan.APIREST API 控制器、DI 注册、Swagger、启动入口Dorisoy.Pan.MediatRCommand/Query 与 Handler、FluentValidation 校验Dorisoy.Pan.Repository仓储层封装数据访问Dorisoy.Pan.DomainEF Core DbContext 与数据库迁移Dorisoy.Pan.Common通用仓储、UnitOfWork、查询扩展Dorisoy.Pan.Data实体类与 DTO 类Dorisoy.Pan.Helper加密、缩略图、路径等工具类一次完整的请求流转是Controller 接收请求 → 组装 Command 交给 MediatR → Handler 调用 Repository → 通过 UnitOfWork 提交事务。请求只读则走 Query有数据变更则走 Command读写完全分离这正是 CQRS 模式带来的高可维护性也是文档管理系统二次开发中最值得借鉴的设计。实战演练扩展一个文档管理自定义功能我们以重命名文档为例看新增一个功能需要触碰哪些文件完整链路仅涉及三层命令定义RenameDocumentCommand.cs —— 声明命令入参文档 ID 与新名称命令处理RenameDocumentCommandHandler.cs —— 注入仓储与 UnitOfWork执行查实体 → 改字段 → 提交三步并统一通过ServiceResponse返回结果控制器入口DocumentController.cs —— 只需调用_mediator.Send(command)即可控制器本身几乎不含业务逻辑。想扩展新功能时你只要复制这种模式新建 Command 类 → 新建 Handler 类 → 在对应 Controller 中添加 Action然后在 Startup.cs 中通过程序集扫描自动注册无需手动配置 DI。通用仓储 GenericRespository.cs 已内置增删改查、条件查询、Include 导航属性等常用方法大部分业务直接复用即可。Dorisoy.Pan 文档管理系统 Web 端共享链接设置界面.png)二次开发避坑指南.NET 10 迁移注意点项目已从 .NET 8 完整迁移到 .NET 10二次开发时需注意几个关键差异MySQL 驱动已更换为 Oracle 官方 MySql.EntityFrameworkCore 10.0.1命名空间从MySqlConnector变更为MySql.Data.MySqlClientEF Core 10 的Contains()查询在 MySQL 下可能报类型映射异常应改用项目封装的 QueryableContainsExtensions.cs 中的WhereContains扩展方法AutoMapper 16 与 Swashbuckle 10 有破坏性变更升级依赖时需同步调整构造方式实体新增字段后系统会在 Startup.cs 启动时自动检测并补齐缺失的数据库列二次开发时无需手动改表结构。客户端二次开发选择 Web 端还是桌面端Dorisoy.Pan 同时提供两套客户端二次开发时可按需选择Angular Web 端UI 目录适合快速迭代业务功能组件化开发支持列表/网格切换、右键菜单、拖拽上传等改动即时生效Avalonia 桌面/移动端Client 目录支持 Windows、Linux、macOS、Android、iOS通过 IFolderApi.cs 等 Refit 接口访问后端 API适合追求原生体验的场景。总结Dorisoy.Pan 凭借热插拔的分层架构、完善的文档管理与权限体系以及一套代码多端运行的特性是文档管理系统二次开发的上佳选择。只要掌握了Controller → Command → Handler → Repository这条核心链路再结合本指南的避坑要点你就能快速扩展出符合自身业务的自定义功能。现在就从克隆仓库开始动手打造属于你自己的文档管理系统吧【免费下载链接】Dorisoy.PanDorisoy.Pan 是基于 .NET 10 的跨平台文档管理系统使用 MS SQL 2012 / MySQL 8.0或更高版本后端数据库您可以在 Windows、Linux 或 Mac 上运行它。项目中的所有方法都是异步的支持 JWT 令牌身份验证项目体系结构遵循 CQRS MediatR 模式和最佳安全实践。源代码完全可定制热插拔且清晰的体系结构使开发定制功能和遵循任何业务需求变得容易。项目地址: https://gitcode.com/gh_mirrors/do/Dorisoy.Pan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考