NewLife.Cube.Swagger 6.16.2026.1030

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package NewLife.Cube.Swagger --version 6.16.2026.1030
                    
NuGet\Install-Package NewLife.Cube.Swagger -Version 6.16.2026.1030
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NewLife.Cube.Swagger" Version="6.16.2026.1030" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NewLife.Cube.Swagger" Version="6.16.2026.1030" />
                    
Directory.Packages.props
<PackageReference Include="NewLife.Cube.Swagger" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NewLife.Cube.Swagger --version 6.16.2026.1030
                    
#r "nuget: NewLife.Cube.Swagger, 6.16.2026.1030"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package NewLife.Cube.Swagger@6.16.2026.1030
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NewLife.Cube.Swagger&version=6.16.2026.1030
                    
Install as a Cake Addin
#tool nuget:?package=NewLife.Cube.Swagger&version=6.16.2026.1030
                    
Install as a Cake Tool

NewLife.Cube - Web rapid development and admin framework

GitHub top language GitHub License NuGet Downloads NuGet NuGet prerelease NuGet Downloads (Cube.Core) NuGet (Cube.Core) test AOT

AOT smoke TFM locales

platform arch contributors

🌐 简体中文 | 繁體中文 | Español | Deutsch | 日本語 | Français | Português | Русский | 한국어 | العربية

NewLife.Cube is a rapid web development platform for "data-driven + fast iteration + deep customization" scenarios. In minutes, an entity class or database table becomes a complete admin UI with permissions, lists, details, CRUD, export and statistics, while standard APIs are exposed for Vue (official front-end) / React / Antd / mobile or third-party systems. The default template has been proven in real projects with a single table of 10 billion rows.

Demo: https://cube.newlifex.com CentOS7 + CDN · SSO center: https://sso.newlifex.com OAuth server · Swagger: https://cube3.newlifex.com

Cube tutorial: https://newlifex.com/cube · XCode tutorial: https://newlifex.com/xcode · Core library tutorial: https://newlifex.com/core

Contents: Quick Start · Main Features · Ecosystem Map · Documentation · Contributing · Team · License

Quick Start

Install

Install NewLife.Cube.Core from NuGet. MIT licensed; you may replace the "NewLife" string for private builds. Works with Visual Studio and the CLI. newlife.snk is public for strong-name consistency.

dotnet add package NewLife.Cube

Template scaffolding

dotnet new install NewLife.Templates
dotnet new cube --name CubeWeb
dotnet new xcode --name Zero.Data
cd CubeWeb
dotnet build
start http://localhost:6080
dotnet run

Minimal example (.NET 8/9 Minimal Hosting)

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddCube(); // registers permissions, menus, entity controller scanning
var app = builder.Build();
app.UseMetronic(app.Environment); // or UseAdminLTE / UseTabler ...
app.UseCube(app.Environment);      // routing, static assets and middleware
app.Run();

Open / to sign in, use Swagger for APIs, and call the standard CRUD APIs from any front-end.

Platform support

Item Coverage
Target frameworks 5 in one package: net6.0, net7.0, net8.0, net9.0, net10.0
OS and architecture Windows, Linux, macOS; x64, x86, arm64, arm, loongarch64, riscv64, s390x
Databases MySql / SQLite / SqlServer / Oracle / PostgreSql / SqlCe / Access / DM
NativeAOT 18 smoke scenarios for the non-MVC foundation (JIT/AOT); see the badge above for the current count

ASP.NET Core installation

  • Create an ASP.NET Core Web project in Visual Studio.
  • Reference NewLife.Cube.Core from NuGet, or build the latest Cube NewLife.CubeNC source.
  • Set a connection string named Membership in appsettings.json; users, roles, permissions and menus are stored there.
  • The database type is detected automatically; the default is Data Source=../Data/Membership.db.
  • Build the project, right-click → View → View in Browser to run Cube.
  • MySQL/SQLite/Oracle/SqlCe drivers are downloaded automatically (x86/x64); change PluginServer in Config/Core.config if needed.
  • Scripts and styles are downloaded automatically; change PluginServer in Config/Cube.config if needed.
  • The default login is admin/admin; third-party OAuth such as NewLife also works. The first user becomes administrator and admin is disabled.
  • When publishing, copy *.dll, appsettings.json, *.deps.json, *.runtimeconfig.json and your own assets.

ASP.NET MVC installation

  • Create an ASP.NET MVC project in Visual Studio.
  • Reference NewLife.Cube from NuGet, or build the latest Cube NewLife.Cube source.
  • Set a connection string named Membership in the <connectionStrings> section of Web.config.
  • The database type is detected automatically; the default is <add name="Membership" connectionString="Data Source=../Data/Membership.db" providerName="Sqlite"/>.
  • Build the project, right-click → View → View in Browser to run Cube.
  • MySQL/SQLite/Oracle/SqlCe drivers are downloaded automatically (x86/x64); change PluginServer in Config/Core.config if needed.
  • Scripts and styles are downloaded automatically; change PluginServer in Config/Cube.config if needed.
  • The default login is admin/admin; third-party OAuth such as NewLife also works. The first user becomes administrator and admin is disabled.
  • Installing the Razor Generator Visual Studio extension and setting it as the custom tool for .cshtml files compiles views into the DLL.
  • Publish and copy the DLLs, configuration and assets.

Main Features

<details> <summary><b>Data-to-UI productivity</b> (9)</summary>

Feature Key Characteristics
EntityController scaffolding Entity class + controller gives CRUD, statistics, export and permissions immediately; ReadOnlyEntityController covers read-only lists.
Static-constructor configuration Configure fields, action buttons, related links, statistics and export in a controller static constructor.
Field metadata API meta (page settings + List / Detail / AddForm / EditForm / Search fields) drives dynamic front-end generation — no hard coding.
Menu tree /Cube/MenuTree builds multi-level menus from permissions; /Admin/Index/GetMenuTree serves the classic MVC UI.
Standard API response ApiResponse wraps code / data / page / stat for every endpoint.
Zero deployment Schema creation and seed data happen automatically on first run, with no manual intervention.
Powerful view engine A child project can override any parent view at the same path (.cshtml).
Built-in editors Rich text (Quill) and Markdown (EasyMDE) with image upload and security controls.
Scalar API docs Scalar UI grouped by area alongside Swagger, for easier online debugging.

</details>

<details> <summary><b>Field and UI customization</b> (3)</summary>

Feature Key Characteristics
Field set customization ListFields.RemoveField / AddListField adjust columns, links and targets per controller.
Change log LogOnChange = true writes an audit entry for every modification.
Dynamic front-end fields The front-end fetches /Cube/App/meta for page metadata and field definitions — no hard coding.
public class AppController : EntityController<App, AppModel>
{
    static AppController()
    {
        LogOnChange = true;                 // change log
        ListFields.RemoveField("Secret");   // hide a sensitive column
        var log = ListFields.AddListField("Log", "UpdateUserId");
        log.DisplayName = "Change log";
        log.Url = "/Admin/Log?category=App&linkId={ID}";
        log.Target = "_blank";
    }
}

</details>

<details> <summary><b>API and front-end separation</b> (6)</summary>

Endpoint Purpose
/Auth/Login Sign in and receive a JWT token (header / cookie / query).
/Cube/MenuTree Permission-aware menu tree.
/{Area}/{Controller}/meta Page metadata for list / detail / add form / edit form / search.
Main route + dynamic parameters Query with paging, sorting and condition composition.
GET {id} / POST / PUT {id} / DELETE {id} RESTful CRUD sub-resources; batch delete on the base path, plus charts / export / import / attachments.
stat / page Statistics row and paging information.

</details>

<details> <summary><b>Permissions and security</b> (7)</summary>

Feature Key Characteristics
Generic permission management Users, roles, menus and actions with controller-action granularity.
EntityAuthorize Login + role + menu action checks on every action.
First user becomes administrator The built-in admin account is disabled afterwards; admin/admin works for the first sign-in.
Unified identity External OAuth / SSO / JWT across desktops, web and mobile clients.
Security defense Built-in threat detection (scanners / injection / honeypots), persistent auto-ban with escalating durations and a security audit trail. Automatic mode bans repeated attackers, temporarily blocks broad attacks and recovers automatically; trusted proxies can be configured or learned to prevent spoofing; observation / blocking modes are switchable.
Production advice Disable unused third-party logins, enable HTTPS and enforce a strong password policy.
Multi-tenancy switch Enable or disable multi-tenancy with one switch; tenant menus and fields are hidden when off, and runtime tenant switching is supported.

</details>

<details> <summary><b>AI capabilities</b> (4)</summary>

Feature Key Characteristics
AI assistant A single chat panel in the lower-right corner with page / entity / query context. The global AiController.AiChat endpoint (/Ai/AiChat) plus NAI AiChatService orchestrate session history, the tool loop and SSE streaming events.
Extension point Entity controllers expose data queries, tool sets and prompt overrides through IEntityAiContext (SearchData / CreateCubeTools / BuildChatSystemPrompt). Tools include get_data_context, get_form_schema, fill_form, get_page_context, get_system_info and run_js.
AI insight Merged into the assistant; AiInsightHelper remains for data collection (14 sensitive-field blacklists). One-click analysis offers statistics, anomaly detection, trend prediction and actionable advice with deep reasoning, on both MVC and Vue.
Dashboard widgets Dashboards are composed of configurable widgets (KPI, charts, monitoring) with personalized layouts and /Cube/Widget management.

</details>

<details> <summary><b>Front-ends, themes and skins</b> (7)</summary>

Feature Key Characteristics
Multiple front-ends Vue (official), eight in-repo reference SPA skins and classic Razor coexist; React (Ant Design) is maintained in a separate CubeAntd repository; Blazor is a frozen MVC-theme experiment.
Embedded theme assets CubeEmbeddedFileProvider ships theme assets inside the package.
Theme registration Register skins via AddTheme/AddSkin and pick one in UseCube (app.UseMetronic(env) etc.).
Custom themes Implement IModule like MetronicModule and mount it in the use phase.
View overrides A .cshtml with the same path in a child project overrides the parent.
Localization 11 runtime languages for API messages, request-level culture detection and an 11-language Vue front-end.
New-generation skins pnpm workspace with the shared package @newlifex/cube (API / token / types, field metadata → controls). NewLife.Cube.Vue is the official skin and is published to NuGet with the compiled front-end embedded; React is published from the separate NewLife.Cube.React repository the same way. The other SPA skins live in this repo as reference implementations and are not published — build their web project with pnpm, then reference the .NET project.
Skin project Framework UI library Dev port
NewLife.Cube.NaiveUI Vue 3 Naive UI 5180
NewLife.Cube.MUI React 19 MUI 6 (Material) 5181
NewLife.Cube.Shadcn React 19 Radix UI + Tailwind CSS 4 5182
NewLife.Cube.ArcoVue Vue 3 Arco Design Vue 5183
NewLife.Cube.Angular Angular 19 NG-ZORRO 5184
NewLife.Cube.Vuetify Vue 3 Vuetify 3 5185
NewLife.Cube.Svelte SvelteKit 2 + Svelte 5 Tailwind CSS 4 5186
NewLife.Cube.TDesign Vue 3 TDesign 5187

The skins above are reference implementations kept in this repository and are not published to NuGet. NewLife.Cube.Vue (official, full unit and E2E coverage) and NewLife.Cube.React (separate repository) are published as NuGet packages with the front-end embedded; after AddCube + UseCube, Cube auto-detects every referenced skin package and you can switch the active skin via the SpaSkin setting without any extra call.

// Pick one
app.UseNaiveUI(app.Environment);
app.UseMUI(app.Environment);
app.UseShadcn(app.Environment);
app.UseArcoVue(app.Environment);
app.UseAngular(app.Environment);
app.UseVuetify(app.Environment);
app.UseSvelte(app.Environment);
app.UseTDesign(app.Environment);

Front-end workspace conventions:

  • Root pnpm build: builds only the shared modules under packages/; it no longer recurses into every skin.
  • Build one skin: pnpm build:vue, pnpm build:naive, pnpm build:mui, pnpm build:shadcn, pnpm build:arco, pnpm build:angular, pnpm build:vuetify, pnpm build:svelte, pnpm build:tdesign.
  • Develop one skin: the matching pnpm dev:xxx.
  • Build or start everything: pnpm build:all / pnpm dev:all.
  • Inside a skin's web/ directory, use its own pnpm build / pnpm dev.

</details>

<details> <summary><b>Data and big data</b> (5)</summary>

Feature Key Characteristics
XCode data layer Schema synchronization, field evolution, automatic sharding, read/write splitting and second-level cache.
Multiple databases MySql / SQLite / SqlServer / Oracle / PostgreSql / SqlCe / Access / DM.
Database separation Three-database example: Membership (permissions) / Cube (business) / Log (logs).
PluginServer Downloads database drivers and front-end assets automatically on first run; configurable.
Proven scale Real projects with a single table of 10 billion rows.

</details>

<details> <summary><b>Performance and NativeAOT</b> (4)</summary>

Feature Key Characteristics
Unified timing Filters record elapsed time uniformly and integrate with Stardust APM.
Cheap logging Log level checks avoid unnecessary string concatenation.
Modern frameworks Multiple TFMs allow Span / ValueTask optimizations on newer frameworks.
NativeAOT 18 smoke scenarios for the non-MVC foundation, run as JIT/AOT pairs in CI.

</details>

<details> <summary><b>Deployment and operations</b> (5)</summary>

Scenario How
Single machine dotnet publish, then copy the DLLs and configuration.
Service Use NewLife.Agent for Windows Service or systemd.
Cluster Publish, zip, start under the StarAgent daemon or deploy via Stardust.
Container A simple Dockerfile (copy the publish folder, set environment variables).
Scale-out Stateless instances sharing the database and cache.
Deploying the user center
  1. Clone the source, build CubeSSO, go to Bin/SSO, adjust appsettings.json, package the exe/dll/appsettings/runtimeconfig files and deploy.
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "Urls": "http://*:8080;https://*:8081",
  //"StarServer": "http://star.newlifex.com:6600",
  "ConnectionStrings": {
    "Membership": "Data Source=../Data/Membership.db;provider=sqlite",
    "Cube": "Data Source=../Data/Cube.db;provider=sqlite",
    "Log": "Data Source=../Data/Log.db;provider=sqlite"
  }
}
  1. Start and open the SSO site. The first login can use admin/admin or a third-party login; the first user becomes administrator and admin is disabled.
  2. For a production user center, disable third-party login: Cube settings → OAuth → disable all.
  3. Rename the system in Cube settings → System → Display name.

</details>

<details> <summary><b>Cube generation 3</b> (5)</summary>

Item Description
Focus Front-end/back-end separation + multi-front-end ecosystem + minimal intrusion.
Backend WebApi APIs live in master (NewLife.Cube); MVC stays in NewLife.CubeNC.
Front-ends Independent repositories (Vue / QuickVue / Antd / Blazor).
Blueprint Modern UI while keeping the override mechanism; multi-framework front-ends (Vue/React/Angular/Svelte + 8 ready-to-use skins); NuGet package brings the default skin; mobile, mini-programs and hybrid apps; enhanced data dashboards.
Tasks https://github.com/orgs/NewLifeX/projects/1

Front-end repositories:
https://github.com/NewLifeX/NewLife.CubeVue · https://github.com/NewLifeX/NewLife.QuickVue · https://github.com/NewLifeX/NewLife.CubeAntd · https://github.com/NewLifeX/NewLife.CubeBlazor

Live sites: Vue https://vue.newlifex.com, https://quickvue.newlifex.com · Antd https://antd.newlifex.com · Swagger https://cube3.newlifex.com/swagger/index.html

Participation notes:

  1. Join the NewLifeX team and submit to the dev branch.
  2. WebApi backend: NewLife.Cube; MVC stays in NewLife.CubeNC.
  3. New front-ends live in independent repositories (e.g. NewLife.CubeAntd).
  4. Mark owners in docs and code.
  5. Tasks: https://github.com/orgs/NewLifeX/projects/1.

Milestones (excerpt):

  • New WebApi project NewLife.Cube
  • Move NetCore-specific code to NewLife.CubeNC
  • New EntityController / EntityReadOnlyController
  • API docs and Vue login page
  • Vue user/role list and forms

</details>

<details> <summary><b>Architecture and projects</b> (9)</summary>

+-------------------------------------------------------------+
|         Front-end (Vue / Blazor / Antd / classic Razor)      |
+----------------------+------------------+-------------------+
|  Skin views (Razor)  |  API Controllers | Swagger by area   |
+----------------------+------------------+-------------------+
|  EntityController / ReadOnlyEntityController core            |
+------------------+---------------------+--------------------+
| Permissions (EntityAuthorize) | Filters (ApiFilter) | ApiResponse |
+-------------------------------------------------------------+
|            Entities & business logic (XCode ORM + extensions)|
+-------------------------------------------------------------+
| Data access: MySql/SqlServer/SQLite/Oracle/PostgreSQL/DM ... |
+-------------------------------------------------------------+
| NewLife.Core (logging/config/cache/serialization/tracing)     |
+-------------------------------------------------------------+
Project Role
NewLife.Cube Core: entity controllers, permissions, menus, field metadata, API.
NewLife.CubeNC Legacy MVC / Razor compatibility layer.
Classic skins AdminLTE / Metronic / Metronic8 / Tabler / LayuiAdmin / ElementUI / Blazor (separate packages; feature-frozen — compile-only, no new features and no bug fixes).
New-generation skins pnpm workspace: NaiveUI / MUI / Shadcn / ArcoVue / Angular / Vuetify / Svelte / TDesign (reference implementations, not published to NuGet).
NewLife.Cube.Swagger Swagger documents grouped by area.
CubeDemo / CubeDemoNC Samples.
CubeSSO Unified user center and OAuth server.
NewLife.Cube.Blazor Blazor experiment (frozen MVC theme).
Test / XUnitTest / NewLife.Cube.Tests / E2EMvcTest / AotSmoke / WebSmoke Tests and verification (WebSmoke starts Kestrel and does one HTTP round-trip on non-x64/arm64 instruction sets).

</details>

<details> <summary><b>Core concepts</b> (7)</summary>

Concept Description
EntityController Configure fields, action buttons, related links, statistics and export in a static constructor.
Field metadata API meta (page settings + List / Detail / AddForm / EditForm / Search fields) drives dynamic front-end generation.
Menu tree /Admin/Index/GetMenuTree builds multi-level menus from permissions.
Permission model User → role → menu (action set). The first registered user becomes administrator and admin is disabled.
ApiResponse Standard response wrapper with code / data / page / stat.
IModule Startup module that injects services and static assets (themes, Swagger, etc.).
AI assistant Global AiController.AiChat endpoint (/Ai/AiChat) plus NAI AiChatService orchestration (session history, tool loop, SSE events); entity controllers expose capabilities through IEntityAiContext. AiInsightHelper remains for data collection (14 sensitive-field blacklists).

</details>

<details> <summary><b>Common scenarios</b> (5)</summary>

Scenario Typical use
Enterprise / department admin Internal management backends and SaaS control panels.
IoT operations Device / point / log / alert management and data export.
Data platform Rapid publication of standard query APIs.
Identity center Unified identity and authorization (SSO / OAuth).
Operations support Orders, configuration, scheduling and release management.

</details>

Ecosystem Map

NewLife is a layered ecosystem of independently versioned open-source projects. The map below is shared verbatim by every NewLife repository; each project links to its repository and its primary NuGet package.

Project What it does Downloads
Foundation
NewLife.Core Logging, configuration, caching, networking, serialization, scheduling and APM tracing. NuGet
NewLife.XCode Data middleware: single tables at the tens-of-billions scale, automatic sharding, read-write splitting, 10+ databases. NuGet
NewLife.Net High-performance network library: 1.77M pps / 14.5 Gbps on a single machine (TCP 1KB, 2026-10), 4M long-lived TCP connections. NuGet
NewLife.Remoting Protocol communication and RPC framework for client/server applications and IoT devices. NuGet
NewLife.Agent Installs .NET applications as OS daemons: Windows services and Linux systemd. NuGet
NewLife.Templates dotnet new project templates for console, web, API, service, data and IoT projects. NuGet
Data & Messaging
NewLife.Redis Redis client with microsecond latency, millions of ops/s and built-in message queues. NuGet
NewLife.RocketMQ Pure managed RocketMQ client for Apache RocketMQ and Alibaba Cloud Message Queue. NuGet
NewLife.MQTT MQTT client and server, including Alibaba Cloud IoT connectivity. NuGet
NewLife.NovaDb Hybrid database in C#: embedded or networked, relational, time-series, message queue and KV in one. NuGet
NewLife.MySql MySql driver and helper layer built on the NewLife data stack. NuGet
Web, AI & Distributed
NewLife.Cube Rapid admin-platform framework: permissions, SSO, OAuth server and CRUD scaffolding. NuGet
Stardust Distributed service platform: node management, APM, configuration center, registry and release center. NuGet
AntJob Distributed task and real-time data scheduling platform with sharding, retries and backfill. NuGet
NewLife.AI Unified client for 46 LLM providers plus ChatAI, a ready-to-run web chat application. NuGet
Industrial & IoT
NewLife.IoT IoT standard library defining protocol contracts and device abstractions. NuGet
NewLife.Modbus Modbus TCP/RTU/ASCII implementation on top of NewLife.IoT. NuGet
NewLife.Siemens Siemens PLC protocol on top of NewLife.IoT. NuGet
NewLife.Omron Omron PLC protocol on top of NewLife.IoT. NuGet
NewLife.Melsec Mitsubishi Melsec PLC protocol on top of NewLife.IoT. NuGet
NewLife.OPC OPC client for industrial data access. —
NewLife.BACnet BACnet building-automation protocol stack. NuGet
ZeroIoT Lightweight open-source IoT platform with gateway and device management. —
Vehicle Telematics
NewLife.JT808 JT/T 808 vehicle positioning protocol: 70+ message bodies, 2011/2013/2019. NuGet
NewLife.JT809 JT/T 809 platform-to-platform protocol for transport authorities. NuGet
NewLife.JT1078 JT/T 1078 in-vehicle video: RTP parsing, FLV/fMP4 remuxing and live streaming. NuGet
Domain Components
NewLife.Office One package for Excel, Word, PPT, PDF and 15+ document formats. NuGet
NewLife.Audio Cross-platform audio: codecs, device I/O, DSP, containers and streaming. NuGet
NewLife.Video Video codecs, container formats, frame processing and streaming. NuGet
NewLife.Map Unified interface over Baidu, AMap, Tencent and Tianditu with geocoding and coordinate conversion. NuGet
NewLife.IP IPv4 geolocation with an offline memory-mapped database and an online API fallback. NuGet
Tools & Products
CrazyCoder Developer toolbox: network, serial port, crypto, regex, Modbus and MQTT. NuGet
GitCandy Self-hosted Git source code management system. —
LuckyClover Installs the matching .NET runtime automatically when launched from an older host. —

Badges show the primary package of each project; theme, extension and satellite packages are listed on their NuGet pages.The 30+ packages not listed here (FTP, LoRa, Office extensions, protocol drivers and more) are available under the NewLifeX organization and on newlifex.com. This table is maintained in the NewLife.Core README.

Documentation

Guides

Detailed requirements, feature tracking and architecture live in Doc/ (written in Chinese):

  • 📋 Requirements — vision, goals, functional requirements
  • ✅ Feature list — implementation/test/comment tracking
  • 🏗️ Architecture — layering, modules, key decisions
  • 🧩 Page presentation — dynamic / hybrid / custom pages, backend and frontend extension ladders
  • 🤖 AI — AI capabilities, configuration and extension points
  • 🔔 Alerts and inbox — online threshold alerts and broadcast messages
  • ✉️ Email/phone verification — activation contract and UI integration
  • 🛡️ Security — threat detection, auto-ban and security audit
  • 📚 User manual — full user and developer guide

Tutorials

FAQ

Q: Hide a field?
A: In the controller static constructor: ListFields.RemoveField("Field").

Q: Custom statistics?
A: Override search logic and fill stat on the returned collection.

Q: Switch themes?
A: Reference a theme package and call app.UseXXX(env); the default is configurable in the admin UI.

Q: Where do database drivers come from?
A: Downloaded from PluginServer on first run; configurable.

Q: Integrate a custom front-end?
A: Use the field metadata API plus the standard CRUD/JWT endpoints.

Contributing

Build and test

Cube builds with the .NET SDK 10 (or the matching SDK for your target framework) and also opens in Visual Studio. The front-end skins use pnpm.

dotnet build NewLife.Cube/NewLife.Cube.csproj -c Release
dotnet test XUnitTest -c Release
  • End-to-end MVC tests: E2EMvcTest/
  • NativeAOT smoke: AotSmoke/, CI in .github/workflows/aot.yml
  • Web smoke: WebSmoke/ starts Kestrel and performs one HTTP round-trip

Release

Push a v-prefixed tag to trigger .github/workflows/publish.yml; the workflow packs NewLife.Cube / NewLife.Cube.Core and publishes them to NuGet.org. Package README is generated from README.md by sync-readme-package.ps1, language switchers by sync-readme-languages.ps1 and metric badges by sync-readme-metrics.ps1; each script supports -Check for CI.

Feedback

  • Conventions: see .github/copilot-instructions.md.
  • Issues/PRs: describe the scenario, expectation and reproduction; include data scale for performance topics.
  • New themes: separate repository + README describing the build.
  • Prefer the NewLife ecosystem and avoid unnecessary dependencies.
  • Make sure all TFMs compile before submitting.

Team

<img src="https://newlifex.com/logo.png" width="48" align="right" alt="NewLife" />

Founded in 2002, the NewLife team has spent more than two decades on the .NET and IoT ecosystem, maintains nearly 100 open-source projects (34 of them core to this map), and delivers integrated software and hardware solutions for power, logistics, healthcare, industrial control and internet industries. We live by the motto "learning has no seniority — mastery earns respect".

Open-source components have been downloaded 6.48M times from NuGet (ecosystem-wide, as of 2026-10).

Website: https://newlifex.com · Open source organization: https://github.com/NewLifeX

<details> <summary>WeChat Official Account: 智能大石头 (scan to follow)</summary>

智能大石头

</details>

License

This project is licensed under MIT; the strong-name certificate newlife.snk is published so you can build and replace assemblies yourself, and the source may be modified and redistributed without attribution.

If this project is helpful to you, welcome to Star it, share it with your team, or provide improvement suggestions via Issue/PR.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
6.16.2026.1105-beta0802 40 11/5/2026
6.16.2026.1105-beta0348 45 11/5/2026
6.16.2026.1030 109 10/30/2026
6.16.2026.1030-beta0626 83 10/30/2026
6.16.2026.1029-beta0420 111 10/29/2026
6.16.2026.1028-beta0715 92 10/28/2026
6.16.2026.1027 96 10/27/2026
6.16.2026.1027-beta1640 89 10/27/2026
6.16.2026.1027-beta1610 87 10/27/2026
6.15.2026.1018-beta1727 126 10/18/2026
6.15.2026.1017-beta1435 97 10/17/2026
6.15.2026.1017-beta1430 90 10/17/2026
6.15.2026.1017-beta1426 100 10/17/2026
6.15.2026.1017-beta1316 94 10/17/2026
6.15.2026.1002-beta1649 112 10/2/2026
6.15.2026.919-beta0831 108 9/19/2026
6.15.2026.912-beta0916 110 9/12/2026
6.15.2026.910-beta0316 123 9/10/2026
6.15.2026.904-beta0617 110 9/4/2026
6.15.2026.903-beta1304 122 9/3/2026
Loading failed

接入编译期词表并将运行时语言扩展到 31 种,API、MVC 视图与 Vue 前端全量本地化;API 标准端点收敛为 RESTful 子资源(meta、{id}、PUT、DELETE、charts/export/import/attachments),原 GetPage/GetFields 等端点下线;新增自描述 meta 与 page-logic 页面呈现配置,列表支持列宽对齐、树形、stat 汇总与批量启用禁用;CubeTable 组件与页面引擎落地,八个 SPA 皮肤补齐工作台真实数据、多标签页、卡片拖拽、窄屏抽屉与列表图表切换;安全防御内置威胁检测、自动封禁与可信代理学习,修复认证绕过、上传穿越、越权并加固 SSO;数据权限回归接口层,用户页非系统角色只读、部门按管理者过滤;新增账号注销扩展点、单设备登录踢旧设备与登录配置 v2;NativeAOT 冒烟 18 场景、多 OS 架构矩阵与 TFM 守门,升级 NewLife.Core 12.0、XCode 12.3、Remoting 4.0 等 2026-10-24 正式版依赖