Go to file
大石头 6569c987c7 v6.5.2025.0801 升级ECharts增加大量系列图;增强可扩展字段功能,支持一行数据的Json/Xml字段在表单页展开为独立Tab页 2025-08-01 14:10:13 +08:00
.github/workflows Upgrade Nuget 2025-06-26 08:14:44 +08:00
CubeDemo v6.5.2025.0801 升级ECharts增加大量系列图;增强可扩展字段功能,支持一行数据的Json/Xml字段在表单页展开为独立Tab页 2025-08-01 14:10:13 +08:00
CubeDemoNC v6.5.2025.0801 升级ECharts增加大量系列图;增强可扩展字段功能,支持一行数据的Json/Xml字段在表单页展开为独立Tab页 2025-08-01 14:10:13 +08:00
CubeSSO v6.5.2025.0801 升级ECharts增加大量系列图;增强可扩展字段功能,支持一行数据的Json/Xml字段在表单页展开为独立Tab页 2025-08-01 14:10:13 +08:00
Doc v6.4.2025.0513 加密登录密码;重构EntityModelBinder,规避Area接口无限递归验证;要求显式指定百分数字段;假删除后再删除即为真删除 2025-05-13 23:53:29 +08:00
NewLife.Cube v6.5.2025.0801 升级ECharts增加大量系列图;增强可扩展字段功能,支持一行数据的Json/Xml字段在表单页展开为独立Tab页 2025-08-01 14:10:13 +08:00
NewLife.Cube.AdminLTE v6.5 ItemType支持area/area3/area2/area1 2025-05-26 21:37:08 +08:00
NewLife.Cube.Blazor v6.5.2025.0801 升级ECharts增加大量系列图;增强可扩展字段功能,支持一行数据的Json/Xml字段在表单页展开为独立Tab页 2025-08-01 14:10:13 +08:00
NewLife.Cube.ElementUI v6.5 ItemType支持area/area3/area2/area1 2025-05-26 21:37:08 +08:00
NewLife.Cube.LayuiAdmin fix 2025-06-01 23:03:42 +08:00
NewLife.Cube.Metronic v6.5 ItemType支持area/area3/area2/area1 2025-05-26 21:37:08 +08:00
NewLife.Cube.Metronic8 版权信息输出.net运行时,例如9.0.6,而不是框架9.0 2025-07-05 14:22:48 +08:00
NewLife.Cube.Swagger v6.5.2025.0801 升级ECharts增加大量系列图;增强可扩展字段功能,支持一行数据的Json/Xml字段在表单页展开为独立Tab页 2025-08-01 14:10:13 +08:00
NewLife.Cube.Tabler 版权信息输出.net运行时,例如9.0.6,而不是框架9.0 2025-07-05 14:22:48 +08:00
NewLife.CubeNC v6.5.2025.0801 升级ECharts增加大量系列图;增强可扩展字段功能,支持一行数据的Json/Xml字段在表单页展开为独立Tab页 2025-08-01 14:10:13 +08:00
Test v6.5.2025.0801 升级ECharts增加大量系列图;增强可扩展字段功能,支持一行数据的Json/Xml字段在表单页展开为独立Tab页 2025-08-01 14:10:13 +08:00
XUnitTest v6.5.2025.0801 升级ECharts增加大量系列图;增强可扩展字段功能,支持一行数据的Json/Xml字段在表单页展开为独立Tab页 2025-08-01 14:10:13 +08:00
.editorconfig 删除不再使用的文件 2022-04-13 20:12:22 +08:00
.gitignore 忽略文件 2024-07-15 07:21:38 +08:00
LICENSE 更新X组件 2018-11-03 23:36:33 +08:00
README.md 增加快速拥有 2025-07-11 02:31:45 +08:00
魔方.sln [feat]新增项目NewLife.Cube.Swagger,打包swagger相关设置 2024-08-21 14:42:44 +08:00

README.md

魔方 NewLife.Cube

GitHub top language GitHub License Nuget Downloads Nuget Nuget (with prereleases)

魔方是一个快速Web开发平台能够快速搭建系统原型而又具有足够灵活的可扩展性
内部集成了用户权限管理、模板继承、SSO登录、OAuth服务端、数据导出与分享等多个功能模块默认模板在真实项目中经历过单表100亿数据添删改查的考验。

演示站点:https://cube.newlifex.com CentOS7 + CDN
SSO中心https://sso.newlifex.com OAuth服务端

魔方教程:https://newlifex.com/cube
XCode教程https://newlifex.com/xcode
核心库教程:https://newlifex.com/core

快速拥有

使用NewLife组件的最简便方式是从Nuget引用例如在项目Nuget管理中搜索NewLife.Cube.Core 并引入。

NewLife组件由社区共创20多年使用MIT开源协议任何人可任意修改并再次发行(无需声明来源)!许多企业基于此构建内部开发框架时,甚至可通过批量替换源码中所有NewLife字符串为贵公司名实现私有化定制。

团队始终秉承开放态度不仅支持VisualStudio最新正式版打开解决方案编译也兼容dotnet build命令行编译,项目文件摒弃复杂功能以追求简单易用,真正做到开箱即用。

我们公开强命名证书newlife.snk以支持独自编译替换程序集。

命令行中运行以下命令快速体验NewLife组件

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

快速部署用户中心

  1. 拉取源码并编译CubeSSO项目切换到输出目录Bin/SSO按需修改appsettings.json配置打包exe/dll/appsettings.json/CubeSSO.runtimeconfig.json等文件并发布到服务器。
{
  "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"

    //"Membership": "Server=.;Port=3306;Database=Membership;Uid=root;Pwd=root;provider=mysql",
    //"Cube": "Server=.;Port=3306;Database=Membership;Uid=root;Pwd=root;provider=mysql",
    //"Log": "Server=.;Port=3306;Database=Membership;Uid=root;Pwd=root;provider=mysql"
  }
}
  1. 启动并访问SSO系统首次登录可以用admin/admin进去也可以使用第三方登录新生命用户中心第一个用户将会作为系统管理员同时禁用admin。

  2. 作为用户中心正式部署时需要关闭SSO的第三方登录魔方设置OAuth设置禁用所有。

    OAuthConfig

  3. 修改系统名称为新生命用户中心,魔方设置,系统设置,显示名称


第三代魔方

启动第三代魔方的设计主要方向是借助前后端分离技术重构现代化用户界面在2023年3月份完成第一个最小可用版vue
后端接口源码已合并到魔方代码库的master分支,各前端代码库独立,欢迎大家积极参与!

Vue版https://vue.newlifex.com, https://quickvue.newlifex.com
Antd版https://antd.newlifex.com
Swaggerhttps://cube3.newlifex.com/swagger/index.html

项目参与须知

  1. 参与者加入github上的NewLifeX团队自由向魔方dev分支提交代码或修改文档。
  2. 用于前后端分离的WebApi版魔方后台是 NewLife.Cube,原 NewLife.CubeNC 保留MVC继续维护。
  3. 欢迎增加更多的前端项目,每一种前端新建独立代码库,如Antd则新建 NewLife.CubeAntd
  4. 大家在文档或代码处,标注负责人。
  5. 源码库使用github以及新生命团队糖果库可申请权限
  6. 项目待办任务管理 https://github.com/orgs/NewLifeX/projects/1

目标蓝图

第三代魔方的远景目标预计用2~3年时间完成。

  1. 重构为现代化用户界面,保留魔方默认视图以及视图定制的思想,让下游项目在迁移到第三代魔方时,尽可能少修改代码
  2. 前后端分离技术,支持Vue/React/Angular/Blazor等主流前端框架
  3. 魔方理念和用法保持不变新建WebApi项目后从Nuget引入NewLife.Cube加入模型生成实体类和Controller即可得到默认皮肤的界面需要定制时才写前端代码
  4. 增强移动端支持混合式手机APP、小程序
  5. 增强支持数据大屏

春雨计划

春雨计划定于2023年3月完成第一个最小vue可用版待办项如下欢迎补充

  1. [*] 在dev分支新建WebApi项目 NewLife.Cube占用Asp.Net 4.5的坑位(已弃用),将来发布包也是 NewLife.Cube
  2. [*] 专属于NetCore版的代码转移到 NewLife.CubeNC 目录,尽量保留代码提交历史,方便将来查找
  3. [*] 设计全新的 EntityControllerEntityReadonlyController,只为前端提供接口
  4. [*] 编写接口文档
  5. [*] 设计vue版主页框架页前端项目是 NewLife.CubeVuevue项目调用后端 CubeDemo
  6. [*] 设计vue版登录页
  7. [] 设计vue版用户列表页和表单页
  8. [] 设计vue版角色列表页和表单页

Vue版前端代码库
https://github.com/NewLifeX/NewLife.CubeVue http://git.newlifex.com/NewLife/NewLife.CubeVue

https://github.com/NewLifeX/NewLife.QuickVue https://git.newlifex.com/NewLife/NewLife.QuickVue

非主线任务

支持vue之外的前端框架不限于3月份完成。

  1. [*] 新增Blazor项目 NewLife.CubeBlazor。 @张善友 @张炳彬
  2. [*] 新建AntDesign项目 NewLife.CubeAntd。 @Van

Antd版前端代码库
https://github.com/NewLifeX/NewLife.CubeAntd http://git.newlifex.com/NewLife/NewLife.CubeAntd

Blazor版前端代码库
https://github.com/NewLifeX/NewLife.CubeBlazor http://git.newlifex.com/NewLife/NewLife.CubeBlazor

WebApi接口说明

  1. 接口地址 https://cube3.newlifex.com/swagger/index.html
  2. 登录地址 /Admin/User/Login 测试账号 admin/admintest/test
  3. JWT令牌传递方式请求头 Authentication推荐、Cookie、Url参数token
  4. 首页框架获取菜单 /Admin/Index/GetMenuTree
  5. 每个控制器,都有一个 /{Area}/{Controller}/GetFields 接口,获取可用于展示的字段信息,如 https://cube3.newlifex.com/Cube/App/GetFields?kind=1kind参数可选List/Detail/AddForm/EditForm
  6. 控制器主路由对应列表页数据获取接口调用各控制器的Search查找数据由于查询参数多变接口入参没有固定模型而是直接从请求字符串中获取参数。如 https://cube3.newlifex.com/Cube/Area?parentid=0&pageSize=7
  7. 列表页接口返回数据中pager为分页信息
  8. 列表页接口返回数据中state为统计行如用户统计 https://cube3.newlifex.com/Admin/UserStat
  9. 详情接口 /{Area}/{Controller}/Detail参数id固定为主键查询https://cube3.newlifex.com/Cube/Area?id=450921
  10. 新增接口 /{Area}/{Controller}/InsertPost需要新增的实体对象
  11. 修改接口 /{Area}/{Controller}/UpdatePost需要修改的实体对象务必带有主键
  12. 删除接口 /{Area}/{Controller}/DeleteGet删除参数id指定的数据

魔方特性

  • 通用权限管理用户、角色、菜单、权限支持控制器Action权限控制
  • 多数据库,支持 MySql / SQLite / Sql Server / Oracle / PostgreSql / SqlCe / Access
  • 免部署,系统自动创建数据库表结构,以及初始化数据,无需人工干涉
  • 强大的视图引擎,支持子项目视图重写父项目相同位置视图,任意覆盖修改默认界面

ASP.NET Core 安装

  • Visual Studio 中新建ASP.NET Core Web项目
  • 通过 NuGet 引用NewLife.Cube.Core,或自己编译最新的魔方 NewLife.CubeNC源码
  • appsettings.jsonConnectionStrings段设置名为Membership的连接字符串,用户角色权限菜单等存储在该数据库
  • 系统自动识别数据库类型,默认Data Source=..\Data\Membership.db
  • 编译项目,项目上点击鼠标右键,查看在浏览器中查看,运行魔方平台
  • 系统为MySql/SQLite/Oracle/SqlCe数据库自动下载匹配(x86/x64)的数据库驱动文件,驱动下载地址可在Config\Core.config中修改PluginServer
  • 系统自动下载脚本样式表等资源文件,下载地址可在Config/Cube.config中修改PluginServer
  • 默认登录用户名是admin,密码是admin,也可以使用NewLife等第三方OAuth登录首个进入系统的用户抢得管理员admin禁用
  • 项目发布时只需要拷贝*.dllappsettings.json*.deps.json*.runtimeconfig.json,以及其它自己添加的资源文件

ASP.NET MVC 安装

  • Visual Studio 中新建ASP.NET MVC项目
  • 通过 NuGet 引用NewLife.Cube,或自己编译最新的魔方 NewLife.Cube源码
  • Web.config<connectionStrings>段设置名为Membership的连接字符串,用户角色权限菜单等存储在该数据库
  • 系统自动识别数据库类型,默认\<add name="Membership" connectionString="Data Source=..\Data\Membership.db" providerName="Sqlite"/>
  • 编译项目,项目上点击鼠标右键,查看在浏览器中查看,运行魔方平台
  • 系统为MySql/SQLite/Oracle/SqlCe数据库自动下载匹配(x86/x64)的数据库驱动文件,驱动下载地址可在Config\Core.config中修改PluginServer
  • 系统自动下载脚本样式表等资源文件,下载地址可在Config/Cube.config中修改PluginServer
  • 默认登录用户名是admin,密码是admin,也可以使用NewLife等第三方OAuth登录首个进入系统的用户抢得管理员admin禁用
  • 推荐安装 Visual Studio 插件 Razor Generator,给.cshtml文件设置自定义工具RazorGenerator,可以把.cshtml编译生成到DLL里面
  • 项目发布时只需要拷贝Binweb.configGlobal.asax,以及其它自己添加的资源文件

新生命项目矩阵

各项目默认支持net9.0/netstandard2.1/netstandard2.0/net4.62/net4.5旧版2024.0801支持net4.0/net2.0

项目 年份 说明
基础组件 支撑其它中间件以及产品项目
NewLife.Core 2002 核心库日志、配置、缓存、网络、序列化、APM性能追踪
NewLife.XCode 2005 大数据中间件单表百亿级MySql/SQLite/SqlServer/Oracle/PostgreSql/达梦,自动分表,读写分离
NewLife.Net 2005 网络库单机千万级吞吐率2266万tps单机百万级连接400万Tcp长连接
NewLife.Remoting 2011 协议通信库提供CS应用通信框架支持Http/RPC通信框架高吞吐物联网设备低开销易接入
NewLife.Cube 2010 魔方快速开发平台集成了用户权限、SSO登录、OAuth服务端等单表100亿级项目验证
NewLife.Agent 2008 服务管理组件把应用安装成为操作系统守护进程Windows服务、Linux的Systemd
NewLife.Zero 2020 Zero零代脚手架基于NewLife组件生态的项目模板NewLife.TemplatesWeb、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标准库实现支持ZeroIoT平台和IoTEdge网关
NewLife.Siemens 2022 西门子PLC协议基于IoT标准库实现支持IoT平台和IoTEdge
NewLife.Map 2022 地图组件库,封装百度地图、高德地图、腾讯地图、天地图
NewLife.Audio 2023 音频编解码库PCM/ADPCMA/G711A/G722U/WAV/AAC
产品平台 产品平台级,编译部署即用,个性化自定义
Stardust 2018 星尘分布式服务平台节点管理、APM监控中心、配置中心、注册中心、发布中心
AntJob 2019 蚂蚁调度,分布式大数据计算平台(实时/离线),蚂蚁搬家分片思想,万亿级数据量项目验证
NewLife.ERP 2021 企业ERP产品管理、客户管理、销售管理、供应商管理
CrazyCoder 2006 码神工具众多开发者工具网络、串口、加解密、正则表达式、Modbus、MQTT
EasyIO 2023 简易文件存储,支持分布式系统中文件集中存储。
XProxy 2005 产品级反向代理NAT代理、Http代理
HttpMeter 2022 Http压力测试工具
GitCandy 2015 Git源代码管理系统
SmartOS 2014 嵌入式操作系统完全独立自主支持ARM Cortex-M芯片架构
SmartA2 2019 嵌入式工业计算机,物联网边缘网关,高性能.NET8主机应用于工业、农业、交通、医疗
FIoT物联网平台 2020 物联网整体解决方案,建筑、环保、农业,软硬件及大数据分析一体化,单机十万级点位项目验证
UWB高精度室内定位 2020 厘米级10~20cm高精度室内定位软硬件一体化与其它系统联动大型展厅项目验证

新生命开发团队

XCode

新生命团队NewLife成立于2002年是新时代物联网行业解决方案提供者致力于提供软硬件应用方案咨询、系统架构规划与开发服务。
团队主导的80多个开源项目已被广泛应用于各行业Nuget累计下载量高达400余万次。
团队开发的大数据中间件NewLife.XCode、蚂蚁调度计算平台AntJob、星尘分布式平台Stardust、缓存队列组件NewLife.Redis以及物联网平台FIoT均成功应用于电力、高校、互联网、电信、交通、物流、工控、医疗、文博等行业为客户提供了大量先进、可靠、安全、高质量、易扩展的产品和系统集成服务。

我们将不断通过服务的持续改进成为客户长期信赖的合作伙伴通过不断的创新和发展成为国内优秀的IoT服务供应商。

新生命团队始于2002年部分开源项目具有20年以上漫长历史源码库保留有2010年以来所有修改记录
网站:https://newlifex.com
开源:https://github.com/newlifex
QQ群1600800/1600838
微信公众号:
智能大石头