# studydome **Repository Path**: one996/studydome ## Basic Information - **Project Name**: studydome - **Description**: 代码学习,技术分享,菜鸟进步 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 15 - **Forks**: 3 - **Created**: 2022-02-03 - **Last Updated**: 2026-02-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ```markdown # 项目 README ## 项目概述 本项目是一个包含多个模块的综合型解决方案,主要涉及以下技术领域: - **Avalonia UI 示例**:提供基于 Avalonia 框架的跨平台 UI 应用示例。 - **Halcon 图像处理**:集成 Halcon 图像处理库,用于工业视觉、图像识别等场景。 - **数据库与 ORM 操作**:使用 SqlSugar 进行数据库操作,包含用户管理、文章管理、日志记录等功能。 - **JWT 身份验证**:实现基于 JWT 的身份认证与权限控制。 - **WPF 桌面应用**:提供 WPF 构建的桌面应用程序,包含事件总线、密码破解模拟、文件解压等功能。 - **服务安装与部署**:提供 Windows 服务安装、启动、停止等操作的封装。 - **网络通信**:包含 MQTT、Socket、Web API 等多种通信方式的示例。 ## 项目结构 ### 主要模块 | 模块名 | 描述 | |--------|------| | `AvaloniaDemo` | Avalonia UI 示例程序,展示基本界面构建和数据绑定。 | | `HalconDemo` | Halcon 图像处理示例,包含模板匹配、图形绘制等功能。 | | `Like.BLL` | 业务逻辑层,封装用户、文章、权限等核心业务逻辑。 | | `Like.DAL` | 数据访问层,基于 SqlSugar 实现数据库操作。 | | `Like.Model` | 数据模型定义,包含用户、角色、权限、日志等实体类。 | | `Like.Common` | 公共工具类,包含 JWT、加密、配置读取、日志记录等通用功能。 | | `Like.ServiceInstaller` | Windows 服务安装器,支持服务安装、卸载、启动、停止等操作。 | | `WPF-DEMO` | WPF 桌面应用程序,演示事件总线、密码破解模拟、文件解压等功能。 | | `Study.Demo` | 学习示例模块,包含任务、事件、Socket、MQTT 等编程实践。 | | `StudyDome` | Web API 示例项目,演示 JWT 认证、天气预报接口等。 | ## 技术栈 - **语言**:C# - **框架**: - Avalonia UI - WPF - ASP.NET Core - **ORM**:SqlSugar - **图像处理**:Halcon - **身份验证**:JWT - **通信协议**:MQTT、Socket、HTTP API - **日志**:Serilog - **依赖注入**:Microsoft.Extensions.DependencyInjection ## 快速开始 ### 开发环境要求 - .NET 6 SDK 或更高版本 - Visual Studio 2022 或 Rider - Halcon 安装包(如需运行图像处理模块) ### 启动 Avalonia 示例 1. 打开 `AvaloniaDemo` 项目。 2. 编译并运行项目。 3. 查看主窗口界面,测试按钮点击事件。 ### 启动 WPF 示例 1. 打开 `WPF-DEMO` 项目。 2. 编译并运行项目。 3. 测试密码破解模拟、文件解压等功能。 ### 启动 Web API 示例 1. 打开 `StudyDome` 项目。 2. 编译并运行项目。 3. 使用 Postman 或 Swagger 测试 `/weatherforecast` 接口。 4. 使用 JWT 登录接口获取 Token 并访问受保护资源。 ### 启动服务安装器 1. 打开 `Like.ServiceInstaller` 项目。 2. 编译生成 `.exe` 文件。 3. 使用管理员权限运行,安装、启动服务。 ## 使用说明 ### JWT 身份验证 - 登录接口:`POST /api/account/login` - 请求体: ```json { "username": "admin", "password": "123456" } ``` - 返回 Token 后,在请求头中添加: ``` Authorization: Bearer ``` ### 数据库配置 在 `appsettings.json` 中配置数据库连接字符串: ```json { "ConnectionStrings": { "DefaultConnection": "Server=.;Database=LikeDB;Trusted_Connection=True;" } } ``` ### 日志记录 使用 Serilog 记录日志,日志路径默认为 `logs` 文件夹,格式为 `yyyyMMdd.log`。 ## 贡献指南 欢迎提交 PR 和 Issue,请遵循以下规范: - 提交前确保代码通过编译。 - 添加必要的注释和文档。 - 遵循项目编码风格。 ## 许可证 本项目采用 MIT License,请查看 [LICENSE](LICENSE) 文件。 ```