Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
O

osharp

> 编程语言
Open source

OSharp是一个基于.Net6.0的快速开发框架,框架对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebApi)、身份认证、功能权限、数据权限等模块进行更高一级的自动化封装,并规范了一套业务实现的代码结构与操作流程,使 .Net 框架更易于应用到实际项目开发中。

2.8K stars0 likes0 views
WebsiteGitHub

About

OSharp是一个基于.Net6.0的快速开发框架,框架对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebApi)、身份认证、功能权限、数据权限等模块进行更高一级的自动化封装,并规范了一套业务实现的代码结构与操作流程,使 .Net 框架更易于应用到实际项目开发中。

OSharp Framework


  • OSharp 简介
  • OSharp 特性
  • 快速开始
  • 项目进度
  • 更新记录
  • 代码生成器 VSIX 插件
  • OSharp 文档中心

OSharp 简介

OSharp是一个基于.Net6.0+开发的一个.Net快速开发框架。这个框架使用最新稳定版的.Net SDK(当前是.NET 6.0),对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebApi)、身份认证、权限授权等模块进行更高一级的自动化封装,并规范了一套业务实现的代码结构与操作流程,使 .Net Core 框架更易于应用到实际项目开发中。

项目地址

  • Github: https://github.com/dotnetcore/osharp
  • Gitee(镜像): https://gitee.com/i66soft/osharp

相关示例项目:

  • Vue 版本(vben):
    • https://github.com/zionLZH/osharp-vben-admin
    • https://github.com/gmf520/osharp-vben-template
  • Mvc 版本(layui): https://github.com/gmf520/osharp-layui
  • Angular 版本(ng-alain): https://github.com/dotnetcore/osharp/tree/releases/net6/samples/web/ui-clients/ng-alain8

框架组件组织

  • OSharp【框架核心组件】:框架的核心组件,包含一系列快速开发中经常用到的 Utility 辅助工具功能,框架各个组件的核心接口定义,部分核心功能的实现
  • OSharp.AspNetCore【AspNetCore 组件】:AspNetCore 组件,提供 AspNetCore 的服务端功能的封装
  • OSharp.Authorization.Datas 【OSharp 数据权限组件】:OSharp 数据权限组件,对应用中数据权限进行授权的设计实现
  • OSharp.Authorization.Functions【OSharp 功能权限组件】:OSharp 功能权限组件,API 功能权限授权的设计实现
  • OSharp.AutoMapper【对象映射组件】:AutoMapper 对象映射组件,封装基于 AutoMapper 的对象映射实现
  • OSharp.EntityFrameworkCore【EFCore 数据组件】:EFCore 数据访问组件,封装 EntityFrameworkCore 数据访问功能的实现
  • OSharp.EntityFrameworkCore.MySql【EFCore MySql 数据组件】:EFCore MySql 数据访问组件,封装 MySql 的 EntityFrameworkCore 数据访问功能的实现
  • OSharp.EntityFrameworkCore.SqlServer【EFCore SqlServer 数据组件】:EFCore SqlServer 数据访问组件,封装 SqlServer 的 EntityFrameworkCore 数据访问功能的实现
  • OSharp.EntityFrameworkCore.Sqlite【EFCore Sqlite 数据组件】:EFCore Sqlite 数据访问组件,封装 Sqlite 的 EntityFrameworkCore 数据访问功能的实现
  • OSharp.EntityFrameworkCore.PostgreSql【EFCore PostgreSql 数据组件】:EFCore PostgreSql 数据访问组件,封装 PostgreSql 的 EntityFrameworkCore 数据访问功能的实现
  • OSharp.EntityFrameworkCore.Oracle【EFCore PostgreSql 数据组件】:EFCore Oracle 数据访问组件,封装 Oracle 的 EntityFrameworkCore 数据访问功能的实现
  • OSharp.Hangfire【后台任务组件】:封装基于 Hangfire 后台任务的服务端实现
  • OSharp.Identity【身份认证组件】:使用 AspNetCore 的 Identity 为基础实现身份认证的封装
  • OSharp.IdentityServer【OSharp IdentityServer 组件】:OSharp IdentityServer 组件,基于 IdentityServer4 提供身份认证与客户端授权的实现
  • OSharp.IdentityServer.EntityConfiguration【OSharp IdentityServer EFCore 存储配置组件】:OSharp IdentityServer EFCore 存储配置组件,对 IdentityServer4 的存储进行 EFCore 映射配置
  • OSharp.Log4Net【日志组件】:基于 Log4Net 的日志记录组件
  • OSharp.MiniProfiler【MiniProfiler 组件】:基于 MiniProfiler 实现的性能监测组件
  • OSharp.NLog【OSharp NLog 组件】:OSharp NLog 组件,封装使用 nlog 组件来实现框架的日志输出功能
  • OSharp.Redis【缓存组件】:基于 Redis 的分布式缓存客户端组件
  • OSharp.Swagger【SwaggerAPI 组件】:基于 Swagger 生成 MVC 的 Action 的 API 测试接口信息
  • OSharp.Wpf【OSharp Wpf 客户端组件】:OSharp Wpf 客户端组件,封装 Wpf 客户端的辅助操作
  • OSharp.Hosting.Core【OSharp 框架非业务核心】:OSharp 框架业务核心,封装框架非业务如认证,权限,系统,消息等模块的接口与业务实现
  • OSharp.Hosting.EntityConfiguration【OSharp 框架非业务实体映射】:OSharp 框架非业务实体映射,封装框架非业务如认证,权限,系统,消息等模块的 EFCore 实体映射
  • OSharp.Hosting.Apis【OSharp 框架非业务 WebAPI 实现】:OSharp 框架非业务 WebAPI 实现,封装框架非业务如认证,权限,系统,消息等模块的 WebApi 实现

Nuget Packages

包名称 稳定版本 预览版本 下载数
OSharp.Utils
OSharp.Core
OSharp.AspNetCore
OSharp.Authorization.Datas
OSharp.Authorization.Functions
OSharp.AutoMapper
OSharp.EntityFrameworkCore
OSharp.EntityFrameworkCore.SqlServer
OSharp.EntityFrameworkCore.MySql
OSharp.EntityFrameworkCore.Sqlite
OSharp.EntityFrameworkCore.PostgreSql
OSharp.Hangfire
OSharp.Identity
OSharp.Log4Net
OSharp.MiniProfiler
OSharp.Redis
OSharp.Exceptionless
OSharp.Swagger
OSharp.Wpf
OSharp.Hosting.Core
OSharp.Hosting.EntityConfiguration
OSharp.Hosting.Apis
OSharpNS
OSharp.Template.WebApi

OSharp 特性

1. 模块化的组件设计

框架设计了一个模块(Pack)的系统,所有实现了模块基类(OsharpPack)的类都视为一个独立的模块,一个模块可以独立添加服务(AddServices),并可在初始化时应用服务(UsePack)进行模块初始化。

2. 自动化的依赖注入机制

框架定义了ISingletonDependency,IScopeDependency,ITransientDependency三个空接口对应 DependencyInjection 中的三种服务生命周期,系统初始化时,通过反射检索程序集的方式,检索出所有服务类型(ServiceType)与服务实现(ImplementationType)及生命周期类型(ServiceLifetime)的相关数据,对依赖注入的 ServiceCollection 进行全自动初始化。

3. UnitOfWork-Repository 模式,EFCore 上下文动态构建

  • 数据模块使用了UnitOfWork-Repository的模式来设计,设计了一个泛型的实体仓储接口IRepository<TEntity,TKey>,避免每个实体都需实现一个仓储的繁琐操作。设计了IUnitOfWork接口来管理事务,通过 UnitOfWork 模式管理 DbContext 的创建,使同上下文类型同数据库连接字符串的上下文使用相同 DbConnection对象来创建,达到多上下文的事务同步能力。

  • 基于 MVC 的ActionFilter的UnitOfWorkAttribute AOP 事务自动提交,业务中不再需要关心事务的生命周期。

  • 系统初始化时,通过反射检索程序集的方式,检索出各个实体与上下文的映射关系,向上下文中动态添加实体类来构建上下文类型,以达到上下文类型与业务实体解耦的目的。通过统一基类EntityTypeConfigurationBase<TEntity, TKey>的 FluentAPI 实体映射,自由配置每个实体与数据库映射的每一个细节。

4. 基于 AspNetCore 的 Identity 的身份认证设计系统

  • 使用 AspNetCore 原生的用户身份认证框架,身份认证相关操作统一使用UserManager<TUser>,RoleManager<TRole>两个入口,保持了原生 Identity 的体系强大性与功能完整性。

  • 重新设计了用户存储UserStore和角色存储RoleStore,使用框架内设计的IRepository<TEntity,TKey>数据仓储接口来实现对数据的仓储操作,使 Identity身份认证系统与框架完美结合,避免了使用官方的Microsoft.AspNetCore.Identity.EntityFrameworkCore造成多个上下文或者被强制使用 Identity 上下文作为系统数据上下文来实现业务造成的尴尬。

5. 设计了一个强大的功能权限与数据权限的授权体系

  • 从底层开始,自动收集了系统的所有业务点(IFunction)和数据实体(IEntityInfo),用于对系统的功能权限、数据权限、数据缓存、操作审计 等实用功能提供数据支持。

  • 功能点Function与 MVC 的Area/Controller/Action一一对应,是功能权限的最小验证单位,基于功能点,可以配置:

    • 功能访问类型(匿名访问、登录访问、限定角色访问)
    • 功能的数据缓存时间及缓存过期方式(绝对过期、相对过期)
    • 是否开启操作审计(XXX 人员 XXX 时间做了 XXX 操作)
    • 是否开启数据审计(操作引起的数据变化详情(新增、更新、删除))
  • 数据实体EntityInfo与数据库中的各个数据实体一一对应,基于数据实体,可以配置:

    • 是否开启数据审计,与Function上的同配置级别不同,如果指定实体未开放审计,则不审计当前实体。
    • [部分实现] 数据权限,基于角色 - 实体的数据权限设计,通过配置实现 XXX 角色是否有权访问 XXX 实体数据(的 XX 属性)
  • 设计了一个树形结构的业务模块体系(Module),对应着后端向前端开放的操作点(菜单/按钮),一个模块可由一个或多个功能点构成,模块是对外开放的特殊功能点,是进行角色/用户功能授权的单位。把一个模块授

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C#aspnetcorenetstandardosharposharpns

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言