230 Commits

Author SHA1 Message Date
GwWuYou
3afef8cb49 feat(storage): 添加细粒度锁机制保证线程安全
- 通过细粒度锁机制保证线程安全,每个键都有独立的锁
- 更新文档说明线程安全特性,不同键的操作可以并发执行
- 添加存储键格式说明,支持使用 / 作为分隔符创建目录层级
- 补充异步操作安全性说明,异步IO仍使用锁保证并发访问安全
2026-01-11 20:46:45 +08:00
GwWuYou
4c997ffc07 refactor(storage): 为FileStorage添加基于key的细粒度线程安全锁
- 引入ConcurrentDictionary存储每个key对应的锁对象
- 在Delete方法中添加key级别锁定确保删除操作的原子性
- 在Exists方法中使用key级别锁定保证存在性检查的线程安全
- 在Read同步方法中添加key级别锁定保护文件读取操作
- 在Write同步方法中添加key级别锁定保护文件写入操作
- 在ReadAsync异步读取方法中使用锁保护文件访问并优化异步IO
- 在WriteAsync异步写入方法中使用锁保护文件访问并优化异步IO
- 更新类注释说明支持细粒度锁的线程安全特性
- 改进XML文档注释的准确性和清晰度
2026-01-11 20:44:26 +08:00
GwWuYou
5dc4feeff2 docs(storage): 更新存储模块文档并增强文件路径安全性
- 添加了完整的 GFramework 存储模块使用指南文档
- 实现了 SanitizeSegment 方法用于清理文件段中的无效字符
- 增强了 ToPath 方法的安全性验证,防止路径逃逸攻击
- 添加了对空键值和包含 .. 字符的键的异常处理
- 实现了路径分段处理和目录自动创建功能
- 统一了路径分隔符处理,支持正斜杠和反斜杠
- 添加了详细的使用示例和注意事项说明
2026-01-11 20:38:53 +08:00
GwWuYou
c3376bf4d5 feat(storage): 添加存储系统接口和文件存储实现
- 定义了IStorage接口提供同步和异步的数据存储操作功能
- 实现了基于文件系统的FileStorage类支持读写删除操作
- 添加了ScopedStorage包装器为存储键提供作用域前缀功能
- 创建了ISerializer接口并实现JsonSerializer使用Newtonsoft.Json
- 在项目中引入Newtonsoft.Json包依赖
2026-01-11 19:56:31 +08:00
GwWuYou
7843e2a14f Merge branch 'main' of github.com:GeWuYou/GFramework 2026-01-11 11:17:41 +08:00
GwWuYou
157b3ce846 refactor(events): 将类型事件系统重构为事件总线
- 将TypeEventSystem重命名为EventBus
- 将IEasyEvent接口重命名为IEvent接口
- 将ITypeEventSystem接口重命名为IEventBus接口
- 更新Architecture类中使用TypeEventSystem为EventBus
- 更新ArchitectureContext中依赖注入参数类型
- 将EasyEvent泛型类重命名为Event泛型类
- 更新所有相关类型引用和实现
- 修改接口继承关系以使用新的事件接口命名
2026-01-11 11:17:30 +08:00
GeWuYou
4c5e3e01a3 docs(core): 更新文档说明架构与平台无关性及新特性
- 更新 Architecture 包文档,强调与 Godot 解耦设计
- 修改 IArchitecture 接口方法参数命名规范
- 添加架构阶段感知接口 IArchitecturePhaseAware 说明
- 补充架构模块接口 IArchitectureModule 和异步初始化接口说明
- 更新架构初始化流程描述,增加模块安装系统介绍
- 修订使用示例,展示依赖注入而非单例访问模式
- 更新 Logging 包文档结构,重新组织核心接口和类说明
- 添加日志工厂提供程序和解析器使用说明
- 修正 Property 包文档中的比较器使用说明
- 更新主 README 强调平台无关性和模块化设计
- 修订架构图和数据流向说明,体现阶段式生命周期管理
- [skip ci]
2026-01-10 12:45:12 +08:00
GwWuYou
8c8555985d refactor(assets): 将系统组件重构为工具组件以优化架构设计
- 重命名 AbstractAssetCatalogSystem 为 AbstractAssetCatalogUtility 并继承 AbstractContextUtility
- 重命名 IAssetCatalogSystem 为 IAssetCatalogUtility 并继承 IContextUtility 接口
- 重命名 IResourceFactorySystem 为 IResourceFactoryUtility 并继承 IContextUtility 接口
- 重命名 AbstractResourceFactorySystem 为 AbstractResourceFactoryUtility 并调整依赖注入方式
- 重命名 IResourceLoadSystem 为 IResourceLoadUtility 并继承 IContextUtility 接口
- 重命名 ResourceLoadSystem 为 ResourceLoadUtility 并更新内部日志输出信息
- 移除 AbstractAudioManagerSystem 和 IAudioManagerSystem 相关代码
- 更新所有相关依赖注入和类型引用以匹配新的工具组件架构
v0.0.104
2026-01-09 19:31:46 +08:00
GwWuYou
38625b80db feat(core): 添加空命令和查询输入类
- 实现了EmptyCommentInput类用于表示无参数命令
- 实现了EmptyQueryInput类用于表示无参数查询
- 两个类分别实现ICommandInput和IQueryInput接口
- 提供了命令模式中输入参数的占位符实现
- 适用于不需要额外输入参数的简单操作场景
v0.0.103
2026-01-07 22:23:05 +08:00
GwWuYou
e000665c67 feat(architecture): 添加上下文工具初始化阶段支持
- 在架构中新增 _mContextUtilities 集合存储未初始化的上下文工具
- 实现工具注册时根据初始化状态决定是否立即初始化上下文工具
- 添加 BeforeUtilityInit 和 AfterUtilityInit 两个新的架构阶段
- 更新架构阶段转换配置以支持工具初始化流程
- 在同步和异步架构测试中验证新的初始化阶段序列
- 完善架构初始化流程日志记录和调试信息
v0.0.102
2026-01-07 21:16:43 +08:00
GwWuYou
0766416f83 feat(architecture): 添加上下文工具支持
- 注册工具时自动设置上下文
- 添加对IContextUtility类型的支持
- 集成extensions命名空间以支持类型检查
v0.0.101
2026-01-07 20:52:50 +08:00
GeWuYou
cfdeb4649b style(core): 统一泛型参数命名规范并完善测试代码
- 将 EasyEvent 类中的泛型参数 Tk 统一改为 TK,保持命名一致性
- 更新所有使用 Tk 的地方为 TK,包括字段、方法参数和触发方法
- 在测试方法末尾添加 return 语句,提高代码可读性
- [skip ci]
2026-01-06 13:05:55 +08:00
GeWuYou
4f01828543 refactor(architecture): 重构架构基类和模型实现
- 移除 Architecture 类中关于业务操作方法的注释说明
- 更新 AsyncTestModel 继承 AbstractModel 并移除上下文设置相关方法
- 添加 ITestModel 接口定义用于测试模型
- 在 SyncArchitectureTests 中添加事件接收和取消注册功能测试
- 创建 TestEvent 和 EmptyEvent 用于事件系统测试
- 修改 TestModel 继承 AbstractModel 并实现 ITestModel 接口
- 添加 TestQuery 类用于测试查询操作功能
- [skip ci]
2026-01-06 12:07:03 +08:00
GwWuYou
e23a53c3d4 feat(template): 添加控制器类模板并更新项目配置
- 添加了控制器类模板文件 ControllerTemplate.cs
- 在项目文件中添加 Godot 目录的排除规则
- 更新项目引用和编译排除规则
- 统一项目配置中的路径格式
- 添加控制器模板的元数据信息
- [skip ci]
2026-01-04 22:50:37 +08:00
GwWuYou
f87c9cf421 style(csharp): 格式化代码样式和优化代码结构
- 统一调整代码注释的缩进格式,保持文档注释的一致性
- 简化对象初始化语法,移除不必要的参数名称指定
- 优化条件语句结构,移除多余的花括号
- 调整方法实现格式,使用表达式主体语法简化代码
- 标准化代码缩进和空格使用,提升代码可读性
- [skip ci]
2026-01-04 22:14:34 +08:00
GwWuYou
18267e7c14 feat(command): 为命令和查询类添加输入参数支持
- 重构 AbstractCommand 类,添加泛型参数 TInput 并要求实现 ICommandInput 接口
- 修改 AbstractCommand.Execute 方法,传入输入参数到 OnExecute 方法
- 重构 AbstractCommand<TInput, TResult> 类,支持输入参数和返回结果
- 更新 AbstractQuery 类,添加泛型参数 TInput 和 TResult 并要求实现 IQueryInput 接口
- 创建 ICommandInput 接口作为命令输入的标记接口
- 创建 IQueryInput 接口定义查询输入规范
- 为所有抽象方法添加参数文档注释
v0.0.100
2026-01-04 22:10:46 +08:00
GwWuYou
029f3a4652 refactor(model): 优化模型架构上下文设置机制
- 移除通过反射调用SetArchitecture方法的方式
- 改为直接调用model.SetContext(Context)方法
- 将AbstractModel基类继承ContextAwareBase
- 删除手动实现的SetContext和GetContext方法
- 简化模型注册流程,提高代码可读性
v0.0.99
2026-01-03 22:10:56 +08:00
GwWuYou
49ceb35156 feat(architecture): 添加环境配置支持并重构架构初始化
- 引入IEnvironment接口和EnvironmentBase抽象类实现环境管理
- 在Architecture类中添加environment参数和Environment属性
- 修改ArchitectureContext构造函数以接收环境对象
- 添加DefaultEnvironment默认环境实现类
- 更新ContextAwareExtensions扩展方法支持环境获取
- 移除NoopLogger和NoopLoggerFactory无操作日志类
- 重构架构初始化流程以包含环境初始化
- 添加GetEnvironment扩展方法用于获取环境对象
v0.0.98
2026-01-03 21:44:22 +08:00
GwWuYou
4adf3f11d4 refactor(godot): 调整命名空间和导入语句
- 移除 GFramework.Godot.Abstractions.assets 命名空间引用
- 添加 System 和 System.Collections.Generic 导入
- 统一使用 GFramework.Godot.assets 命名空间
- 修正 AbstractResourceFactorySystem 中的导入引用
- 更新 IResourceLoadSystem 的命名空间定义
- 调整 ResourceLoadSystem 的导入顺序
v0.0.97
2026-01-03 20:24:31 +08:00
GwWuYou
ba8e9b5bb3 refactor(ResourceFactorySystem): 更新资源工厂系统依赖注入
- 添加 System 命名空间引用
- 将 _assetCatalogSystem 替换为 _resourceLoadSystem
- 保持原有的资产目录系统注入逻辑
v0.0.96
2026-01-03 13:23:48 +08:00
GwWuYou
0c9063a5fd refactor(architecture): 移除架构运行时并使用命令查询总线
- 移除了 IArchitectureRuntime 接口和 ArchitectureRuntime 类
- 在 ArchitectureContext 中添加了对 ICommandBus 和 IQueryBus 的依赖注入
- 修改 Architecture 类以使用 CommandBus 和 QueryBus 替代 Runtime
- 更新 ArchitectureServices 以提供 CommandBus 和 QueryBus 服务
- 将组件初始化逻辑从 if-else 改为 switch 语句
- 更新 ContextAwareBase 以使用新的 GetFirstArchitectureContext 方法
- 添加了 CommandBus 和 QueryBus 的实现类
- 修复了 Godot 模块中系统获取的重复代码问题
v0.0.95
2026-01-03 12:07:32 +08:00
GwWuYou
f88f90f394 feat(signal): 为SignalBuilder添加连接标志参数支持
- 为To方法添加GodotObject.ConnectFlags参数,默认为null
- 为ToAndCall方法添加GodotObject.ConnectFlags参数,默认为null
- 重构连接逻辑使用合并后的标志值
- 更新XML文档注释包含新参数说明
v0.0.94
2026-01-02 21:37:00 +08:00
GwWuYou
98f343d78e feat(signal): 添加信号连接并立即调用功能
- 实现 ToAndCall 方法连接信号到指定可调用对象
- 支持传递参数并在连接后立即执行调用
- 返回当前构建器实例以支持链式调用
- 完善方法注释文档说明功能用途
- 保持原有 API 结构不变确保兼容性
2026-01-02 21:30:15 +08:00
GwWuYou
2bc5a08d74 refactor(signal): 将SignalBuilder的参数类型从Node改为GodotObject
- 修改SignalBuilder构造函数参数类型从Node为GodotObject
- 修改SignalBuilder.End()方法返回类型从Node为GodotObject
- 修改SignalFluentExtensions.Signal扩展方法参数名和类型从Node为GodotObject
- 更新XML文档注释中的参数描述
v0.0.93
2026-01-02 21:14:36 +08:00
GwWuYou
cacd82d7b7 refactor(signal): 优化 SignalBuilder 的 To 方法实现
- 将方法功能描述从"将信号连接到指定的处理方法"更新为"连接信号到指定的可调用对象"
- 为 To 方法添加返回值类型 SignalBuilder 以支持链式调用
- 简化连接逻辑,移除不必要的 if-else 分支
- 添加 End 方法用于返回目标节点
- 更新参数说明文档
v0.0.92
2026-01-02 20:46:53 +08:00
GwWuYou
cb17d9ecdd refactor(ci): 优化 GitHub Actions 发布工作流
- 使用 softprops/action-gh-release 替换 actions/create-release
- 简化发布创建和资产上传流程
- 移除手动 curl 上传 .nupkg 文件的复杂脚本
- 直接通过 files 参数支持通配符上传所有包文件
- 保持发布描述和版本信息功能
- 减少工作流步骤数量,提高可维护性
v0.0.91
2026-01-02 20:31:22 +08:00
GwWuYou
a34aa2388a feat(signal): 添加信号连接构建器和流畅API扩展
- 实现 SignalBuilder 类用于流畅方式连接 Godot 信号
- 提供 WithFlags 方法设置连接标志
- 提供 To 方法将信号连接到指定处理方法
- 添加 SignalFluentExtensions 扩展方法提供流畅API
- 支持通过扩展方法创建信号构建器实例
2026-01-02 20:22:28 +08:00
GwWuYou
330a06c018 chore(workflow): 调整自动标签工作流中的条件判断顺序
- 交换了 "[skip]" 和 "[no tag]" 关键词的检查顺序
- 保持了原有的跳过标签创建的功能逻辑
- 优化了条件判断的可读性
- [skip]
2026-01-02 13:55:36 +08:00
GwWuYou
3a2ec6f7fc chore(workflow): 移除自动标签工作流中的跳过发布检查
- 从条件判断中移除了 [skip release] 关键词检查
- 保留了 [no tag] 和 [skip] 关键词的跳过逻辑
- 简化了提交信息的跳过条件判断流程
- [skip]
2026-01-02 13:52:52 +08:00
GwWuYou
4022600cb1 chore(workflow): 更新自动标签跳过关键词检测逻辑
- 修改跳过关键词检测条件,支持 [skip release] 标记
- 保持对 [no tag] 和 [skip] 标记的兼容性
- 优化条件判断表达式结构
2026-01-02 13:49:46 +08:00
GwWuYou
0a70cbfb86 chore(workflow): 调整自动标签工作流中的日志输出格式
- 修复了最后提交信息日志的缩进格式
- 统一了工作流中的代码缩进风格
- [skip]
2026-01-02 13:47:28 +08:00
GwWuYou
dad9e88ce4 fix(ci): 修复自动标签工作流中的跳过条件匹配
- 修正了正则表达式以正确匹配跳过标签的关键词
- 简化了条件判断逻辑,提高脚本可读性
- 移除了多余的换行和格式问题
- 保持了原有的跳过功能但优化了实现方式
- [skip]
2026-01-02 13:46:16 +08:00
GwWuYou
14d8fbbdd8 chore(workflow): 更新工作流配置以支持跳过关键词和发布动作版本
- 添加 [skip] 关键词支持以跳过标签创建
- 将发布工作流中的 create-release 动作从 v1 更新到 v2
- 保持现有的 [skip release] 和 [no tag] 关键词功能
- [skip]
2026-01-02 13:42:51 +08:00
GwWuYou
ef7d53dfb6 refactor(architecture): 优化模块安装日志输出
- 移除模块名称后缀的".Module",保持日志简洁一致
- 统一安装前后的日志格式
- 提高日志可读性,便于调试和监控
v0.0.90
2026-01-02 13:37:55 +08:00
GwWuYou
8bccd0fa7f refactor(architecture): 优化模块安装日志记录
- 提取模块类型名称到局部变量以避免重复调用
- 统一使用变量名简化日志消息中的模块名称引用
- 保持原有日志功能不变,仅优化代码结构
2026-01-02 13:37:11 +08:00
GwWuYou
3b8671d22d chore(workflow): 优化自动标签和发布工作流配置
- 调整 auto-tag 工作流触发条件,仅在 push 事件时执行
- 添加并发控制组配置避免重复执行
- 优化标签版本获取逻辑,使用 git tag 命令替代 describe
- 修复版本号解析方式,使用 IFS 分割替代 cut 命令
- 添加标签存在性检查,避免重复创建相同标签
- 为 publish 工作流添加详细功能注释和说明
- 优化 NuGet 包推送步骤的描述信息
- 改进 GitHub Release 创建和资产上传的注释说明
2026-01-02 13:32:35 +08:00
GwWuYou
f7542cbc98 feat(workflow): 为自动标签工作流添加.NET测试步骤
- 在auto-tag.yml中添加.NET环境设置步骤
- 添加NuGet包缓存配置以优化构建性能
- 添加依赖项恢复、构建和测试步骤
- 从publish.yml中移除重复的依赖项恢复和测试步骤
- 优化工作流配置以提高构建效率
2026-01-02 13:18:12 +08:00
GwWuYou
6b8a8660ef feat(logging): 更新 Godot 日志记录器实现
- 添加时间戳格式化到日志前缀中
- 为日志级别字符串添加右对齐格式
- 将异常信息直接追加到日志消息中
- 更新致命错误、错误、警告和普通日志的输出方法
- 添加了更详细的日志格式包括时间戳、级别和名称
v0.0.89
2026-01-02 12:52:58 +08:00
GwWuYou
333cefa84e refactor(logging): 优化日志记录器的类型名称获取方式
- 修复了Architecture模块安装时的日志记录器类型名称
- 统一了IocContainer中日志记录器的类型名称获取逻辑
- 重构了AbstractSystem中日志记录器的类型名称处理
- 改进了AbstractContextUtility中日志记录器的类型名称获取
- 通过变量缓存避免重复调用GetType().Name提高性能
2026-01-02 12:50:22 +08:00
GwWuYou
e543ef9baf refactor(tests): 提取架构初始化失败断言方法
- 添加 ArchitecturePhase 枚举的 using 引用
- 提取 AssertInitializationFailed 方法用于验证初始化失败状态
- 简化 AddPostRegistrationHook 中的 lambda 表达式语法
- 使用新提取的断言方法替换重复的断言逻辑
v0.0.88
2026-01-02 12:20:17 +08:00
GwWuYou
e19f4ce5a1 refactor(architecture): 重构架构初始化方法和测试基类
- 将InitializeAsync方法改为真正的异步方法并正确等待内部初始化
- 移除多余的返回语句以符合异步模式
- 创建TestArchitectureBase基类来统一测试架构的公共功能
- 将AsyncTestArchitecture和SyncTestArchitecture继承自TestArchitectureBase
- 移除重复的属性和方法实现
- 添加完整的异步架构测试用例
- 包括组件初始化、阶段转换、异常处理等测试场景
2026-01-02 12:17:15 +08:00
GwWuYou
3729e2ead2 feat(architecture): 添加架构初始化失败处理和阶段转换规则
- 将 CurrentPhase 属性改为公共读取私有设置
- 在 Initialize 和 InitializeAsync 方法中添加异常处理机制
- 添加 ArchitectureFailedInitializationEvent 事件类型
- 定义架构阶段转换规则,支持失败初始化状态转换
- 添加 FailedInitialization 枚举值
- 在同步测试架构中添加后注册钩子功能
- 重构测试基类,移除重复的测试方法
- 添加架构初始化失败时的错误日志记录
- 实现初始化失败时自动进入 FailedInitialization 阶段
2026-01-02 11:49:12 +08:00
GwWuYou
78da01878b test(architecture): 添加异步架构测试并重构测试基类
- 创建 AsyncTestArchitecture 类用于异步测试
- 添加 AsyncTestSystem 实现异步初始化系统
- 创建 ArchitectureTestsBase 基类统一同步异步测试逻辑
- 实现 AsyncArchitectureTests 异步架构测试用例
- 将同步测试重构为继承自 ArchitectureTestsBase
- 移除重复的测试方法实现
- 重命名模型初始化状态属性为 Initialized
2026-01-02 10:53:55 +08:00
GwWuYou
67b0e83da4 refactor(architecture): 重构架构初始化逻辑并添加异步支持
- 修改模块安装日志格式,添加.Module后缀
- 重命名_mInited字段为_mInitialized以提高语义清晰度
- 将EnterPhase方法设为protected virtual以支持继承扩展
- 将阶段变更通知的日志级别从Debug调整为Trace
- 为NotifyPhase方法添加生命周期钩子的日志记录
- 实现同步和异步初始化方法(Initialize和InitializeAsync)
- 创建InitializeComponentAsync方法统一处理组件初始化逻辑
- 重构InitializeInternalAsync方法实现完整的异步初始化流程
- 重命名测试架构类TestArchitecture为SyncTestArchitecture
- 添加异步测试模型AsyncTestModel用于验证异步初始化功能
- 添加失败模型FailingModel用于测试异常处理机制
- 重命名系统测试类的初始化和销毁状态属性
- 创建新的同步架构测试类SyncArchitectureTests替代原有测试
- 删除已过时的ArchitectureInitializationTests测试类
2026-01-02 10:39:52 +08:00
GwWuYou
6475d2c421 fix(logging): 调整日志级别输出方法
- 将 Fatal 级别日志从 PrintErr 改为 PushError
- 重新排列 switch 语句中的 case 顺序
- 确保 Fatal 和 Error 级别使用正确的 Godot 日志方法
2026-01-02 09:58:43 +08:00
GwWuYou
45ba75c0ad refactor(architecture): 重构抽象架构类的初始化和锚点管理
- 添加架构配置、服务和上下文依赖注入支持
- 将静态架构锚点名称改为动态实例字段
- 实现基于类型名称和哈希码的唯一锚点命名机制
- 更新锚点创建和生命周期绑定逻辑
- 移除硬编码的常量名称,提高架构实例唯一性
v0.0.87
2026-01-01 22:58:56 +08:00
GwWuYou
2f5af5c067 refactor(architecture): 移除架构上下文中的日志属性依赖
- 从 ArchitectureContext 构造函数中移除 LoggerProperties 参数
- 更新 Architecture 类中上下文初始化逻辑,不再传递日志属性
- 优化事件系统中的空值安全处理
- 修正 EasyEvent 泛型类中的类型参数命名
- 移除不再需要的 IsExternalInit 内部实现
- 更新包引用配置添加 PrivateAssets 属性
v0.0.86
2026-01-01 22:13:06 +08:00
GwWuYou
0599f289f0 refactor(godot): 重构资源工厂系统架构
- 移除 IArchitecturePhaseAware 接口依赖
- 将 OnArchitecturePhase 方法改为重写基类方法
- 添加 Godot 模块命名空间占位类型
- 移除项目中未使用的 NUnit 包引用
2026-01-01 21:48:21 +08:00
GwWuYou
f620dea073 refactor(architecture): 重构日志系统和配置属性结构
- 将日志工厂配置改为日志属性配置,使用LoggerProperties替代ILoggerFactory
- 引入ArchitectureProperties替代ArchitectureOptions,统一架构配置属性
- 修改日志记录器创建方式,使用LoggerFactoryResolver.Provider统一管理
- 重构控制台日志工厂提供程序接口,移除minLevel参数
- 更新架构配置接口和上下文接口中的日志相关属性
- 移除Godot日志生成器相关的源代码生成器和特性
- 更新源代码生成器中的日志创建逻辑,使用新的日志工厂解析器
2026-01-01 21:39:08 +08:00
GwWuYou
435c3398fc feat(logging): 添加日志级别配置和工厂提供程序
- 为 ILoggerFactory 接口添加 minLevel 参数支持
- 实现 ConsoleLoggerFactoryProvider 和 GodotLoggerFactoryProvider
- 创建 LoggerFactoryResolver 用于管理日志工厂提供程序
- 为 NoopLoggerFactory 添加日志级别参数
- 在 LogAttribute 中添加 MinLevel 属性
- 更新项目引用以支持日志级别配置功能
2026-01-01 20:37:12 +08:00