You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
6 days ago | |
---|---|---|
.config | 3 months ago | |
docs | 3 months ago | |
scripts | 3 months ago | |
src | 6 days ago | |
.gitignore | 1 week ago | |
README.md | 3 months ago | |
X1.sln | 1 week ago | |
modify.md | 6 days ago | |
update-database.ps1 | 1 month ago |
README.md
CellularManagement 项目说明
项目概述
CellularManagement 是一个基于 Clean Architecture 架构的蜂窝网络管理系统。该项目采用领域驱动设计(DDD)原则,实现了高度模块化和可维护的代码结构。系统提供了完整的用户认证、权限管理、实时通信等功能,适用于大规模分布式部署场景。
技术栈
- .NET 8.0
- 最新的 .NET 运行时和框架特性
- 高性能的异步编程模型
- 内置的依赖注入容器
- Entity Framework Core
- 支持多种数据库提供程序
- 强大的 LINQ 查询功能
- 自动迁移和数据库版本控制
- ASP.NET Core
- RESTful API 支持
- WebSocket 实时通信
- 中间件管道
- Clean Architecture
- 清晰的层次结构
- 依赖倒置原则
- 领域驱动设计
- DDD (领域驱动设计)
- 领域模型
- 聚合根
- 值对象
- 领域事件
- WebSocket
- 实时双向通信
- 连接状态管理
- 消息广播
项目结构
CellularManagement/
├── src/
│ ├── CellularManagement.Application/ # 应用层
│ │ ├── Common/ # 通用组件
│ │ ├── Features/ # 功能模块
│ │ └── Services/ # 应用服务
│ ├── CellularManagement.Domain/ # 领域层
│ │ ├── Entities/ # 领域实体
│ │ ├── Events/ # 领域事件
│ │ ├── Interfaces/ # 领域接口
│ │ └── ValueObjects/ # 值对象
│ ├── CellularManagement.Infrastructure/ # 基础设施层
│ │ ├── Persistence/ # 数据持久化
│ │ ├── Services/ # 基础设施服务
│ │ └── Identity/ # 身份认证
│ └── CellularManagement.WebApi/ # 表现层
│ ├── Controllers/ # API 控制器
│ ├── Middleware/ # 中间件
│ └── Filters/ # 过滤器
主要功能
用户认证与授权
- JWT 令牌认证
- 基于标准的 JWT 规范
- 支持令牌刷新机制
- 自动令牌过期处理
- 基于角色的访问控制 (RBAC)
- 灵活的角色定义
- 角色继承关系
- 动态角色分配
- 细粒度的权限管理
- 功能级权限控制
- 数据级权限控制
- 操作级权限控制
- 权限代码化存储
- 统一的权限标识符
- 权限分组管理
- 权限描述文档
- 多角色权限合并
- 自动权限去重
- 权限优先级处理
- 权限冲突解决
角色管理
- 角色创建与编辑
- 角色权限分配
- 角色继承关系
- 角色用户管理
缓存服务
- 分布式缓存支持
- 多级缓存策略
- 缓存自动失效
- 缓存预热机制
JWT令牌管理
- 令牌生成与验证
- 令牌刷新机制
- 令牌黑名单
- 安全策略配置
密钥轮换服务
- 自动密钥轮换
- 密钥版本管理
- 密钥备份恢复
- 安全审计日志
WebSocket实时通信
- 实时消息推送
- 点对点消息
- 广播消息
- 分组消息
- 连接管理
- 连接状态监控
- 自动重连机制
- 心跳检测
- 消息管道处理
- 消息过滤
- 消息转换
- 消息路由
- 分布式WebSocket管理
- 集群支持
- 会话共享
- 负载均衡
- 性能监控
- 连接数统计
- 消息吞吐量
- 延迟监控
角色管理模块
角色管理模块提供了完整的角色 CRUD 操作,采用 CQRS 模式实现,将命令和查询职责分离。
功能特性
- 创建角色
- 删除角色
- 获取单个角色
- 获取所有角色
API 端点
方法 | 端点 | 描述 |
---|---|---|
POST | /api/roles/create | 创建新角色 |
DELETE | /api/roles/{id} | 删除角色 |
GET | /api/roles/{id} | 获取单个角色 |
GET | /api/roles | 获取所有角色 |
代码结构
Features/Roles/
├── Commands/
│ ├── CreateRole/
│ │ ├── CreateRoleCommand.cs
│ │ ├── CreateRoleCommandHandler.cs
│ │ └── CreateRoleResponse.cs
│ ├── DeleteRole/
│ │ ├── DeleteRoleCommand.cs
│ │ ├── DeleteRoleCommandHandler.cs
│ │ └── DeleteRoleResponse.cs
│ └── RoleCommandHandler.cs
└── Queries/
├── GetRole/
│ ├── GetRoleQuery.cs
│ └── GetRoleResponse.cs
├── GetAllRolesQuery.cs
└── RoleQueryHandler.cs
设计模式
- CQRS(命令查询职责分离)
- 单一职责原则
- 依赖注入
- 异常处理
- 日志记录
开发环境要求
- .NET 8.0 SDK
- 最新的 .NET 开发工具
- 跨平台支持
- Visual Studio 2022 或 VS Code
- 完整的 IDE 支持
- 调试工具
- 代码分析
- SQL Server (可选,根据实际需求)
- 支持其他数据库
- 数据迁移工具
如何运行
- 克隆项目
git clone http://47.120.42.247:13001/root/CellularManagement.git
- 还原依赖
dotnet restore
- 运行项目
dotnet run --project src/CellularManagement.WebApi
项目特点
- 采用 Clean Architecture 架构,实现关注点分离
- 清晰的层次结构
- 依赖倒置原则
- 领域驱动设计
- 使用 DDD 设计模式,提高代码可维护性
- 领域模型
- 聚合根
- 值对象
- 模块化设计,便于扩展和维护
- 功能模块化
- 插件化架构
- 配置驱动
- 完善的依赖注入机制
- 自动注册
- 生命周期管理
- 作用域控制
- 实时通信支持
- WebSocket
- 消息队列
- 事件总线
- 分布式架构支持
- 服务发现
- 负载均衡
- 配置中心
- 性能监控和指标收集
- 性能计数器
- 健康检查
- 日志追踪
开发指南
代码规范
- 遵循 C# 编码规范
- 使用 XML 文档注释
- 编写单元测试
- 代码审查流程
分支管理
- master: 主分支,稳定版本
- develop: 开发分支
- feature/*: 功能分支
- hotfix/*: 紧急修复分支
提交规范
- feat: 新功能
- fix: 修复
- docs: 文档
- style: 格式
- refactor: 重构
- test: 测试
- chore: 构建
贡献指南
- Fork 项目
- 创建特性分支
- 提交更改
- 推送到分支
- 创建 Pull Request
许可证
分支说明
norm 分支
- 创建时间:2024年
- 分支目的:规范化代码结构和实现
- 主要更新:
- 代码结构优化
- 命名规范统一
- 注释完善
- 文档更新