Skip to content

tiouoo/Aurelio

Repository files navigation

Aurelio

现代化的跨平台桌面工作台

License .NET Avalonia Platform GitHub Star GitHub Forks GitHub Watchers

📖 项目简介

Aurelio 是一个基于 .NET 8 和 Avalonia UI 框架开发的现代化跨平台桌面工作台。它提供了强大的插件系统和丰富的功能模块,支持高度可扩展的应用程序架构。

🎯 主要特性

  • 🔌 插件系统:强大的插件架构,支持功能扩展和定制
  • 📁 文件管理:内置文件浏览器和多种文件查看器
  • 🖥️ 终端集成:内置终端模拟器,支持命令行操作
  • 🌍 多语言支持:支持中文、英文等多种语言
  • 🎨 现代化界面:基于 Fluent Design 的美观用户界面
  • ⚡ 高性能:基于 .NET 8 的高性能运行时
  • 🔧 可扩展性:模块化设计,易于扩展和定制

🛠️ 技术栈

核心框架

  • .NET 8.0:现代化的 .NET 运行时
  • Avalonia UI 11.3.2:跨平台 UI 框架
  • FluentAvalonia UI:Fluent Design 风格组件库
  • ReactiveUI:响应式 MVVM 框架

主要依赖

  • CommunityToolkit.Mvvm:MVVM 工具包
  • Newtonsoft.Json:JSON 序列化
  • SkiaSharp:2D 图形渲染
  • SharpCompress:压缩文件处理
  • Flurl.Http:HTTP 客户端

开发工具

  • AvaloniaEdit:代码编辑器组件
  • Ursa Controls:额外的 UI 控件库
  • Semi.Avalonia:Semi Design 主题

📥 下载安装

📦 预编译版本下载

💡 快速体验🔗 点击这里下载最新版本

GitHub Release

🖥️ 各平台下载

Windows 平台

架构 安装包 便携版
x64 📦 Aurelio.win.x64.installer.exe 📁 Aurelio.win.x64.executable.zip
x86 📦 Aurelio.win.x86.installer.exe 📁 Aurelio.win.x86.executable.zip
ARM64 📦 Aurelio.win.arm64.installer.exe 📁 Aurelio.win.arm64.executable.zip

macOS 平台

架构 DMG 安装包 APP 压缩包
x64 🍎 Aurelio.osx.mac.x64.dmg 📁 Aurelio.osx.mac.x64.app.zip
ARM64 🍎 Aurelio.osx.mac.arm64.dmg 📁 Aurelio.osx.mac.arm64.app.zip

Linux 平台

架构 AppImage
x64 🐧 Aurelio.linux.x64.AppImage
ARM64 🐧 Aurelio.linux.arm64.AppImage
ARM 🐧 Aurelio.linux.arm.AppImage

🖥️ 平台运行概览

Windows Linux macOS
x64 ✅️ ✅️
x86 ✅️ ✅️
ARM64 ✅️ ✅️
ARM32

图例说明:

  • ✅ 完全支持并经过测试
  • ❔ 理论支持,但未经充分测试
  • ❌ 不支持

系统要求

  • 操作系统:Windows 7+、macOS 10.15+、Linux
  • .NET Runtime:.NET 8.0
  • 内存:至少 512MB RAM
  • 存储空间:至少 120MB 可用空间

从源码构建

  1. 克隆仓库

    git clone https://github.com/Yeppioo/Aurelio.git
    cd Aurelio
  2. 安装 .NET 8 SDK

    访问 .NET 官网 下载并安装 .NET 8 SDK

  3. 还原依赖

    dotnet restore
  4. 构建项目

    dotnet build --configuration Release
  5. 运行应用程序

    dotnet run --project Aurelio.Main/Aurelio.Desktop

发布独立应用

# Windows
dotnet publish Aurelio.Main/Aurelio.Desktop -c Release -r win-x64 --self-contained

# macOS
dotnet publish Aurelio.Main/Aurelio.Desktop -c Release -r osx-x64 --self-contained

# Linux
dotnet publish Aurelio.Main/Aurelio.Desktop -c Release -r linux-x64 --self-contained

📁 项目结构

Aurelio/
├── Assets/                          # 资源文件
│   ├── Icon.png                     # 应用程序图标
│   ├── Icon.Border.png              # 带边框图标
│   └── Version.txt                  # 版本信息
├── Aurelio.Main/                    # 主应用程序
│   ├── Aurelio/                     # 核心库
│   │   ├── Public/                  # 公共模块
│   │   │   ├── Module/              # 功能模块
│   │   │   ├── Langs/               # 国际化资源
│   │   │   ├── Controls/            # 自定义控件
│   │   │   └── ViewModels/          # 视图模型
│   │   └── Views/                   # 用户界面
│   │       ├── Main/                # 主窗口
│   │       └── Overlay/             # 覆盖层
│   └── Aurelio.Desktop/             # 桌面应用程序入口
├── Aurelio.Plugin/                  # 插件系统
│   ├── Aurelio.Plugin.Base/         # 插件基础接口
│   ├── Aurelio.Plugin.Simple/       # 简单插件示例
│   └── Aurelio.Plugins/             # 插件示例
│       └── Minecraft/               # Minecraft 插件示例
│           ├── Aurelio.Plugin.Minecraft/  # 主插件
│           └── LiteSkinViewer/      # 皮肤查看器
└── Aurelio.Web/                     # Web 组件

🔌 插件系统

Aurelio 采用模块化的插件架构,支持功能扩展和定制。

插件接口

public interface IPlugin
{
    string Id { get; set; }
    string Name { get; set; }
    string Author { get; set; }
    string Description { get; set; }
    object SettingPage { get; set; }
    Version Version { get; set; }
    RequirePluginEntry[] Require { get; set; }
    object? PackageInfo { get; set; }
    int Execute();
}

插件示例

Minecraft 插件

  • 实例管理:管理多个 Minecraft 游戏实例
  • 账户系统:支持正版和离线账户
  • 皮肤查看器:2D/3D 皮肤预览功能
  • 启动器功能:集成的 Minecraft 启动功能

注:Minecraft 相关功能通过第三方插件提供,不属于核心应用功能

🌍 国际化支持

Aurelio 支持多语言界面:

  • 中文(简体):默认语言
  • 中文(繁体):zh-hant
  • 英文:en

语言资源文件位于 Public/Langs/ 目录下。

🎨 用户界面

主要功能模块

  1. 文件浏览器

    • 支持多种文件格式预览
    • 集成的图片查看器
    • 日志文件查看器
  2. 终端模拟器

    • 内置终端功能
    • 支持命令行操作
  3. 任务中心

    • 后台任务管理
    • 进度监控
  4. 设置页面

    • 应用程序配置
    • 插件管理
    • 主题设置

🔧 开发指南

环境配置

  1. 开发环境要求

    • Visual Studio 2022 或 JetBrains Rider
    • .NET 8.0 SDK
    • Git
  2. 推荐的 IDE 扩展

    • Avalonia for Visual Studio
    • Avalonia for Rider

调试和测试

# 调试模式运行
dotnet run --project Aurelio.Main/Aurelio.Desktop --configuration Debug

插件开发

创建自定义插件的步骤:

  1. 创建插件项目

    dotnet new classlib -n MyCustomPlugin
    cd MyCustomPlugin
    dotnet add reference ../Aurelio.Plugin/Aurelio.Plugin.Base/Aurelio.Plugin.Base.csproj
    dotnet add reference ../Aurelio.Main/Aurelio/Aurelio.csproj
  2. 实现插件接口

    using Aurelio.Plugin.Base;
    
    public class MyPlugin : IPlugin
    {
        public string Id { get; set; } = "com.example.myplugin";
        public string Name { get; set; } = "My Custom Plugin";
        public string Author { get; set; } = "Your Name";
        public string Description { get; set; } = "Plugin description";
        public object SettingPage { get; set; }
        public Version Version { get; set; } = new Version(1, 0, 0);
        public RequirePluginEntry[] Require { get; set; } = [];
        public object? PackageInfo { get; set; }
    
        public int Execute()
        {
            // 插件初始化逻辑
            return 0;
        }
    }
  3. 注册插件事件

    public int Execute()
    {
        InitEvents.AfterUiLoaded += OnAfterUiLoaded;
        return 0;
    }
    
    private void OnAfterUiLoaded(object? sender, EventArgs e)
    {
        // UI 加载完成后的逻辑
    }

📊 功能特性详解

核心功能模块

插件系统

  • 动态加载:支持运行时加载和卸载插件
  • 接口标准化:统一的插件接口规范
  • 依赖管理:自动处理插件间的依赖关系
  • 配置管理:独立的插件配置系统

文件管理功能

支持的文件类型
  • 图片文件:PNG, JPG, GIF, BMP, SVG
  • 文本文件:TXT, LOG, JSON, XML, YAML
  • 代码文件:C#, Java, Python, JavaScript 等
  • 压缩文件:ZIP, RAR, 7Z, TAR
文件操作
  • 快速预览:无需打开外部程序即可预览文件
  • 批量操作:支持批量文件操作
  • 搜索功能:强大的文件搜索和过滤功能
  • 收藏夹:常用文件夹快速访问

用户界面特性

主题系统

  • 深色主题:护眼的深色界面
  • 浅色主题:经典的浅色界面
  • 自动切换:根据系统主题自动切换
  • 自定义主题:支持用户自定义主题色彩

布局管理

  • 标签页系统:多标签页工作流
  • 分屏显示:支持分屏查看多个内容
  • 浮动窗口:可拖拽的浮动面板
  • 自适应布局:响应式界面设计

🔌 插件示例详解

Minecraft 插件(第三方)

作为插件系统的示例,项目包含了一个功能完整的 Minecraft 插件,展示了插件系统的强大能力:

主要功能

  • 实例管理:管理多个独立的 Minecraft 游戏实例
  • 版本管理:支持原版、Forge、Fabric、Quilt、NeoForge 等
  • 模组管理:集成的模组安装和管理功能
  • 账户系统:支持 Microsoft 账户和离线账户
  • 皮肤查看器:2D/3D 皮肤预览功能
  • 启动器功能:完整的游戏启动流程

技术特点

  • 模块化设计:每个功能都是独立的模块
  • 事件驱动:基于事件系统的插件通信
  • 配置管理:独立的插件配置系统
  • UI 集成:无缝集成到主应用界面

注:此插件仅作为插件系统能力的演示,不代表应用程序的核心定位

🔍 故障排除

常见问题

应用程序无法启动

# 检查 .NET 运行时
dotnet --version

# 重新安装依赖
dotnet restore --force

# 清理并重新构建
dotnet clean
dotnet build

插件加载失败

  1. 检查插件文件是否完整
  2. 验证插件依赖是否满足
  3. 查看应用程序日志文件

性能问题

  • 关闭不必要的插件
  • 减少同时打开的标签页数量
  • 检查系统资源使用情况

日志文件位置

  • Windows%APPDATA%\Yeppioo.Aurelio\Logs\
  • macOS~/Library/Application Support/Yeppioo.Aurelio/Logs/
  • Linux~/.config/Yeppioo.Aurelio/Logs/

🤝 贡献指南

我们欢迎社区贡献!请遵循以下步骤:

  1. Fork 项目
  2. 创建功能分支git checkout -b feature/AmazingFeature
  3. 提交更改git commit -m 'Add some AmazingFeature'
  4. 推送分支git push origin feature/AmazingFeature
  5. 创建 Pull Request

开发规范

  • 遵循 C# 编码规范
  • 添加适当的注释和文档
  • 确保代码通过所有测试
  • 保持向后兼容性

📄 许可证

本项目采用 GPL-3.0 许可证。详情请参阅 LICENSE 文件。

📞 联系方式

🙏 致谢

感谢以下开源项目的支持:


⭐ 如果这个项目对您有帮助,请给我们一个 Star!

🐛 发现问题?请提交 Issue

💡 有好的想法?欢迎提交 Pull Request

Made with ❤️ by Yeppioo