{"adoption": {"forks": 763, "observed_at": "2026-08-28T04:07:25.504355+00:00", "stars": 2847}, "canonical_url": "https://ross.abutalabs.com/products/osharp", "card": {"archived": false, "artifact_type": "framework", "description": "OSharp是一个基于.Net6.0的快速开发框架，框架对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebApi)、身份认证、功能权限、数据权限等模块进行更高一级的自动化封装，并规范了一套业务实现的代码结构与操作流程，使 .Net  框架更易于应用到实际项目开发中。", "domain": ["web-development", "backend", "developer-tools", "apis"], "enriched": true, "function": ["web-framework", "api-framework", "auth", "authorization", "orm", "caching", "logging", "middleware", "dependency-audit"], "health_score": 76, "homepage": "https://demo.osharp.top/", "language": "C#", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["dotnetcore/osharp"], "name": "dotnetcore/osharp", "platform": ["dotnet", "cross-platform"], "pushed_at": "2026-06-16T15:01:26+00:00", "repo": "dotnetcore/osharp", "stars": 2847, "tags": ["aspnetcore", "rapid-development", "efcore", "code-structure", "nuget", "csharp", "full-stack-framework", "data-permissions", "web-server"], "topics": ["osharp", "netstandard", "aspnetcore", "osharpns"], "urls": [], "use_cases": ["build a webapi backend with aspnetcore quickly", "add role-based and data-level permissions to a .net app", "scaffold a layered business architecture with efcore", "standardize dependency injection and logging setup across services", "rapidly prototype an admin system with vue or angular frontend", "swap between sqlserver, mysql, sqlite, postgresql, or oracle backends"], "what_it_is": "OSharp is a rapid development framework for .NET 6.0+ that wraps AspNetCore modules such as configuration, dependency injection, logging, caching, Entity Framework Core, MVC/WebApi, authentication, and function/data permissions with higher-level automation. It also standardizes a business code structure and workflow to make .NET easier to apply in real-world projects.", "when_to_avoid": ["you prefer minimal, micro-framework approaches where you assemble each component yourself", "your project is not on the .NET/AspNetCore stack", "you need a framework with a very large international community and ecosystem", "you require non-relational databases as the primary data store"], "when_to_choose": ["you are starting a new .NET 6+ web application and want batteries-included conventions", "you need integrated authentication plus function-level and data-level authorization out of the box", "you want a standardized project structure and workflow for team development", "you need multi-database support via Entity Framework Core with minimal setup"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/osharp", "repo": "dotnetcore/osharp", "role": "main", "score": 62}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.504355+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:37:01.159328+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6ba97cf4c1185e14487af1569b979346e288844de22a8451d3f0610a6d3179d6", "fetched_at": "2026-08-28T04:07:25.504355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/osharp"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.504355+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:37:01.159328+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6ba97cf4c1185e14487af1569b979346e288844de22a8451d3f0610a6d3179d6", "fetched_at": "2026-08-28T04:07:25.504355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/osharp"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:37:01.159328+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6ba97cf4c1185e14487af1569b979346e288844de22a8451d3f0610a6d3179d6", "fetched_at": "2026-08-28T04:07:25.504355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/osharp"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.504355+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.504355+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.504355+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:37:01.159328+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6ba97cf4c1185e14487af1569b979346e288844de22a8451d3f0610a6d3179d6", "fetched_at": "2026-08-28T04:07:25.504355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/osharp"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.504355+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.504355+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:37:01.159328+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6ba97cf4c1185e14487af1569b979346e288844de22a8451d3f0610a6d3179d6", "fetched_at": "2026-08-28T04:07:25.504355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/osharp"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.504355+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.504355+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.504355+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:37:01.159328+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6ba97cf4c1185e14487af1569b979346e288844de22a8451d3f0610a6d3179d6", "fetched_at": "2026-08-28T04:07:25.504355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/osharp"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.504355+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:25.504355+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:37:01.159328+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6ba97cf4c1185e14487af1569b979346e288844de22a8451d3f0610a6d3179d6", "fetched_at": "2026-08-28T04:07:25.504355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/osharp"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:37:01.159328+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6ba97cf4c1185e14487af1569b979346e288844de22a8451d3f0610a6d3179d6", "fetched_at": "2026-08-28T04:07:25.504355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/osharp"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:37:01.159328+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6ba97cf4c1185e14487af1569b979346e288844de22a8451d3f0610a6d3179d6", "fetched_at": "2026-08-28T04:07:25.504355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/osharp"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:37:01.159328+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6ba97cf4c1185e14487af1569b979346e288844de22a8451d3f0610a6d3179d6", "fetched_at": "2026-08-28T04:07:25.504355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/osharp"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 87, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3306, "days_push": 78, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 62, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}