# OSS.Core **Repository Path**: osscore/oss-core ## Basic Information - **Project Name**: OSS.Core - **Description**: 一个完整的.Net Core 领域框架项目。 - **Primary Language**: C# - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 19 - **Forks**: 4 - **Created**: 2017-04-17 - **Last Updated**: 2025-10-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OSS-Core Framework 项目结构说明 ## 项目概述 OSS-Core 是一个基于 .NET 6.0 的模块化框架,包含核心组件、扩展组件和业务组件。主要将常规解决方案进行进一步的抽象下沉形成相关基础可选框架单元(在Framework 目录) ## 项目结构 ``` Framework/ ├── Context/ # 上下文管理 ├── Core/ # 核心组件 │ ├── Domain/ # 领域模型 │ ├── Opened/ # 开放领域 │ └── Repository/ # 数据访问层 │ ├── Dapper/ # Dapper基础仓储 │ ├── Dapper.Mysql/ # MySQL仓储实现 │ └── Dapper.SqlServer/ # SQL Server仓储实现 ├── Extension/ # 扩展组件 │ ├── Cache/ # 缓存扩展 │ ├── Mvc.Captcha/ # 验证码扩展 │ ├── Mvc.Captcha.Ali/ # 阿里云验证码扩展 │ └── PassToken/ # PassToken扩展 ├── Component/ # 业务组件 │ ├── DirConfig.Mysql/ # 目录配置MySQL实现 │ └── SequenceNum.Mysql/ # 序列号生成器MySQL实现 ├── Tools/ # 工具类库 └── Tests/ # 测试项目 ``` ## 核心模块说明 ### 1. 上下文管理 (Context) - **OSS.Core.Context**: 提供系统上下文管理,包括应用上下文、用户上下文和租户上下文。 - 主要功能: - 应用身份认证管理 - 用户和租户信息管理 - 请求上下文初始化 ### 2. 领域模型 (Core/Domain) - **OSS.Core.Domain**: 定义核心领域模型和接口。 - 主要功能: - 基础实体模型定义 - 仓储接口定义 (IRepository) - 通用状态和异常定义 ### 3. 开放领域 (Core/Opened) - **OSS.Core.Domain.Opened**: 开放领域模型,供外部组件使用。 - **OSS.Core.Client.Http**: HTTP客户端组件,用于外部服务调用。 ### 4. 数据访问层 (Core/Repository) - **OSS.Core.Rep.Dapper**: 基于Dapper的仓储实现基础类库。 - **OSS.Core.Rep.Dapper.Mysql**: MySQL数据库仓储实现。 - **OSS.Core.Rep.Dapper.SqlServer**: SQL Server数据库仓储实现。 ## 扩展组件说明 ### 1. 缓存扩展 (Extension/Cache) - **OSS.Core.Extension.Cache**: 提供缓存相关的扩展方法。 - 主要功能: - 响应结果缓存 (WithRespCacheAsync) - 缓存清理 (WithRespCacheClearAsync) - 缓存击穿保护 ### 2. 验证码扩展 (Extension/Mvc.Captcha) - **OSS.Core.Extension.Mvc.Captcha**: 验证码验证扩展。 - **OSS.Core.Extension.Mvc.Captcha.Ali**: 阿里云验证码验证实现。 - 主要功能: - 验证码验证器接口定义 - MVC过滤器集成 - 阿里云验证码服务集成 ### 3. PassToken扩展 (Extension/PassToken) - **OSS.Core.Extension.PassToken**: 通行令牌生成和验证。 - 主要功能: - PassToken生成 (GenerateToken) - PassToken数据解析 (GetData) - 列表数据PassToken处理扩展 ## 业务组件说明 ### 1. 目录配置组件 (Component/DirConfig.Mysql) - **OSS.Core.Comp.DirConfig.Mysql**: 基于MySQL的目录配置管理。 - 主要功能: - 字典配置管理 - 列表配置项管理 - 数据库连接配置 ### 2. 序列号生成器组件 (Component/SequenceNum.Mysql) - **OSS.Core.Comp.SequenceNum.Mysql**: 基于MySQL的序列号生成器。 - 主要功能: - 分布式序列号生成 - 数据库实现支持 ## 依赖关系图 ```mermaid graph TD A[OSS.Core.Context] --> B[OSS.Core.Domain] C[OSS.Core.Rep.Dapper] --> B D[OSS.Core.Rep.Dapper.Mysql] --> C E[OSS.Core.Rep.Dapper.SqlServer] --> C F[OSS.Core.Domain.Opened] --> B G[OSS.Core.Client.Http] --> F H[OSS.Core.Extension.Cache] --> B I[OSS.Core.Extension.Mvc.Captcha] --> A J[OSS.Core.Extension.Mvc.Captcha.Ali] --> I K[OSS.Core.Extension.PassToken] --> A L[OSS.Core.Comp.DirConfig.Mysql] --> C M[OSS.Core.Comp.SequenceNum.Mysql] --> B ``` ## 框架创建工具 为了减少创建新项目的复杂度,同步提供了 dotnet tool 本地工具(osscore),一键创建项目并建立相关引用 工具安装命令: dotnet tool install -g OSSCore 完成本地工具安装之后,可在项目所在文件夹执行以下命令: osscore new moduleA (创建名称为 moduleA 的模块解决方案) 可选参数提示: --pre=xxx, 指定解决方案前缀 --display=xxx, 指定模块名称 --dbtype=SqlServer|MySql, 指定数据库类型,默认MySql --mode=normal|simple|full, 指定解决方案结构模型 full: 接口层 服务层 领域层 仓储层 完全独立 normal: 接口层 服务层 领域层(包含 仓储、领域) simple: 接口层 领域层 (包含 仓储、服务、领域) osscore add entityName (创建领域对象名为entityName的各模块文件) 可选参数: --display=xxx, 指定领域对象名称 ## 使用说明 1. 根据业务需求选择相应的组件引用 2. 配置相应的数据库连接和访问密钥 3. 通过依赖注入使用各组件功能 4. 参考测试项目中的示例代码进行集成