解决MySql布尔型新旧版本兼容问题,采用枚举来表示布尔型的数据表。由正向工程赋值
大石头 authored at 2018-05-15 21:21:05
7.23 KiB
X
# NewLife.Core 版本更新记录 ## v11.14.2026.0402 (2026-04-02) ### 序列化增强 - **SpanWriter 流模式**:SpanWriter 支持 Stream 写入,OwnerPacket/SpanSerializer 支持 Stream 零拷贝双路径,优化大数据序列化 - **ISpanSerializable 增强**:增强 `ISpanSerializable` 支持,编码器可直接处理 `ISpanSerializable` 接口对象,提升序列化性能 - **DbTable Span 序列化**:支持 DbTable 的 Span 序列化与反序列化 - **长度前缀读写**:支持长度前缀数据/字符串读写,优化 `WriteEncodedInt` 空间分配 - **序列化配置重构**:重构序列化配置,新增 `Apply` 方法支持配置复用 - **高级二进制序列化**:零拷贝能力增强 ### JSON 增强 - **JsonElement 类型转换**:支持 `JsonElement` 的类型转换扩展 - **ExtendableConverter 重构**:重构并增强 `ExtendableConverter`,提升兼容性 - **属性名映射优化**:优化 JSON 属性名映射,支持多特性叠加与命名策略 - **成员忽略特性**:剔除标记了 `IgnoreDataMember`/`XmlIgnore` 特性的属性,与 .NET 标准行为对齐 ### 网络层优化 - **LengthFieldCodec 增强**:功能增强,测试覆盖完善 - **IPacket 多包链**:优化 IPacket 多包链操作性能与接口规范 - **SplitDataCodec 修复**:修复发送数据时未追加分割字节的 Bug ### 对象池增强 - **异步借出**:引入对象池 `GetAsync` 能力,支持高并发场景下的异步资源等待 ### 反射与性能 - **Reflect 全面优化**:反射性能全面优化,缓存委托路径,热点路径零反射 - **内存池优化**:数组初始化现代化,使用内存池减少 GC 压力 - **TarFile 性能**:Span 化头部读写与补零复用,提升压缩处理性能 ### 配置与服务 - **IServiceResolver**:新增服务解析器 `IServiceResolver` 接口及配置实现,支持多源服务发现 ### 工具类 - **DefaultUserAgent**:支持对非 ASCII 字符进行 URL 编码,避免请求头异常 - **深拷贝优化**:调整数组、字典的深拷贝逻辑 - **StringHelper.TrimStart 标记过期**:标记 `TrimStart(String, String)` 为过时,迁移至标准 API;优化 `PathHelper` 路径分隔符处理 ### Bug 修复 - **[fix]** 在 SqlServer 批量写入时,`fields` 可能为空数组导致异常 --- ## v11.12.2026.0301 (2026-03-01) ### 序列化增强 - **SpanSerializer**:新增高性能 Span 二进制序列化器,支持零分配读写,性能全面优于传统方式 - **SpanReader/SpanWriter**:新增对 `byte[]` 的直接构造支持 - **字符串读取优化**:优化字符串读取时的内存分配策略,减少堆分配 ### IPacket 重构与性能优化 - **OwnerPacket**:重构为 `sealed` 类,优化内存管理与生命周期 - **切片性能**:优化 IPacket 切片逻辑,减少装箱,完善测试 - **PacketHelper.AsPacket**:新增快捷转换方法,简化 Packet 操作 - **释放机制**:完善 IPacket 与 IMessage 的释放文档与测试 ### 网络层性能优化 - **SendMessageAsync**:重构为非异步路径,降低 Task 分配开销 - **PooledValueTaskSource**:增强池化 ValueTask 源,提升并发吞吐 - **编解码器池化**:对编解码器与事件参数进行池化,Echo 场景性能大幅提升 - **NetServer 实测**:压测跑出 23.4 Gbps 带宽、1.4 亿 pkt/s 吞吐 ### 配置系统热加载重构 - **事件驱动**:FileConfigProvider 从低效轮询改为 FileSystemWatcher 事件驱动热更新 - **双重保险**:Watcher 可用时定时器周期延长为 60 秒作为兜底,保持 Period 属性向后兼容 ### IO 工具增强 - **IOHelper**:新增异步精确读取(`ReadExactlyAsync`)与最少读取(`ReadAtLeastAsync`)方法及测试 - **MaxSafeArraySize**:新增安全最大数组尺寸常量 ### 其他优化 - **DeferredQueue**:支持运行时动态修改处理周期 - **MemoryCache**:`Remove` 单键路径实现零分配优化 - **文件操作**:增强异常处理与哈希校验链路追踪 ### 性能基准测试 - 新增 Benchmark 基准测试项目(net10.0),覆盖 IPacket、MemoryCache、TCP Echo、NetServer 等核心场景 - 发布 IPacket、NetServer、MemoryCache 等性能测试报告 ### 文档与 Copilot 指令 - 新增 NewLife.Net 开发规范文档与 Copilot 协作指令 - 新增 AI 开发流程指令及自治批处理规范 - 优化 Copilot 指令文档结构与基准测试规范 --- ## v11.11.2026.0201 (2026-02-01) ### 核心功能 #### ApiHttpClient 增强 - **多服务竞速与负载均衡**:支持多地址竞速下载,自动选择最快节点 - **哈希校验**:支持文件下载时的哈希校验功能 - **负载均衡器重构**:新增 `RaceLoadBalancer`、`PeerEndpointSelector` 等负载均衡组件 - **节点管理**:自动屏蔽失败节点,支持可配置的启动延迟步长 - **性能追踪**:为竞速调度和下载过程增加 Tracer 埋点 #### 依赖注入(DI)增强 - **ObjectContainer 优化**:增强文档与核心功能,支持延迟 DI 集成 - **Token 模型扩展**:引入 `IToken` 接口,提升令牌模型的扩展性 - **TokenModel 扩展**:新增 Scope 属性支持,改为 partial 类提高扩展容错 ### 网络层优化 - **NetClient 重构**:完善文档与注释,补充单元测试 - **会话/服务器增强**:增强 Net 会话与服务器注释及单元测试 - **消息处理统一**:统一 `IMessage` 处理逻辑,简化消息提取代码,支持原始内容追踪 - **UdpServer 修复**:修正监听 0 端口后没有自动回填到 NetServer 的问题 - **并发性能优化**:优化消息队列并发性能,完善编码器注释 ### 工具类新增与增强 - **UriInfo 增强**:新增 `ToUri` 方法,增强对 IPv6 及多格式 URL 的解析支持 - **Span 扩展**:新增 `Span<byte> Trim` 扩展方法及单元测试 - **配置支持**:`Config<T>` 支持泛型字典(修复 [#172](https://github.com/NewLifeX/X/issues/172)) - **序列化优化**:如果属性定义了 `DataObjectFieldAttribute`,让它们排在前面 ### 文档与协作 - **使用手册**:为主要功能模块编写使用手册(ApiHttpClient、网络库等) - **Copilot 指令优化**: - 新增 Markdown 文档规范 - 完善主动优化原则及细化规范 - 新增防御性注释与日志规范 - 新增集合表达式与 Null 条件运算符指引 - 优化 XCode/Cube 指令读取与 XML 检测策略 - 自动分发 Copilot 指令文件及 MSBuild 支持 ### 测试与质量 - **单元测试大幅增强**:为网络库核心功能、UriInfo、PeerEndpointSelector、ApiHttpClient 等新增大量单元测试 - **测试健壮性提升**:优化测试用例健壮性与时区兼容性,提升 CI 兼容性 ### 其他优化 - **日志优化**:简化线程池和长任务在日志里的名字,让应用启动时的日志更整齐 - **AddServer 改进**:添加服务地址时返回服务节点 --- ## 历史版本 ### v11.10.2026.0101 (2026-01-01) - 重构 IEventBus,支持 EventHub - ApiHttpClient 支持文件下载 --- **说明**: - 正式版发布周期:每月月初 - 测试版发布周期:提交代码到 GitHub 时自动发布 - 版本号格式:正式版 `{主版本}.{子版本}.{年}.{月日}`,测试版 `{主版本}.{子版本}.{年}.{月日}-beta{时分}`