NewLife 核心组件

NewLife 核心组件使用教程,覆盖高性能零分配序列化、网络库与 RPC、Redis/RocketMQ/MQTT、缓存、日志与定时、配置、安全与链路追踪等全家桶,含 v11 新特性与最佳实践。
76 篇文章 · 更新于 2026-09-03
经纬度哈希GeoHash
应用系统需要地址和经纬度时,可以总结根据地址获取经纬度,可以使用百度地图接口或高德地图接口此处为语雀文档,点击链接查看:https://www.yuque.com/go/doc/31509459此处为语雀文档,点击链接查看:https://www.yuque.com/go/doc/315106...
大石头 · 2023-06-22 · 浏览 9,540
对象池ObjectPool
对象资源池 ObjectPool 为Redis客户端、Rpc客户端等提供连接池能力。此外还实现了轻量级对象池 Pool,无锁高性能。Nuget包:NewLife.Core源码:https://github.com/NewLifeX/X/blob/master/NewLife.Core/C...
大石头 · 2024-12-17 · 浏览 6,763
字典缓存DictionaryCache
字典缓存 DictionaryCache 设计于2008年,在.NET2.0/.NET4.0时代是X组件内存缓存之王。DictionaryCache 设计理念很简单,从缓存里面取值,如果目标键值不存在,就执行委托得到所需数据,并缓存起来。Nuget包:NewLife.Core源码地址:http...
大石头 · 2021-02-18 · 浏览 4,990
轻量级Excel读取器ExcelReader
用户上传Excel文件,要求读取里面数据,其实可以很简单!新版Excel2007以上的xlsx文件,本质上是OpenXml格式,只需要解开压缩包然后读取内部Xml即可得到想要的数据。ExcelReader 用于快速读取单Sheet的Excel数据,早期是收费出售源码的项目,最近一年转为开源。
大石头 · 2023-06-22 · 浏览 6,141
Csv数据库CsvDb
在工控领域,经常遇到断电关机数据库文件损坏的情况,SQLite如此,LiteDb也是这样。ZTO有数万自动化扫描设备,每天都有数百台设备因断电数据库损坏等原因,而不得不重装软件。因此,设计了CsvDb,用于本地保存少量数据,一般只有几百几千行,极限不超过十万行。
大石头 · 2023-06-22 · 浏览 4,986
Csv解析CsvFile
Excel导出是非常常见的需求,而大多数时候只需要导出CSV格式文件即可。Csv文件非常简单以及快速,除了日常导出报表,还可以导出大量数据用于跨系统数据交换,曾经多次遇到一次性导出数百万行数据。NewLife.Core 内封装了CsvFile类,用于Csv格式文件读写,同时支持输出到Http响...
大石头 · 2023-06-22 · 浏览 5,552
数据包Packet
在协议实现中,常常需要用到Byte数组和Stream数据流,为了减少内存拷贝及GC回收,封装了数据包Packet类。Packet设计于2016年,最低支持.NET2.0/.NET4.0。.NETCore 2.1已经支持Span,正是Packet努力的目标,同时也表明Packet的设计方向正确无...
大石头 · 2024-12-20 · 浏览 5,887
二进制序列化
在计算机世界,万物皆01二进制,包括各种各样的文件格式和网络协议,二进制格式最为常见!NewLife.Core 内置了完整的二进制序列化框架 Binary,经过十多年洗礼,发展到了第三代支持Handler处理器扩展。Binary的同类框架有 Protobuf、Thrift、MessagePack。
大石头 · 2023-06-22 · 浏览 5,636
Xml序列化
在2010年之前,XML是最流行的数据交换标准,直至今天,仍然有许多系统使用XML交换数据。NewLife.Core 很早就提供了XML序列化支持,主要用于配置文件。Nuget包:NewLife.Core源码:https://github.com/NewLifeX/X/tree/master/...
大石头 · 2023-06-22 · 浏览 4,240
Json序列化
Json是现代化应用系统最常用的数据交换格式,NewLife.Core 从2010年开始就独立实现了Json序列化和反序列化。准确的说,NewLife.Core 内置实现了三套Json序列化,用于不同场景。
大石头 · 2023-06-22 · 浏览 8,552
高德地图接口AMap
常见的企业内部应用系统中,多少会需要用到地区管理和地址管理,特别是跟物联网沾边的企业。此时就很可能需要用到地理编码Geocoder服务,把结构化地址解析为经纬度坐标。NewLife.Map 集成了高德地图接口 AMap 类,提供地理编码、逆地理编码、路径规划和地址检索。源码内置了一个AppKe...
大石头 · 2023-06-22 · 浏览 7,465
百度地图接口BaiduMap
常见的企业内部应用系统中,多少会需要用到地区管理和地址管理,特别是跟物联网沾边的企业。此时就很可能需要用到地理编码Geocoder服务,把结构化地址解析为经纬度坐标。NewLife.Map 集成了百度地图接口 BaiduMap 类,提供地理编码、逆地理编码、路径规划和地址检索。源码内置了一个A...
大石头 · 2023-06-22 · 浏览 4,809
分布式数字签名令牌TokenProvider
在分布式系统中,令牌签发系统往往需要跟令牌应用系统分离,并且应用系统可以独立验证令牌,无需请求签发系统接口。数字签名令牌属于发明专利《基于令牌协议的令牌组网构建方法》(已授权专利号201510213377.X)的一部分,设计于2013年!在物联网平台中,设备验证服务器以及设备接入服务器是分开的...
大石头 · 2023-06-22 · 浏览 4,203
弱引用委托WeakAction
常见的事件和委托,都包括两部分:对象和方法,当然如果委托到静态方法上,对象是为空的。如果把事件委托到某个对象的方法上,同时就间接的引用了这个对象,导致其一直无法被回收,从而造成内存泄漏。弱引用Action,原理就是把委托拆分,然后弱引用对象部分,需要调用委托的时候,再把对象“拉”回来,如果对象...
大石头 · 2023-06-22 · 浏览 4,110
压缩解压缩
核心库NewLife.Core内置了压缩相关功能扩展,并且独立实现的ZipFile还支持.NET2.0和.NET4.0,该类在.NET4.5以后成为.NET Framework框架标配。Nuget包:NewLife.Core源码:https://github.com/NewLifeX/X/bl...
大石头 · 2023-06-22 · 浏览 4,129
轻量级应用主机Host
ASP.NET Core具备一个完整的Hosting架构,允许用户注入各种服务,并提供日志、配置等大量基础组件。该Hosting架构适用于Web项目和WebApi项目,而对于非Web项目(定时任务、消息队列消费处理、大数据计算等)则显得没那么合适了。官方推出了 辅助角色服务 的项目模板,它的项...
大石头 · 2024-12-16 · 浏览 7,276
物联网NewLife.MQTT
MQTT协议是物联网领域最流行的通信协议!NewLife.MQTT包含了MQTT的完整实现,并实现了客户端MqttClient,以及服务端MqttServer。其中MqttServer仅实现基本网络框架,支持消息收发,完整的消息交换功能位于商用版IoT平台NewLife.IoT中。Nuget包...
大石头 · 2024-04-15 · 浏览 8,930
内存缓存MemoryCache
内存缓存MemoryCache实现了ICache接口,Redis同样实现了ICache接口,两者在缓存操作上达到了高度抽象统一。应用设计时一律使用ICache接口,开发环境装配为MemoryCache,生产环境根据分布式需要可以装配为Redis。如果应用系统没有分布式需求,继续使用Memory...
大石头 · 2024-12-17 · 浏览 5,413
脚本引擎ScriptEngine(动态编译,XScript核心)
脚本引擎 ScriptEngine 设计于2012年,为了配合XCode的动态模型,在内存中动态生成实体类并执行,后来大量用于执行动态表达式,最终拓展为独立产品 XScript 。Nuget包:NewLife.Core源码:https://github.com/NewLifeX/X/blob/...
大石头 · 2023-06-22 · 浏览 9,685
并行模型Actor
并行开发时经常需要关注加锁和原子操作等一系列线程问题,而Actor模型内部状态由它自己维护,内部数据只能自己修改,因此Actor不需要过多关注线程问题。Nuget包:NewLife.Core源码:https://github.com/NewLifeX/X/blob/master/NewLife...
大石头 · 2023-06-22 · 浏览 5,912