乐于分享
好东西不私藏

从源码编译 SonnetDB:开发环境搭建指南

从源码编译 SonnetDB:开发环境搭建指南

对于希望在 SonnetDB 基础上进行二次开发、贡献代码或深入了解内部机制的开发者,从源码编译是最佳选择。本文将详细介绍如何在本地环境中搭建 SonnetDB 的编译和开发环境。

环境要求

在开始之前,请确保您的开发环境满足以下要求:

  • .NET 10 SDK
    :SonnetDB 基于 .NET 10 构建,您需要安装对应版本的 SDK。可以从 dotnet.microsoft.com 下载最新的 .NET 10 SDK。
  • Git
    :用于克隆源代码仓库。
  • IDE 或编辑器
    :推荐使用 Visual Studio 2022+、JetBrains Rider 或 VS Code 配合 C# 扩展。
  • 操作系统
    :Windows、Linux 或 macOS 均可,SonnetDB 是跨平台项目。

获取源码

首先,从 GitHub 克隆 SonnetDB 的源代码仓库:

git clone https://github.com/maikebing/SonnetDB.git
cd SonnetDB

仓库中包含了完整的解决方案文件。您可以使用 git branch -a 查看可用的分支,通常 main 分支是最新的稳定开发分支。

编译项目

SonnetDB 的解决方案包含多个项目,涵盖了核心引擎、HTTP API 服务、CLI 工具和 Web 管理界面。使用 .NET CLI 进行编译:

# 还原依赖
dotnet restore

# 编译整个解决方案(Release 模式)
dotnet build -c Release

# 或者编译特定项目
dotnet build -c Release src/SonnetDB/SonnetDB.csproj

编译完成后,您可以在各项目的输出目录中找到生成的二进制文件。核心数据库引擎的 DLL 文件可以直接被其他 .NET 项目引用。

运行测试

SonnetDB 包含了全面的单元测试和集成测试套件。运行测试可以帮助您验证编译结果是否正确,同时也是了解代码行为的有效途径:

# 运行所有测试
dotnet test

# 运行特定测试项目的测试
dotnet test tests/SonnetDB.Tests/SonnetDB.Tests.csproj

测试框架支持并行执行,测试套件通常能在几分钟内完成。如果所有测试通过,说明您的编译环境已经正确配置。

IDE 配置建议

Visual Studio Code:安装 C# Dev Kit 扩展和 .NET MAUI 扩展(用于 Web 管理界面相关开发)。打开项目根目录,VS Code 会自动加载解决方案。

JetBrains Rider:直接打开解决方案文件(.sln),Rider 会自动识别项目结构和依赖关系。Rider 对 .NET 项目的支持非常完善,代码分析、重构和调试体验优异。

Visual Studio 2022+:打开解决方案文件,确保安装了 ASP.NET 和 Web 开发工作负载。

编译 Web 管理界面

SonnetDB 的 Web 管理界面基于 React 构建,位于仓库的 web/ 目录下。如果您需要修改管理界面,需要先安装 Node.js 并编译前端资源:

cd web
npm install
npm run build

编译后的静态资源会自动复制到服务端项目的 wwwroot 目录中。

启动开发模式

编译成功后,您可以直接启动 SonnetDB 服务进行开发调试:

# 以开发模式启动
dotnet run --project src/SonnetDB -c Debug

对于调试模式,您可以在 IDE 中设置断点,逐步跟踪代码执行流程,这对于理解 SonnetDB 的内部工作机制非常有帮助。建议从 Program.cs 入口文件开始,逐步深入到存储引擎、查询引擎和 HTTP API 层。

从源码开始探索,您不仅能获得对 SonnetDB 更深层次的理解,还能参与到开源社区中,提交 Issue、PR,共同推动项目的发展。