// the find
dotnetcore/osharp
OSharp是一个基于.Net6.0的快速开发框架,框架对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebApi)、身份认证、功能权限、数据权限等模块进行更高一级的自动化封装,并规范了一套业务实现的代码结构与操作流程,使 .Net 框架更易于应用到实际项目开发中。
OSharp is a Chinese-origin ASP.NET Core application framework that automates DI registration, EF Core context setup, and builds a full function/data permission system on top of ASP.NET Identity. It targets teams building internal line-of-business apps who want a structured starting point with auth, auditing, and CRUD scaffolded out. Primarily used in Chinese enterprise contexts — documentation, issue tracker, and commit history are almost entirely in Chinese.
The function permission model is genuinely well-designed: it auto-scans controller actions at startup, stores them as `Function` records, maps them to `Module` nodes, and caches role-function associations in memory — so API-level RBAC works without decorating every action manually. The UnitOfWork implementation sharing a single `DbConnection` across multiple DbContext instances is a real solution to a real EF Core pain point, not just a thin wrapper. The `Pack` module system gives a clean extension point for adding features without touching `Program.cs` plumbing. The dotnet CLI project template with a bat script that scaffolds a named solution is a nice DX touch for getting a new project to compile-and-run in minutes.
The framework is pinned to .NET 6 and shows no sign of moving — the README explicitly mentions 6.0 throughout and the NuGet packages haven't tracked the annual .NET release cadence, which means you're adopting something that will be out of support and diverging from platform idioms. The data permissions system is marked '[部分实现]' (partially implemented) in multiple places throughout the README — the filtering expression builder exists but the end-to-end enforcement is incomplete, which is a significant gap if that's a reason you're adopting it. There is essentially no English documentation or community outside of China, so debugging anything beyond the happy path means reading Chinese GitHub issues or the Chinese docs site. The Angular/ng-alain frontend sample references Angular 7 and npm registry mirrors pointing at Taobao, both signs the frontend story hasn't been maintained alongside the backend.