![]() |
VOOZH | about |
dotnet add package NewLife.XCode --version 11.27.2026.601
NuGet\Install-Package NewLife.XCode -Version 11.27.2026.601
<PackageReference Include="NewLife.XCode" Version="11.27.2026.601" />
<PackageVersion Include="NewLife.XCode" Version="11.27.2026.601" />Directory.Packages.props
<PackageReference Include="NewLife.XCode" />Project file
paket add NewLife.XCode --version 11.27.2026.601
#r "nuget: NewLife.XCode, 11.27.2026.601"
#:package NewLife.XCode@11.27.2026.601
#addin nuget:?package=NewLife.XCode&version=11.27.2026.601Install as a Cake Addin
#tool nuget:?package=NewLife.XCode&version=11.27.2026.601Install as a Cake Tool
👁 GitHub top language
👁 GitHub License
👁 Nuget Downloads
👁 Nuget
👁 Nuget (with prereleases)
高性能 .NET 数据中间件,聚焦“添删改查 + 极致性能 + 海量数据”,内置多级缓存、自动建模/迁移、分表分库、强类型查询、跨库迁移,支持 MySQL / SQLite / SqlServer / Oracle / PostgreSQL / TDengine / InfluxDB / 达梦 / 金仓 / 瀚高 / DB2 等。单表生产实践达百亿级,查询吞吐可达十亿级 QPS(配合缓存策略)。
文档:https://newlifex.com/xcode 社区交流QQ群:1600800 / 1600838
NuGet 引用(任一项目):
dotnet add package NewLife.XCode
或使用模板脚手架:
dotnet new install NewLife.Templates
dotnet new xcode --name Demo.Data
cd Demo.Data
dotnet build
强命名证书已内置(newlife.snk),可自行重编译用于企业私有框架。
XCode 采用“模型驱动 + 运行时元数据 + 多级缓存 + 可选分片”的分层架构。
XML 模型 (Tables/Columns/Indexes) → 代码生成器(xcodetool 或 VS T4)→ 实体数据类(.cs) + 业务分部类(.Biz.cs)。
核心接口/类型:
针对“读多写少”模式设计:
Migration 配置,可按实体粒度控制反向工程策略(Off / ReadOnly / On / Full)。<?xml version="1.0" encoding="utf-8"?>
<Tables Version="1.0" Output="MyEntity" NameSpace="Model" BaseClass="Entity" ConnName="DB">
<Table Name="UserInfo" Description="用户信息">
<Columns>
<Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="会员id" />
<Column Name="UserName" DataType="String" Nullable="False" Description="会员名称" />
<Column Name="Password" DataType="String" Nullable="False" Description="会员密码" />
<Column Name="Age" DataType="Int32" Description="会员年龄" />
</Columns>
</Table>
</Tables>
dotnet tool install xcodetool -g --prerelease → xcode db.xml。using XCode;
var user = new UserInfo { UserName="张三", Password="123456", Age=18 };
user.Insert();
var u2 = UserInfo.FindById(user.Id);
u2.Age = 19;
u2.Update();
var list = UserInfo.FindAll(UserInfo._.Age > 10 & UserInfo._.UserName == "张三");
UserInfo.FindById(user.Id)?.Delete();
使用缓存时:实体数 <1000 → 整表缓存;否则普通查询 / 单对象缓存。
public static IList<UserInfo> Search(String name, Int32 age, Pager p)
{
var exp = new WhereExpression();
if (!name.IsNullOrEmpty()) exp &= UserInfo._.UserName == name;
if (age > 0) exp &= UserInfo._.Age == age;
return UserInfo.FindAll(exp, p);
}
UserInfo.Update(UserInfo._.UserName == "李四" & UserInfo._.Age == 18, UserInfo._.Id == 1);
var list = UserInfo.FindAll(UserInfo._.Age > 10, " Age DESC,Id ASC",
string.Join(",", UserInfo._.UserName, UserInfo._.Age), 0, 20);
在模型添加:
<Indexes>
<Index Columns="UserName" Unique="True" />
<Index Columns="UserName,Age" />
</Indexes>
重新生成后自动出现:FindByUserName、组合条件辅助方法 / Search 模板。
实体缓存策略:Meta.Session.Count < 1000 使用内存集合查找。否则走数据库或单对象缓存。
Meta.ShardPolicy = new TimeShardPolicy(nameof(UserInfo.Id), Meta.Factory)
{
ConnPolicy = "{0}", // 可自定义库名策略
TablePolicy = "{0}_{1:yyyyMMdd}", // 表名模板
Step = TimeSpan.FromDays(1)
};
其余 Insert / Query 等代码保持不变,自动路由到对应日期表。
XCode_{ConnName}。provider=MySql;server=...;user=...;password=...;database=...;)。| 能力 | 指标(典型环境) | 说明 |
|---|---|---|
| 单机 Insert | 最高 ~89 万 TPS | 批量 / 缓存 + SQLite / 内存盘组合测试 |
| 单机 Query | 最高 ~18 亿 QPS | 小表 + 实体缓存 / 单对象缓存场景 |
| 单表数据量 | 生产百亿级 | 分页 + 分表策略 |
实际性能取决于数据库类型 / 硬件 / 分表策略 / 缓存命中率。
| 组件 | 说明 |
|---|---|
| NewLife.Core | 基础能力:日志 / 配置 / 缓存 / 序列化 / APM / 网络 |
| NewLife.Cube | 快速开发平台 + 后台管理(内置代码生成 + 权限) |
| NewLife.Redis | 高性能 Redis 客户端与多功能消息队列 |
| Stardust | 分布式服务平台:注册 / 配置 / 追踪 / 发布中心 |
| AntJob | 分布式任务 & 大数据离线/实时处理 |
| ... | 详见下文项目矩阵 |
欢迎提交 Issue / PR:
开发构建:
dotnet restore
dotnet build -c Release
可在 Test / XUnitTest.XCode 中补充案例;性能相关建议附基准或说明。
MIT,完全开放。允许商用 / 修改 / 再发行(可替换“NewLife”为企业品牌实现私有化)。
var user = new UserInfo();
user.UserName = "张三";
user.Password = "123456";
user.Age = 18;
user.Insert();
Console.WriteLine("插入一条新数据,用户id为:" + user.Id);
var u = UserInfo.FindById(1);
u.UserName = "张三";
u.Password = "123456";
u.Age = 19;
u.Update();
u = UserInfo.FindById(1);
Console.WriteLine($"用户ID={u.Id}已修改岁数,岁数为:{u.Age}");
var list = UserInfo.FindAll(UserInfo._.UserName == "张三" & UserInfo._.Age == 19, UserInfo._.UserName.Desc(), string.Join(",", UserInfo._.UserName, UserInfo._.Age), 0, 0);
public static UserInfo FindByUserName(String userName)
{
if (userName.IsNullOrEmpty()) return null;
if (Meta.Session.Count < 1000) return Meta.Cache.Find(e => e.UserName.EqualIgnoreCase(userName));
return Find(_.UserName == userName);
}
各项目默认支持net8.0/netstandard2.1/netstandard2.0/net4.61/net4.5,旧版(2023.0308)支持net4.0/net2.0
| 项目 | 年份 | 说明 |
| :--------------------------------------------------------------: | :---: | -------------------------------------------------------------------------------------- |
| 基础组件 | | 支撑其它中间件以及产品项目 |
| NewLife.Core | 2002 | 核心库,日志、配置、缓存、网络、序列化、APM性能追踪 |
| NewLife.XCode | 2005 | 大数据中间件,单表百亿级,MySql/SQLite/SqlServer/Oracle/TDengine/达梦,自动分表 |
| NewLife.Net | 2005 | 网络库,单机千万级吞吐率(2266万tps),单机百万级连接(400万Tcp) |
| NewLife.Remoting | 2011 | RPC通信框架,内网高吞吐或物联网硬件设备场景 |
| NewLife.Cube | 2010 | 魔方快速开发平台,集成了用户权限、SSO登录、OAuth服务端等,单表100亿级项目验证 |
| NewLife.Agent | 2008 | 服务管理组件,把应用安装成为操作系统守护进程,Windows服务、Linux的Systemd |
| NewLife.Zero | 2020 | Zero零代脚手架,基于NewLife组件生态的项目模板,Web、WebApi、Service |
| 中间件 | | 对接知名中间件平台 |
| NewLife.Redis | 2017 | Redis客户端,微秒级延迟,百万级吞吐,丰富的消息队列,百亿级数据量项目验证 |
| NewLife.RocketMQ | 2018 | RocketMQ纯托管客户端,支持Apache RocketMQ和阿里云消息队列,十亿级项目验 |
| NewLife.MQTT | 2019 | 物联网消息协议,MqttClient/MqttServer,客户端支持阿里云物联网 |
| NewLife.IoT | 2022 | IoT标准库,定义物联网领域的各种通信协议标准规范 |
| NewLife.Modbus | 2022 | ModbusTcp/ModbusRTU/ModbusASCII,基于IoT标准库实现,支持IoT平台和IoTEdge |
| NewLife.Siemens | 2022 | 西门子PLC协议,基于IoT标准库实现,支持IoT平台和IoTEdge |
| NewLife.Map | 2022 | 地图组件库,封装百度地图、高德地图和腾讯地图 |
| NewLife.IP | 2022 | IP地址库,IP地址转物理地址 |
| 产品平台 | | 产品平台级,编译部署即用,个性化自定义 |
| AntJob | 2019 | 蚂蚁调度,分布式大数据计算平台(实时/离线),蚂蚁搬家分片思想,万亿级数据量项目验证 |
| Stardust | 2018 | 星尘,分布式服务平台,节点管理、APM监控中心、配置中心、注册中心、发布中心 |
| NewLife.ERP | 2021 | 企业ERP,产品管理、客户管理、销售管理、供应商管理 |
| CrazyCoder | 2006 | 码神工具,众多开发者工具,网络、串口、加解密、正则表达式、Modbus |
| XProxy | 2005 | 产品级反向代理,NAT代理、Http代理 |
| HttpMeter | 2022 | Http压力测试工具 |
| GitCandy | 2015 | Git源代码管理系统 |
| SmartOS | 2014 | 嵌入式操作系统,完全独立自主,支持ARM Cortex-M芯片架构 |
| SmartA2 | 2019 | 嵌入式工业计算机,物联网边缘网关,高性能.NET6主机,应用于工业、农业、交通、医疗 |
| 菲凡物联FIoT | 2020 | 物联网整体解决方案,建筑、环保、农业,软硬件及大数据分析一体化,单机十万级点位项目验证 |
| NewLife.UWB | 2020 | 厘米级(10~20cm)高精度室内定位,软硬件一体化,与其它系统联动,大型展厅项目验证 |
新生命团队(NewLife)成立于2002年,是新时代物联网行业解决方案提供者,致力于提供软硬件应用方案咨询、系统架构规划与开发服务。NuGet 累计下载 413万+。团队核心组件(XCode / Redis / Stardust / AntJob / IoT 等)已在电力、工业、交通、环保、医疗、文博等行业大规模应用。
我们持续改进,力求成为值得长期信赖的 .NET / IoT / 分布式技术伙伴。
网站:https://newlifex.com 开源组织:https://github.com/NewLifeX
微信公众号:
如果本项目对你有帮助,欢迎 Star、分享给团队,或通过 Issue/PR 反馈改进建议。
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 was computed. net5.0-windows net5.0-windows was computed. net6.0 net6.0 was computed. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 was computed. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 was computed. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 netcoreapp2.0 was computed. netcoreapp2.1 netcoreapp2.1 was computed. netcoreapp2.2 netcoreapp2.2 was computed. netcoreapp3.0 netcoreapp3.0 was computed. netcoreapp3.1 netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 netstandard2.0 is compatible. netstandard2.1 netstandard2.1 is compatible. |
| .NET Framework | net45 net45 is compatible. net451 net451 was computed. net452 net452 was computed. net46 net46 was computed. net461 net461 is compatible. net462 net462 was computed. net463 net463 was computed. net47 net47 was computed. net471 net471 was computed. net472 net472 was computed. net48 net48 was computed. net481 net481 was computed. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen40 tizen40 was computed. tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
Showing the top 5 NuGet packages that depend on NewLife.XCode:
| Package | Downloads |
|---|---|
|
NewLife.Cube.Core
魔方MVC/Razor兼容层,支持ASP.NET Core MVC传统开发模式。提供用户权限管理、Razor视图模板、SSO登录、OAuth服务端、数据导出等功能,单表100亿级数据验证。 |
|
|
NewLife.Cube
魔方WebAPI核心库,提供实体控制器、权限管理、菜单管理、字段元数据、OAuth服务端、JWT认证等功能。支持前后端分离架构,对接Vue/Blazor/Antd等前端框架,单表100亿级数据验证。 |
|
|
NewLife.Remoting.Extensions
提供设备接入控制器、令牌服务与会话管理扩展 |
|
|
NewLife.AntJob.Extensions
AntJob 扩展组件库,支持 SQL 数据驱动、消息驱动、动态脚本等多种调度模式。 |
|
|
NewLife.XCoder
基于编译型模版引擎的代码生成器,以及众多开发者工具 |
Showing the top 5 popular GitHub repositories that depend on NewLife.XCode:
| Repository | Stars |
|---|---|
|
NewLifeX/AntJob
高吞吐 .NET 分布式任务与实时数据调度平台:时间/数据/消息/Cron/SQL/脚本切片,自动重试与弹性扩缩,回溯补算 + Web 控制台。High‑throughput .NET distributed job & real‑time scheduler with fine‑grained slicing, retries, elastic scaling & web console.
|
|
|
NewLifeX/Stardust
星尘,轻量级分布式服务框架。配置中心、集群管理、远程自动发布、服务治理。服务自动注册和发现,负载均衡,动态伸缩,故障转移,性能监控。
|
|
|
NewLifeX/XCoder
新生命码神工具,代码生成、网络工具、API工具、串口工具、正则工具、图标工具、加解密工具、地图接口。
|
|
|
landv/LuYao.Toolkit
LuYao.Toolkit 路遥工具箱
|
|
|
nnhy/BigData
SQLite单表4亿订单,大数据测试
|
| Version | Downloads | Last Updated |
|---|---|---|
| 11.27.2026.601 | 924 | 6/1/2026 |
| 11.27.2026.601-beta0811 | 89 | 6/1/2026 |
| 11.26.2026.519-beta0302 | 108 | 5/19/2026 |
| 11.26.2026.518-beta0646 | 93 | 5/18/2026 |
| 11.26.2026.513-beta1143 | 97 | 5/13/2026 |
| 11.26.2026.512-beta1239 | 93 | 5/12/2026 |
| 11.26.2026.509 | 1,450 | 5/9/2026 |
| 11.25.2026.427-beta1619 | 119 | 4/27/2026 |
| 11.25.2026.421-beta0550 | 108 | 4/21/2026 |
| 11.25.2026.407-beta0827 | 124 | 4/7/2026 |
| 11.25.2026.403 | 1,820 | 4/3/2026 |
新增表级反向工程模式并支持模型配置Migration;增强FieldExtension.Between区间查询并补齐单元测试;支持DbCommand.ToString直接预览SQL提升排障效率;优化批量Update与Upsert SQL生成并修复逗号拼接问题;批量累加字段支持快照差值与降级覆写;MySql参数支持Boolean数组自动转换为Int16数组;统一批量实体操作过滤空元素并增强链路追踪埋点