GeWuYou ebdc231c07 docs(sdk): 更新文档规范并添加VitePress配置
- 调整文档真实性原则,以源码和测试为首要证据源
- 新增模块README要求,规定所有用户包必须有说明文档
- 更新仓库文档规范,要求根README与文档站点分类一致
- 添加VitePress配置文件,支持中文搜索和泛型转义
- 创建入门指南文档,说明GFramework模块组成和接入路径
- 添加快速开始教程,演示Core模块最小使用示例
- 为Core模块添加详细README文档
- 为Core.Abstractions添加契约层说明文档
- 为Core.SourceGenerators添加源码生成器文档
- 为Game模块添加运行时层详细说明文档
2026-04-18 10:08:05 +08:00

2.6 KiB
Raw Blame History

快速开始

本页给出一个只依赖 Core 的最小路径,用来确认你已经成功接入 ArchitectureModelSystem 与旧版命令执行器。

说明:当前仓库同时存在旧版 Command / Query 执行器与新版 CQRS runtime。本页故意先用最短路径说明基础架构如何跑起来如果你要写新功能随后应继续阅读 ../core/cqrs.md

1. 安装最小依赖

dotnet add package GeWuYou.GFramework.Core
dotnet add package GeWuYou.GFramework.Core.Abstractions

2. 定义一个最小架构

using GFramework.Core.Architectures;

public sealed class CounterArchitecture : Architecture
{
    protected override void OnInitialize()
    {
        RegisterModel(new CounterModel());
        RegisterSystem(new CounterSystem());
    }
}

这里要点只有两个:

  • 架构入口是 Architecture
  • 当前版本使用 protected override void OnInitialize() 注册模型、系统和工具

3. 定义一个模型

using GFramework.Core.Model;
using GFramework.Core.Property;

public sealed class CounterModel : AbstractModel
{
    public BindableProperty<int> Count { get; } = new(0);

    protected override void OnInit()
    {
    }
}

BindableProperty<T> 适合承载可观察状态;如果你只需要一个最小例子,保持 OnInit() 为空即可。

4. 定义一个系统

using GFramework.Core.Systems;

public sealed class CounterSystem : AbstractSystem
{
    protected override void OnInit()
    {
    }
}

5. 定义一个命令

using GFramework.Core.Command;

public sealed class IncreaseCountCommand : AbstractCommand
{
    protected override void OnExecute()
    {
        var model = GetModel<CounterModel>();
        model.Count.Value += 1;
    }
}

AbstractCommand 继承自 ContextAwareBase,所以命令内部可以直接访问 GetModel<T>()GetSystem<T>() 等上下文方法。

6. 初始化并执行

var architecture = new CounterArchitecture();
architecture.Initialize();

architecture.Context.SendCommand(new IncreaseCountCommand());

var count = architecture.Context.GetModel<CounterModel>().Count.Value;
Console.WriteLine(count); // 1

如果你能走通这一步,说明以下链路已经成立:

  • 架构初始化
  • 模型 / 系统注册
  • 上下文访问
  • 旧版命令执行

下一步

  • 想切到推荐的新请求模型:看 ../core/cqrs.md
  • 想进入游戏层能力:看 ../game/index.md
  • 想看模块入口而不是栏目页:回到对应模块目录下的 README.md