# DPA **Repository Path**: wxm20040208/DPA ## Basic Information - **Project Name**: DPA - **Description**: 希望大家多多指教,这是一个自我学习的项目 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2024-09-14 - **Last Updated**: 2024-09-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DPA #### 介绍 DPA 是一个基于跨平台 UI 框架 Avalonia UI 构建的 .NET 应用程序,旨在为用户提供一种美观、便捷的诗词欣赏体验。通过简洁直观的用户界面,用户可以每日欣赏一首精选诗词,伴随精美的图片和直观的交互设计,应用不仅致力于诗词文化的传承,更注重用户的日常使用体验。 该项目结构清晰,采用 MVVM(Model-View-ViewModel) 模式,具有良好的扩展性和可维护性。项目分为三个主要模块:主应用程序、核心库以及单元测试项目,每个模块都有明确的职责划分,确保代码结构合理、功能模块化。 #### 软件架构 软件架构说明 1.主应用程序(DPA): 这是用户交互的核心部分,负责展示每日的诗词及相关图片。通过 Avalonia UI 提供的跨平台支持,用户可以在 Windows、macOS 和 Linux 上流畅使用该应用。该模块包含视图(Views)、服务(Services)、数据转换器(Converters)以及应用的启动逻辑。用户通过简洁的界面可以浏览诗词,图片展示使诗词更加生动。未来可能还会增加个性化的功能,如定制显示风格和在线诗词更新。 2. 核心库(DPA.Library): 核心库是该应用程序的业务逻辑中心,主要负责诗词和图片的管理。该模块使用 SQLite 数据库存储诗词数据,并通过提供的服务层(Services)将数据传递给视图层。 该模块包括了数据模型(Models)、业务服务(Services)以及 ViewModel 层,确保数据处理逻辑与界面层分离,增强了代码的可维护性。 本地数据库 (poetrydb.sqlite3) 预置了丰富的诗词资源,图片存储以二进制文件(todayImage.bin)形式存在,为用户提供每日不同的诗词与图片搭配。 3. 单元测试项目(DPA.UnitTest): 为了确保应用程序的质量与稳定性,项目配备了全面的单元测试。通过使用 xUnit 测试框架,单元测试模块验证了各个功能模块的正确性,特别是核心逻辑、服务调用及数据模型的有效性。测试项目不仅针对库中的业务逻辑进行验证,还对 MVVM 模式下的 ViewModel 层进行了严格测试,确保前后端数据交互准确无误。 #### 设计理念与功能目标 DPA 的设计理念是为用户提供一种轻松愉快的诗词欣赏体验,同时弘扬经典诗词文化。以下是该应用的一些主要功能和目标: 1. 每日诗词推送:应用每天自动从内置数据库中选择一首诗词进行展示,用户也可以手动浏览过去的诗词。未来版本可能会增加在线诗词更新和推荐功能。 2. 图片与诗词结合:诗词展示不仅仅是文字,应用还为每首诗词提供了与之呼应的图片,增强了用户的视觉体验。 3. 离线访问:所有诗词和图片都存储在本地数据库中,用户无需网络连接即可使用应用程序,特别适合喜欢安静阅读的用户。 4. MVVM 设计模式:应用使用了 Model-View-ViewModel 设计模式,将界面与逻辑完全解耦,便于维护和扩展。通过依赖注入和服务定位器的使用,未来可以轻松集成新功能或扩展现有功能。 5. 跨平台支持:通过 Avalonia UI 框架,应用可以在多个操作系统(Windows、macOS、Linux)上无缝运行。无论用户使用何种设备,都可以享受到一致的用户体验。 #### 值得改进的地方(后续不断推进) 1. 用户体验优化:我们致力于优化应用程序的用户界面和交互设计,使诗词欣赏更加简单直观。 2. 功能扩展:未来计划增加更多功能,如用户自定义诗词库、诗词分享功能、主题模式切换(亮/暗色模式)、甚至是语音朗读功能。 3. 国际化支持:随着该项目的发展,未来可能会增加多语言支持,使全球更多的用户能够通过此应用欣赏经典诗词。 4. 持续集成与自动化测试:通过持续集成(CI)和单元测试框架,确保每次新功能发布前都经过充分的测试,减少生产环境中的错误。 #### 技术栈 1. .NET 7 - 应用程序使用的后端框架。 2. Avalonia UI - 跨平台的 UI 框架,支持 Windows、macOS、Linux 等多个平台。 3. SQLite - 用于本地存储诗词内容的数据引擎。 4. xUnit - 单元测试框架。 #### 安装教程 在安装和运行 DPA 之前,请确保你的开发环境满足以下要求: 1. 操作系统:Windows、macOS 或 Linux(需要支持 .NET) 2. .NET SDK:7.0 或更高版本 3. SQLite:无需安装,已在项目中集成 4. Git:用于从 GitHub 克隆项目(如果你打算从源码运行) 5. Avalonia UI 支持:Avalonia 项目所需的 NuGet 包会在构建时自动恢复 具体步骤: 1. 打开终端或命令提示符,运行以下命令以克隆项目源码:git clone https://github.com/wxm20040208/DPA.git 2. 进入项目目录:cd DPA 3. 还原项目依赖项,如果这是你首次克隆该项目,请运行以下命令还原项目所需的 NuGet 包:dotnet restore 4. 构建项目(运行以下命令以编译和构建应用程序):dotnet build 5. 运行应用程序(使用 .NET CLI 启动该项目):dotnet run --project DPA #### 使用说明 1. 启动应用 运行应用程序后,你将看到一个简单、直观的用户界面。应用程序每天会从内置的 SQLite 数据库中选择一首诗词进行展示,并伴随一幅与诗词相关的图片。 2. 主要功能 每日诗词:程序启动后,自动从数据库中选择一首诗词进行展示。你可以通过左右箭头按钮切换诗词。 图片欣赏:每首诗词会搭配一张图片,这张图片与诗词的内容主题相关。 历史浏览:你可以回顾之前的诗词,了解每一天展示的诗词记录。 离线模式:由于所有数据都存储在本地 SQLite 数据库中,程序无需联网即可正常使用。 3. 个性化设置 该程序支持个性化设置,你可以调整以下内容: 界面主题:通过应用设置更改界面的配色(亮色模式或暗色模式)。 诗词源:未来的版本将支持从在线数据库获取新的诗词,你也可以通过导入功能增加本地的诗词数据库。 4. 数据管理 数据库文件:poetrydb.sqlite3 是应用的本地数据库文件,存放在 DPA 目录中。你可以通过外部工具(如 SQLite Browser)查看和编辑其中的内容。 图片存储:应用使用的图片存储在 todayImage.bin 中,是经过压缩或编码处理的图片文件。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 参考链接 https://github.com/irihitech/Semi.Avalonia https://github.com/irihitech/Ursa.Avalonia https://github.com/Coolkeke/LayUI-Avalonia