解决MySql布尔型新旧版本兼容问题,采用枚举来表示布尔型的数据表。由正向工程赋值
大石头 authored at 2018-05-15 21:21:05
12.42 KiB
X
# NewLife.Core 功能清单 > 版本:v11.17 | 日期:2026-07-15 | 从代码逆向整理 + 审计 本文档以 Mx-y 编码追踪 NewLife.Core 全部功能点的实现、测试和注释状态。需求定义见[需求文档](/NewLife/X/Blob/dev/Doc/需求文档.md),架构设计见[架构设计](/NewLife/X/Blob/dev/Doc/架构设计.md)。 ## 统计 | 指标 | 数值 | |------|:----:| | 功能点总数 | 120 | | 实现完成(✅) | 120 | | 测试通过(✅) | 117 | | 测试通过(🟡 环境敏感) | 1 | | 测试缺失(❌) | 0 | | 测试不适用(—) | 0 | | 测试排除(⛔) | 2 | | 注释完整(✅) | 120 | | 注释待完善(🟡) | 0 | --- ## M1 基础扩展 | 编码 | 功能 | 实现 | 测试 | 注释 | 说明 | |------|------|:----:|:----:|:----:|------| | M1-1 | 类型转换 | ✅ | ✅ | ✅ | `Utility.cs` ToInt/ToBoolean/ToDateTime 等 | | M1-2 | 字符串扩展 | ✅ | ✅ | ✅ | `StringHelper.cs` | | M1-3 | 路径扩展 | ✅ | ✅ | ✅ | `PathHelper.cs`,含 PathHelperHashTests | | M1-4 | 数据扩展 | ✅ | ✅ | ✅ | `IOHelper.cs` | | M1-5 | 进程扩展 | ✅ | ✅ | ✅ | `ProcessHelper.cs` | | M1-6 | 运行时信息 | ✅ | ✅ | ✅ | `Runtime.cs` | | M1-7 | 可销毁基类 | ✅ | ✅ | ✅ | `DisposeBase.cs` | | M1-8 | 反射扩展 | ✅ | ✅ | ✅ | `Reflect.cs`, `AssemblyX.cs` | | M1-9 | 拼音库 | ✅ | ✅ | ✅ | `PinYin.cs` | | M1-10 | 弱引用委托 | ✅ | ✅ | ✅ | `WeakAction.cs` | | M1-11 | 时间提供者 | ✅ | ✅ | ✅ | `TimeProvider.cs` 跨版本统一时间抽象,低版本 .NET 兼容填充,含 TimeProviderTests | | M1-12 | 字典数据源 | ✅ | ✅ | ✅ | `IDictionarySource.cs` 对象转名值字典接口,SystemJson 转换器覆盖 | | M1-13 | 机器信息 | ✅ | ✅ | ✅ | `MachineInfo.cs` 获取操作系统/硬件信息,支持 Windows 和 Linux,含 MachineInfoTests | ## M2 日志与追踪 | 编码 | 功能 | 实现 | 测试 | 注释 | 说明 | |------|------|:----:|:----:|:----:|------| | M2-1 | 统一日志接口 | ✅ | ✅ | ✅ | `ILog.cs` | | M2-2 | 文件日志 | ✅ | ✅ | ✅ | `TextFileLog.cs` | | M2-3 | 控制台日志 | ✅ | ✅ | ✅ | `ConsoleLog.cs` | | M2-4 | 网络日志 | ✅ | ✅ | ✅ | `NetworkLog.cs` | | M2-5 | 组合日志 | ✅ | ✅ | ✅ | `CompositeLog.cs` | | M2-6 | 链路追踪 | ✅ | ✅ | ✅ | `ITracer.cs` + `DefaultTracer`,有 TracerTests | | M2-7 | 性能计数器 | ✅ | ✅ | ✅ | `PerfCounter.cs` | | M2-8 | 日志级别控制 | ✅ | ✅ | ✅ | `LevelLog.cs` | | M2-9 | 全局日志入口 | ✅ | ✅ | ✅ | `XTrace.cs` | | M2-10 | ETW 日志监听 | ✅ | ✅ | ✅ | `LogEventListener.cs`,含 LogEventListenerTests | ## M3 定时调度 | 编码 | 功能 | 实现 | 测试 | 注释 | 说明 | |------|------|:----:|:----:|:----:|------| | M3-1 | 高级定时器 | ✅ | ✅ | ✅ | `TimerX.cs` | | M3-2 | Cron 表达式 | ✅ | ✅ | ✅ | `Cron.cs` | | M3-3 | 定时调度器 | ✅ | ✅ | ✅ | `TimerScheduler.cs` | | M3-4 | 线程池扩展 | ✅ | ✅ | ✅ | `ThreadPoolX.cs` | ## M4 序列化 | 编码 | 功能 | 实现 | 测试 | 注释 | 说明 | |------|------|:----:|:----:|:----:|------| | M4-1 | Span 读取器 | ✅ | ✅ | ✅ | `SpanReader.cs` 零分配高性能二进制流解析器,支持大小端 | | M4-2 | Span 写入器 | ✅ | ✅ | ✅ | `SpanWriter.cs` 零分配高性能二进制数据写入器,支持大小端 | | M4-3 | Span 辅助 | ✅ | ✅ | ✅ | `SpanHelper.cs` Span/ReadOnlySpan 扩展方法集 | | M4-4 | 池化写入器 | ✅ | ✅ | ✅ | `PooledByteBufferWriter.cs` 基于 ArrayPool 的高效缓冲写入器,含 PooledByteBufferWriterTests | | M4-5 | JSON 序列化 | ✅ | ✅ | ✅ | `Json.cs`,JsonParser + JsonReader 均有测试 | | M4-6 | XML 序列化 | ✅ | ✅ | ✅ | `Xml.cs`,含 XmlTests + XmlParserTests | | M4-7 | 二进制序列化 | ✅ | ✅ | ✅ | `Binary.cs` | | M4-8 | Span 序列化 | ✅ | ✅ | ✅ | `SpanSerializer.cs` | | M4-9 | CSV 解析 | ✅ | ✅ | ✅ | `CsvFile.cs` | | M4-10 | CSV 数据库 | ✅ | ✅ | ✅ | `CsvDb.cs` | | M4-11 | Excel 读取 | ✅ | ✅ | ✅ | `ExcelReader.cs` + `ExcelWriter.cs` | | M4-12 | 序列化辅助 | ✅ | ✅ | ✅ | `SerialHelper.cs` | | M4-13 | 类型转换器 | ✅ | ✅ | ✅ | `SafeInt64Converter`/`LocalTimeConverter` 有测试,含 TypeConverterTests | ## M5 配置系统 | 编码 | 功能 | 实现 | 测试 | 注释 | 说明 | |------|------|:----:|:----:|:----:|------| | M5-1 | 泛型配置基类 | ✅ | ✅ | ✅ | `Config.cs` | | M5-2 | JSON 配置提供者 | ✅ | ✅ | ✅ | `JsonConfigProvider.cs` | | M5-3 | XML 配置提供者 | ✅ | ✅ | ✅ | `XmlConfigProvider.cs` | | M5-4 | INI 配置提供者 | ✅ | ✅ | ✅ | `IniConfigProvider.cs` | | M5-5 | HTTP 远程配置 | ✅ | ✅ | ✅ | `HttpConfigProvider.cs` | | M5-6 | Apollo 配置 | ✅ | ✅ | ✅ | `ApolloConfigProvider.cs`,含 ApolloConfigProviderTests | | M5-7 | 命令行解析 | ✅ | ✅ | ✅ | `CommandParser.cs` | | M5-8 | 核心配置 | ✅ | ✅ | ✅ | `Setting.cs`,含 SettingTests | | M5-9 | 文件配置提供者 | ✅ | ✅ | ✅ | `FileConfigProvider.cs` | | M5-10 | 系统配置 | ✅ | ✅ | ✅ | `SysConfig.cs` 基于 Config<T> 的系统名称/版本等基本设置,含 SysConfigTest | ## M6 安全加密 | 编码 | 功能 | 实现 | 测试 | 注释 | 说明 | |------|------|:----:|:----:|:----:|------| | M6-1 | 统一加密扩展 | ✅ | ✅ | ✅ | `SecurityHelper.cs` | | M6-2 | RSA 加密 | ✅ | ✅ | ✅ | `RSAHelper.cs` | | M6-3 | DSA 签名 | ✅ | ✅ | ✅ | `DSAHelper.cs` | | M6-4 | 国密 SM4 | ✅ | ✅ | ✅ | `SM4.cs` | | M6-5 | RC4 流加密 | ✅ | ✅ | ✅ | `RC4.cs` | | M6-6 | CRC 校验 | ✅ | ✅ | ✅ | `Crc16.cs`/`Crc32.cs` | | M6-7 | MurmurHash | ✅ | ✅ | ✅ | `Murmur128.cs` | | M6-8 | 密码策略 | ✅ | ✅ | ✅ | `IPasswordProvider.cs` | | M6-9 | 随机数 | ✅ | ✅ | ✅ | `Rand.cs` | | M6-10 | 加密填充 | ✅ | ✅ | ✅ | `PKCS7PaddingTransform.cs`,含 PKCS7PaddingTransformTests | | M6-11 | ASN.1 编解码 | ✅ | ✅ | ✅ | `Asn1.cs`/`Asn1Tags.cs` | ## M7 应用框架 | 编码 | 功能 | 实现 | 测试 | 注释 | 说明 | |------|------|:----:|:----:|:----:|------| | M7-1 | IoC 容器 | ✅ | ✅ | ✅ | `ObjectContainer.cs` | | M7-2 | 应用主机 | ✅ | ✅ | ✅ | `Host.cs`,含 HostTests(已修复并启用) | | M7-3 | 插件框架 | ✅ | ✅ | ✅ | `IPlugin.cs` 接口 + `PluginManager`,含 PluginManagerTests | | M7-4 | Actor 并发 | ✅ | ✅ | ✅ | `Actor.cs` | | M7-5 | 管道模型 | ✅ | ✅ | ✅ | `IPipeline.cs`,PipelineTests | | M7-6 | 延迟队列 | ✅ | ✅ | ✅ | `DeferredQueue.cs` | | M7-7 | 事件总线 | ✅ | ✅ | ✅ | `EventBus.cs`/`EventHub.cs`,含集成测试 | | M7-8 | 消息接口 | ✅ | ✅ | ✅ | `IMessage.cs`,含 MessageDisposeTests | ## M8 缓存系统 | 编码 | 功能 | 实现 | 测试 | 注释 | 说明 | |------|------|:----:|:----:|:----:|------| | M8-1 | 统一缓存接口 | ✅ | ✅ | ✅ | `ICache.cs` 接口,以 MemoryCache 实现做契约测试(ICacheContractTests) | | M8-2 | 内存缓存 | ✅ | ✅ | ✅ | `MemoryCache.cs`,含 MemoryQueue | | M8-3 | 缓存基类 | ✅ | ✅ | ✅ | `Cache.cs`,通过 MemoryCache 间接覆盖 | | M8-4 | 缓存提供者 | ✅ | ✅ | ✅ | `CacheProvider.cs` | | M8-5 | 缓存锁 | ✅ | ✅ | ✅ | `CacheLock.cs`,含 TestLock1-3 在 MemoryCacheTests | | M8-6 | 内存队列 | ✅ | ✅ | ✅ | `MemoryQueue<T>`(在 MemoryCache.cs) | | M8-7 | 对象池 | ✅ | ✅ | ✅ | `Pool.cs` + `ObjectPool.cs` | | M8-8 | 生产者消费者接口 | ✅ | ✅ | ✅ | `IProducerConsumer.cs` 轻量级队列抽象接口,以 MemoryQueue 做契约测试(IProducerConsumerTests) | | M8-9 | 消息队列事件总线 | ✅ | ✅ | ✅ | `QueueEventBus.cs` 基于缓存队列的分布式事件总线,含 QueueEventBusTests | ## M9 数据与算法 | 编码 | 功能 | 实现 | 测试 | 注释 | 说明 | |------|------|:----:|:----:|:----:|------| | M9-1 | 模型数据接口 | ✅ | ✅ | ✅ | `IModel.cs` 字符串键索引模型属性接口,含 IModelTests | | M9-2 | 扩展数据接口 | ✅ | ✅ | ✅ | `IExtend.cs` 对象扩展属性字典接口,含 IExtendTests | | M9-3 | 数据过滤器 | ✅ | ✅ | ✅ | `IFilter.cs` 责任链过滤器模式,含 IFilterTests | | M9-4 | 数据包接口 | ✅ | ✅ | ✅ | `IPacket.cs`,IPacketTests | | M9-5 | 数据包实现 | ✅ | ✅ | ✅ | `Packet.cs`([Obsolete])/`ArrayPacket`/`OwnerPacket` | | M9-6 | 数据包编码器 | ✅ | ✅ | ✅ | `IPacketEncoder.cs` + `DefaultPacketEncoder` 对象与数据包互转,含 IPacketEncoderTests | | M9-7 | 环形缓冲区 | ✅ | ✅ | ✅ | `RingBuffer.cs` | | M9-8 | 雪花 ID | ✅ | ✅ | ✅ | `Snowflake.cs` | | M9-9 | 经纬度哈希 | ✅ | ✅ | ✅ | `GeoHash.cs` + `GeoPoint.cs` | | M9-10 | 内存数据表 | ✅ | ✅ | ✅ | `DbTable.cs` + `DbRow.cs` | | M9-11 | 分页参数 | ✅ | ✅ | ✅ | `PageParameter.cs` | | M9-12 | 采样插值框架 | ✅ | ✅ | ✅ | `IInterpolation.cs`/`ISampling.cs`/`AlignModes.cs` 降采样与插值算法抽象,含 SamplingTests | | M9-13 | 时序降采样 | ✅ | ✅ | ✅ | `AverageSampling.cs`,注释格式已修正 | | M9-14 | 线性插值 | ✅ | ✅ | ✅ | `LinearInterpolation.cs` 🔍审计: 已补充 12 个测试方法 | ## M10 网络通信 | 编码 | 功能 | 实现 | 测试 | 注释 | 说明 | |------|------|:----:|:----:|:----:|------| | M10-1 | TCP 服务端 | ✅ | ✅ | ✅ | `TcpServer.cs`,EchoNetServerTests | | M10-2 | UDP 服务端 | ✅ | 🟡 | ✅ | `UdpServer.cs`/`UdpSession.cs`,含 SessionBaseTests;UDP 吞吐量集成测试环境敏感 | | M10-3 | 网络客户端 | ✅ | ✅ | ✅ | `NetClient.cs` | | M10-4 | 网络会话 | ✅ | ✅ | ✅ | `NetSession.cs` | | M10-5 | 编解码管道 | ✅ | ✅ | ✅ | StandardCodec/LengthFieldCodec | | M10-6 | JSON 编解码 | ✅ | ✅ | ✅ | `JsonCodec.cs`,集成测试 | | M10-7 | WebSocket 编解码 | ✅ | ✅ | ✅ | `WebSocketCodec.cs`,含 WebSocketMessageTests + 集成测试 | | M10-8 | HTTP 服务端 | ✅ | ✅ | ✅ | `HttpServer.cs`,集成测试 | | M10-9 | HTTP 客户端 | ✅ | ✅ | ✅ | `TinyHttpClient.cs`,含 TinyHttpClientTest | | M10-10 | WebSocket | ✅ | ✅ | ✅ | WebSocket 集成测试 + WebSocketMessageTests 全覆盖 | | M10-11 | HTTP 路由 | ✅ | ✅ | ✅ | `HttpRouter.cs`,含 HttpServerTests 路由测试 | | M10-12 | HTTP 中间件 | ✅ | ✅ | ✅ | CorsMiddleware/ErrorHandlerMiddleware 等,含 HttpMiddlewareTests | | M10-13 | 分割粘包处理器 | ✅ | ✅ | ✅ | `SplitDataCodec.cs` 按分割字节处理粘包,含集成测试 | | M10-14 | 消息匹配队列 | ✅ | ✅ | ✅ | `IMatchQueue.cs` 请求响应包配对队列,含 DefaultMatchQueueTests | | M10-15 | DNS 解析处理器 | ✅ | ✅ | ✅ | `DnsHttpHandler.cs` 自定义 DNS 解析与多 IP 轮询 HttpClient 处理器,含 DnsHttpHandlerTests | | M10-16 | APM 追踪处理器 | ✅ | ✅ | ✅ | `HttpTraceHandler.cs` HttpClient APM 链路追踪处理器,含 HttpTraceHandlerTests | ## M11 Web 工具 | 编码 | 功能 | 实现 | 测试 | 注释 | 说明 | |------|------|:----:|:----:|:----:|------| | M11-1 | JWT 令牌 | ✅ | ✅ | ✅ | `JwtBuilder.cs` | | M11-2 | 分布式令牌 | ✅ | ✅ | ✅ | `TokenProvider.cs` | | M11-3 | HTTP 下载 | ✅ | ✅ | ✅ | `WebClientX.cs` | | M11-4 | 插件辅助 | ✅ | ✅ | ✅ | `PluginHelper.cs`,含 PluginHelperTests | | M11-5 | 对象存储客户端 | ✅ | ⛔ | ✅ | `EasyClient.cs` + `IObjectStorage.cs` + `IObjectInfo.cs` 文件存储 HTTP 客户端,EasyClientTests 需外部服务 | | M11-6 | 令牌 HTTP 过滤器 | ✅ | ⛔ | ✅ | `TokenHttpFilter.cs` HTTP 请求令牌注入与自动续期,FilterTest 需外部服务 | ## M12 压缩归档 | 编码 | 功能 | 实现 | 测试 | 注释 | 说明 | |------|------|:----:|:----:|:----:|------| | M12-1 | Tar 归档 | ✅ | ✅ | ✅ | `TarFile.cs`,TarFileTests + TarEntryTests | | M12-2 | 7Zip 压缩 | ✅ | ✅ | ✅ | `SevenZip.cs`,含 SevenZipTests | ## M13 RPC 通信 | 编码 | 功能 | 实现 | 测试 | 注释 | 说明 | |------|------|:----:|:----:|:----:|------| | M13-1 | HTTP API 客户端 | ✅ | ✅ | ✅ | `ApiHttpClient.cs`,Race 测试 | | M13-2 | 负载均衡 | ✅ | ✅ | ✅ | `ILoadBalancer.cs`,三种策略均有测试 | | M13-3 | 服务解析 | ✅ | ✅ | ✅ | `IServiceResolver.cs` | | M13-4 | API 辅助 | ✅ | ✅ | ✅ | `ApiHelper.cs` | --- ## 待修复项 ### 排除编译的测试 | 测试 | 编码 | 原因 | |------|------|------| | `Applications/**` | — | 应用层测试,依赖外部 |