项目简介
一个基于 .NET 8 的现代化企业级开发平台,采用 DDD(领域驱动设计)分层架构,集成了权限管理、代码生成、工作流引擎、实时通信等核心功能模块,为中大型企业应用提供高内聚、可扩展、易维护的技术参考。
核心特性
DDD 分层架构:清晰的领域边界和职责划分
完善的权限体系:RBAC 权限模型,支持多租户与数据权限
强大的代码生成器:一键生成前后端完整 CRUD 代码
灵活的工作流引擎:支持三种主流流程设计器
实时通信能力:基于 SignalR 实现消息推送与在线状态管理
完整的多语言方案:前后端统一国际化支持
技术栈
后端技术
前端技术
工作流设计器支持
TaktFlow:基于
@antv/x6,适用于复杂流程与高性能场景TaktJsplumbFlow:基于
jsPlumb,兼容性好,易于定制TaktLogicFlow:基于
@logicflow/core,插件生态丰富,现代化体验
其他核心依赖
@microsoft/signalr:实时通信客户端@wangeditor/editor:富文本编辑器@form-create/ant-design-vue:动态表单设计器
系统架构
整体架构
采用经典的 DDD 四层架构:
接口层(WebApi):对外暴露 RESTful API
应用层(Application):协调领域服务,实现用例逻辑
领域层(Domain):核心业务规则与实体
基础设施层(Infrastructure):技术实现细节(数据库、缓存、认证等)
1、用户认证 JWT Token 认证 OAuth2.0 / OpenID Connect 集成 统一身份认证中心(Identity Server 4) 单点登录(SSO)支持 2、权限控制 RBAC 角色权限模型 多租户支持 数据权限控制(行级/列级) API 访问控制 按钮级前端权限控制 3、组织架构 多级组织结构 用户组与岗位管理 组织关系维护 4、安全特性 密码策略与登录限制 操作日志审计 实时会话管理 1、模板引擎 基于 Scriban 模板引擎 支持自定义模板与在线编辑 模板版本管理 2、数据源管理 支持 SQL Server、MySQL 等多数据库 自动解析表结构与关联关系 字段映射配置 3、代码生成内容 后端:实体类、DTO、仓储接口/实现、服务接口/实现、控制器 前端:API 文件、多语言资源、列表页、表单页、详情页、导入导出功能 4、生成策略 可配置命名规则与字段类型映射 覆盖策略与代码注释生成 1、流程设计 三种设计器可选,覆盖不同场景需求 支持开始/结束/任务/网关/会签等节点类型 可视化拖拽 + 连线规则校验 2、流程管理 流程定义与实例全生命周期管理 流程监控与历史查询 3、任务处理 待办任务中心 任务转交、委托、批量处理 任务统计分析 4、高级特性 并行网关与条件分支 定时任务集成 业务数据深度关联 SignalR 集成:自动重连、连接状态监控、在线用户管理 消息管理:系统通知、即时消息、历史记录与统计 1、主题与布局 动态主题切换与暗黑模式 响应式布局适配多端 2、组件封装 3、状态管理 4、多语言支持 前端:基于 Vue-i18n,支持 9 种语言,模块化管理 后端:通过中间件实现异常、验证、业务消息的国际化 Visual Studio Code(轻量编辑) Azure Data Studio(数据库管理) Postman / Apifox(API 测试) Git GUI 工具(版本控制可视化) EditorConfig C# Dev Kit Vue Language Features (Volar) TypeScript Vue Plugin ESLint + Prettier 1、安装必需工具 2、配置数据库与 Redis 3、设置 JWT 密钥与跨域策略 1、克隆项目 2、安装后端依赖 3、安装前端依赖 启动后端 启动前端 提示:后端启动后可通过 包含完整的初始化脚本:数据库创建、基础数据、测试数据。 接口版本:v1 基础路径: 认证方式:Bearer Token 响应格式:统一结构体(含 code、message、data) 获取 Token: 刷新 Token: 注销 Token: GitHub:https://github.com/Lean365/Takt.Xp整体架构
分层架构
项目结构
Takt.Xp/
├── backend/ # 后端项目
│ ├── src/
│ │ ├── Takt.Application/ # 应用层
│ │ │ ├── Services/ # 应用服务(Accounting, Generator, Identity, Logging, Logistics, Routine, Workflow)
│ │ │ └── DTOs/ # 数据传输对象
│ │ ├── Takt.Shared/ # 公共层(常量、枚举、扩展、工具等)
│ │ ├── Takt.Domain/ # 领域层(实体、接口、仓储定义、领域模型)
│ │ ├── Takt.Infrastructure/ # 基础设施层(认证、缓存、数据访问、SignalR、中间件等)
│ │ └── Takt.WebApi/ # 接口层(控制器、中间件、静态资源)
│ └── Takt.Xp.sln # 解决方案文件
│
├── frontend/ # 前端项目
│ └── Takt.Antd/ # Ant Design Vue 前端
│ ├── src/
│ │ ├── api/ # 按模块划分的 API 接口
│ │ ├── components/ # 公共组件(含三种工作流设计器)
│ │ ├── layouts/ # 布局
│ │ ├── locales/ # 多语言资源
│ │ ├── router/ # 路由
│ │ ├── stores/ # Pinia 状态管理
│ │ ├── utils/ # 工具函数
│ │ └── views/ # 页面视图(按业务模块组织)
│ └── public/ # 静态资源
│
├── docs/ # 文档目录(开发规范、配置说明)
├── scripts/ # 部署脚本
├── .editorconfig # 编辑器配置核心功能模块
权限管理模块
代码生成器模块
工作流引擎模块
实时通信模块
前端功能
开发环境
必需工具
推荐工具
IDE 配置(VS Code 推荐插件)
快速开始
环境准备
安装步骤
git clone https://github.com/Lean365/Takt.Xp.git
cd Takt.Xpcd backend/src
dotnet restorecd ../../frontend/Takt.Antd
pnpm install # 或 npm install运行命令
cd backend/src/Takt.WebApi
dotnet run
# 默认地址:http://localhost:5000(HTTP)或 https://localhost:5001(HTTPS)cd frontend/Takt.Antd
pnpm dev # 或 npm run dev
# 默认地址:http://localhost:5173http://localhost:5000/swagger 访问 API 文档;前端支持热更新。数据库设计
核心表结构(示例)
-- 用户表
CREATETABLE Takt_User (
IdBIGINT PRIMARY KEY,
Username NVARCHAR(50) NOTNULL,
-- 其他字段
);
-- 角色表
CREATETABLE Takt_Role (
IdBIGINT PRIMARY KEY,
RoleName NVARCHAR(50) NOTNULL,
-- 其他字段
);API 文档
/api/Takt认证接口
POST /api/Takt/auth/tokenPOST /api/Takt/auth/refreshPOST /api/Takt/auth/logout项目源码