Admin.Core for .NET 10 admin system development
中台Admin 基于 .NET10 、Vue3、uniapp、element-plus开发的前后端分离的权限管理系统。通过项目模板快速搭建项目框架、网关、接口、im即时通讯服务端等项目。支持代码生成器、多租户、数据权限、动态Api、任务调度、打印设计、OSS文件上传、滑块拼图验证、动态高级查询。集成认证授权、事件总线、国际化、数据验证、分布式Id、分布式缓存、分布式事务、全Api鉴权、接口文档等。
At a glance
- What is it?
- Admin.Core is a full-stack permission-management foundation built with .NET 10, FreeSql, Vue 3, uniapp, and Element Plus. It fits teams that need a generated backend framework plus common administration features, but adopting it means accepting a broad platform and resolving some unclear setup instructions.
- Who is it for?
- Teams building a conventional .NET 10 administration system with RBAC, tenant administration, generated API surfaces, and a Vue 3 interface should examine Admin.Core closely. Smaller projects, teams wanting a minimal authorization library, or organizations unable to support a broad framework should look elsewhere.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 8 days ago.
- What is it written in?
- Mainly Vue, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Why Admin.Core covers more than login permissions
Admin.Core targets developers who need to start an enterprise-style administration application rather than assemble authentication, menus, roles, departments, audit logs, and tenant setup separately. Its stated audience is broad. A backend team can use the source solution or generate a new project from `ZhonTai.Template.App`; the repository also contains a Vue 3 frontend and an `uniapp` component, according to the project description. The central problem is application scaffolding. The README says the project can help create an application framework, gateway, APIs, and an instant-messaging server through templates.
Permission management is one part of a much larger administration surface. The documented functions cover users, roles, departments, permission groups, menus, permission points, API associations, tenant packages, and tenants. Operational modules include task scheduling, cache-key deletion, file uploads to OSS or local storage, login and operation logs, dictionaries, messages, regional data, and printable templates. This scope makes Admin.Core closer to a project foundation than a reusable RBAC package.
That breadth has a direct adoption cost. Teams can start with recognizable administrative concepts instead of designing every screen and data relationship, but they also inherit a larger application architecture with framework-specific conventions. The documentation does not explain which modules can be removed safely, how much customization is required for a nonstandard domain, or whether the gateway, messaging server, print designer, and generated interfaces are optional. The feature list demonstrates coverage, not that every organization needs or should deploy all of it.
FreeSql, CodeFirst, and the Admin.Core request path
The backend is based on .NET 10.0, FreeSql, Autofac, Mapster, and CAP. The README states that FreeSql supports mainstream domestic and international databases, read-write separation, table and database partitioning, and distributed transaction patterns including TCC and SAGA. These are documented capabilities of the selected stack, but the README does not provide configuration examples for each database or transaction mode. An adopter must therefore treat them as topics to verify rather than assume they work identically for a particular deployment.
The most concrete startup mechanism is CodeFirst database generation. According to the README, starting the application automatically generates the database and synchronizes table structures and permission data from entity configuration. This can shorten the path from a configured domain model to an operable backend. It also means startup has schema-level responsibilities. A production operator should determine whether automatic synchronization is intended for initial provisioning, routine startup, or both. The documentation excerpt does not describe migration history, rollback, or a controlled process for destructive schema changes.
Requests pass through a backend assembled around authentication and authorization, API documentation, validation, caching, events, and dependency injection. Autofac handles the container role, Mapster handles mapping, and CAP appears as the event and distributed transaction component. The repository topics also identify FreeSql, CSRedis, FluentValidation, NLog, and Swagger. This is a layered application design rather than a single authorization endpoint. Its practical value is code organization across common infrastructure concerns; its trade-off is that developers must understand how these components are wired inside `ZhonTai.Admin.Core`, which the README does not diagram.
Template-based installation for the first host
The source-project path requires the latest supported .NET line, with the README specifying .NET 10.0 or later. Clone the repository, open `ZhonTai.sln`, set `ZhonTai.Admin.Host` as the startup project, and run it from that host directory. CodeFirst is expected to generate the database when the project starts, and Swagger is expected to expose API request parameters and response data.
The following are the repository's source checkout and first-run commands. After `dotnet run`, the README expects startup work to include database generation; it does not identify the exact console sequence or a readiness message to wait for.
git clone https://github.com/zhontai/Admin.Core.git
cd Admin.Core
dotnet runThe `dotnet run` command above should be executed from `ZhonTai.Admin.Host`, according to the README. The separate `ui\zhontai.ui.admin.vue3` directory contains the Vue 3 frontend, so opening only `ZhonTai.sln` may not provide a running browser interface.
For a generated project, first install the template package and inspect the options exposed by the template. The commands and option names below are copied from the README, including the configured ports `16010` and `16011` and the `MySql` template argument.
dotnet new install ZhonTai.Template.App
dotnet new MyApp -h
dotnet new MyApp -n MyCompanyName.MySys -at sys -ac sys -p 16010 -gp 16011 -db MySqlAfter generation, set `MyCompanyName.MySys.Host` as the startup project or enter its directory and run:
dotnet runThe README does not document the generated database credentials, migrations for later releases, or the environment variables needed for production. Those are adoption blockers to resolve from the development documentation at `https://www.zhontai.net` and the generated solution.
Vue 3 startup and an unresolved pnpm instruction
The frontend lives at `ui\zhontai.ui.admin.vue3`. The README says to install `nrm`, inspect registry sources with `nrm ls`, select the Taobao registry with `nrm use taobao`, install frontend packages with `pnpm run install:pkg`, and start the development server with `pnpm run dev`. Its documented registry setup commands are:
npm install -g nrm --registry https://registry.npmmirror.com
nrm ls
nrm use taobaoThe supplied instructions contain a material ambiguity. Under the heading for installing pnpm, the README repeats the command for installing `nrm`:
npm install -g nrm --registry https://registry.npmmirror.comIt does not show a command that actually installs pnpm. A reader therefore cannot determine from this instruction whether pnpm is assumed to be installed already, whether that repeated command is a documentation error, or whether pnpm must be obtained through another package manager. This matters because the next two commands invoke `pnpm`. The package installation and development commands are otherwise documented as follows:
pnpm run install:pkg
pnpm run devThe README does not state which port the Vue development server uses or how it receives the backend host address. It also does not document production frontend builds. The backend template arguments include a gateway port, but that is not evidence that the Vite development server uses the same port. Resolve the frontend package-manager step and inspect the generated frontend configuration before treating the browser setup as complete.
Tenancy, permission boundaries, and operational caveats
Admin.Core models access through users, roles, departments, menus, permission points, API addresses, and data permissions. Roles can be linked to users and assigned menu and data permissions. Permission points can contain multiple interface addresses. Tenant packages control menu access, while tenant creation initializes a department, default role, and administrator. These are concrete administrative mechanisms rather than a generic claim of role-based access control.
The operational trade-off is that an administration system stores authorization policy as application data. A mistake in tenant initialization, role assignment, menu mapping, API synchronization, or data-scope configuration can affect what users can see and invoke. The README lists features such as interface synchronization and operation logging, but it does not explain conflict resolution when several roles grant different permissions. It also does not define whether permission changes take effect immediately, require token refresh, or depend on cache invalidation.
CodeFirst startup adds another boundary. Entity-driven synchronization can accelerate provisioning, but production schema governance requires more control than an automatic startup routine normally provides. The README does not document rollback, migration approval, backup coupling, or behavior when entity changes conflict with an existing table. Teams should inspect the initialization code before running it against a database that already contains data.
Several other features require infrastructure that is not described in enough detail to evaluate immediately. Distributed cache requires a cache service configuration, CAP requires its relevant storage and transport setup, OSS upload requires provider credentials, alert email requires SMTP settings, and printable templates involve frontend JSON configuration. The repository is not an all-in-one deployment just because these capabilities appear in its feature list.
Maintenance, releases, and the MIT licence
The repository is not archived, and the last push was on 2026-10-15. That is recent activity based on the repository metadata, but the amount of work required for an upgrade still depends on the generated application, database schema, frontend package set, and external services. Recent releases include `v10.1.0` on 2026-08-20, `v10.0.5` on 2026-06-22, and `v10.0.3` on 2026-04-15. The version line aligns with the documented move to.NET 10, so adopting only the newest major platform is a less complicated starting point than carrying an older generated project forward without a stated migration path.
The MIT licence permits use, modification, distribution, and sublicensing under its conditions, including preservation of the copyright and licence notice. That is a licence fact, not advice about how a particular organization should comply. Organizations still need to account for separately distributed dependencies and services, such as databases, cache servers, storage providers, and frontend packages, under their own licences.
Upgrade cost is not reduced merely by the recent push. Admin.Core combines generated code, CodeFirst database changes, API permissions, frontend components, and infrastructure integrations. The README does not publish an upgrade guide, compatibility matrix, breaking-change policy, or release notes. It links general development documentation, but no specific migration procedure appears in the README. The first verification should therefore be a controlled upgrade of a generated sample with an existing schema and representative configuration, not a direct replacement of a production host.
Admin.Core versus a focused authorization library
The clearest alternative is a focused authorization library used inside a separately designed administration application. That approach starts with authentication, role or policy definitions, and the product's own domain model. It avoids accepting a full Vue 3 admin interface, CodeFirst startup behavior, task scheduling, printing, messaging, and tenant packaging when those concerns are not part of the product.
Admin.Core takes the opposite approach. It supplies a broad application shell, generated project templates, standard management screens, entity configuration, API registration, permission synchronization, and infrastructure integrations. This is useful when a delivery team values a recognizable backend office system more than minimal dependency surface area. It is a poor fit when the team has already standardized on a different ORM, frontend framework, authorization model, or migration policy, because adapting the generated system may cost more than building only the required management modules.
The choice is therefore not simply "full framework versus library." It is between owning a conventional application foundation and owning a generated framework with its conventions. Before selecting Admin.Core, inspect the template-generated solution, entity initialization path, permission synchronization, and Vue configuration. Those files determine what the project will require after adoption more clearly than the feature inventory does.
Editorial conclusion
Teams building a conventional .NET 10 administration system with RBAC, tenant administration, generated API surfaces, and a Vue 3 interface should examine Admin.Core closely. Smaller projects, teams wanting a minimal authorization library, or organizations unable to support a broad framework should look elsewhere. Before adoption, verify database initialization, tenant and data-permission behavior, deployment requirements, and the backend and frontend startup sequence, especially the README's ambiguous pnpm installation step.
Frequently asked questions
How do I create a new Admin.Core project?
Install `ZhonTai.Template.App` with `dotnet new install ZhonTai.Template.App`, then use the `dotnet new MyApp` command shown in the README. The documented example selects the `sys` application type and controller, assigns ports `16010` and `16011`, and uses `MySql`.
How do I run the Admin.Core Vue 3 frontend?
The frontend is under `ui\zhontai.ui.admin.vue3`. The README instructs users to run `pnpm run install:pkg` and then `pnpm run dev`, but its pnpm installation section repeats the `nrm` installation command instead of showing how pnpm is installed.
Does Admin.Core create its database automatically?
According to the README, starting the project generates the database and uses CodeFirst synchronization to create or update table structures and permission data from entity configuration. The documentation excerpt does not provide a rollback or controlled production migration procedure.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/zhontai-admin-core)Was this useful?