# AvaloniaApp **Repository Path**: yaoshanli/avalonia-app ## Basic Information - **Project Name**: AvaloniaApp - **Description**: Avalonia脚手架 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-23 - **Last Updated**: 2026-05-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AvaloniaApp ## 介绍 AvaloniaApp 是一个基于 [Avalonia UI](https://avaloniaui.net/) 框架开发的跨平台桌面应用程序模板。该项目采用模块化设计,包含多个子项目,分别负责不同的功能模块,便于开发和维护。 项目主要功能包括: - 跨平台桌面应用开发(支持 Windows、Linux、macOS) - MVVM 架构模式 - 动态菜单系统 - 用户管理与认证 - 串口通信支持 - 数据库操作 - API 客户端集成 - 日志系统 ## 软件架构 项目采用分层架构设计,包含以下主要模块: ### 项目结构 ``` AvaloniaApp/ ├── Client.Avalonia/ # 下载客户端示例 ├── Common.Avalonia/ # 公共组件库 ├── MainApp.Avalonia/ # 主应用程序 └── Upgrade.Avalonia/ # 升级客户端示例 └── Server # 更新程序服务端(会被请求两次一次是应用更新,一次是更新程序的更新。) ``` ### 技术栈 - **UI 框架**: Avalonia UI 11.x / 12.x - **编程语言**: C# (.NET 8.0 / .NET 10.0) - **架构模式**: MVVM - **依赖注入**: Microsoft.Extensions.DependencyInjection - **数据库**: SqlSugar - **日志**: Serilog - **API 客户端**: Refit - **加密**: System.Security.Cryptography (RSA/AES) - **程序更新**: GeneralUpdate.ClientCore(客户端更新更新程序) 和 GeneralUpdate.Core(更新程序更新客户端程序),这个框架是一种客户端与更新程序之间互相更新的处理关系。 ### 核心模块说明 #### Common.Avalonia - 公共模型定义 - 通用服务接口 - 值转换器 - 主题资源 #### MainApp.Avalonia (主应用,其中配置了更新,已实现启动更新更新程序) - 用户登录与认证 - 主窗口与导航 - 动态菜单系统 - 用户管理 - 串口通信 - 数据库操作 - 配置管理 - 更新程序生效,需要将Upgrade.Avalonia编译好的程序拷贝到当前已编译的根目录下(记得包含依赖dll) #### Client.Avalonia / Upgrade.Avalonia(以实现) - 下载功能演示UI界面 - 进度跟踪 ## 安装教程 ### 环境要求 - .NET 8.0 SDK 或 .NET 10.0 SDK - Visual Studio 2022+(Windows)/ VS Code / Rider(跨平台) ### 构建步骤 1. 克隆仓库: ```bash git clone https://gitee.com/yaoshanli/avalonia-app.git cd avalonia-app ``` 2. 还原 NuGet 包: ```bash dotnet restore ``` 3. 构建项目: ```bash dotnet build ``` 4. 运行主应用程序: ```bash cd MainApp.Avalonia dotnet run ``` 6. linux发布应用 ```bash dotnet publish -c Release -r linux-x64 --self-contained true //依赖框架发布 dotnet publish -c Release -r linux-x64 --self-contained false chmod +x 应用启动名 ``` 7.window发布应用 ```bash dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=true -p:TrimMode=link -p:SatelliteResourceLanguages=zh-Hans -o ./publish-win ``` ## 使用说明 ### 配置文件 项目使用 `appsettings.yml` 进行配置,配置项包括: - 应用基本信息(标题、版本、作者等) - API 配置(基础 URL、加密设置、RSA 密钥) - 数据库配置(连接字符串、数据库类型) - 日志配置(级别、输出目标) - 串口信息配置 ### 功能操作 1. **登录系统**:使用用户名和密码登录,支持验证码 2. **导航菜单**:左侧动态菜单,点击切换不同功能页面 3. **用户管理**:增删改查用户信息 4. **串口通信**:连接串口设备进行数据收发 5. **主题切换**:支持多种主题模式切换 ## 参与贡献 1. Fork 本仓库 2. 新建特性分支 (`git checkout -b feature/xxx`) 3. 提交更改 (`git commit -m 'Add xxx'`) 4. 推送分支 (`git push origin feature/xxx`) 5. 创建 Pull Request ## 许可证 本项目仅供学习交流使用。