# sharp.app **Repository Path**: tingsliao/sharp.app ## Basic Information - **Project Name**: sharp.app - **Description**: 项目文件夹:sharp.app 脚本文件夹:sharp.app > scripts 框架要求:webview2 + html + vuejs + sqlsugarcore + redis - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-08 - **Last Updated**: 2026-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SharpApp
![SharpApp Logo](https://img.shields.io/badge/SharpApp-v1.0.0-blue) ![.NET](https://img.shields.io/badge/.NET-8.0-purple) ![WPF](https://img.shields.io/badge/WPF-Desktop-green) ![License](https://img.shields.io/badge/License-MIT-yellow) **基于 WPF + WebView2 + Vue.js 的现代化桌面应用框架** [功能特性](#功能特性) • [快速开始](#快速开始) • [项目结构](#项目结构) • [技术架构](#技术架构) • [开发指南](#开发指南)
--- ## 📖 项目介绍 SharpApp 是一个功能完善的桌面应用程序框架,采用现代化的技术栈和架构设计,旨在为开发者提供高效、可维护的桌面应用开发解决方案。 ### 核心特性 - 🖥️ **现代化界面**: 基于 WebView2 + Vue.js 构建的现代化用户界面 - 🏗️ **分层架构**: 清晰的分层设计,遵循领域驱动设计(DDD)原则 - 🔐 **权限管理**: 完善的用户、角色、权限管理体系 - 📊 **数据管理**: 基于 SqlSugarCore 的 ORM 数据访问层 - 🚀 **依赖注入**: 集成 Microsoft.Extensions.DependencyInjection - 📝 **代码规范**: 完整的设计模式标注和代码注释 --- ## 🛠️ 技术栈 ### 后端技术 | 技术 | 版本 | 说明 | |------|------|------| | .NET | 8.0 | 框架版本 | | WPF | - | Windows 桌面应用框架 | | C# | 12.0 | 编程语言 | | SqlSugarCore | Latest | ORM 框架 | | MySQL | 8.0+ | 数据库 | ### 前端技术 | 技术 | 版本 | 说明 | |------|------|------| | WebView2 | Latest | 嵌入式浏览器控件 | | Vue.js | 3.x | 前端框架 | | HTML5/CSS3 | - | 界面技术 | | JavaScript | ES6+ | 脚本语言 | ### 开发工具 - **IDE**: Visual Studio 2022 / Visual Studio Code - **数据库工具**: MySQL Workbench / Navicat - **版本控制**: Git --- ## ✨ 功能特性 ### 1. 系统管理 - 👤 **用户管理**: 用户信息的增删改查 - 👥 **角色管理**: 角色权限配置 - 🔐 **权限管理**: 细粒度的权限控制 - 🏢 **部门管理**: 组织架构管理 - 📝 **日志管理**: 系统操作日志记录 - ⚙️ **配置管理**: 系统配置管理 ### 2. 卡片管理 - 📁 **卡片分类**: 卡片分类管理 - 📋 **卡片模板**: 自定义卡片模板 - 📄 **卡片信息**: 卡片内容管理 ### 3. 数据分析 - 📊 **数据报表**: 数据统计报表 - 📈 **数据看板**: 数据可视化展示 ### 4. 个人中心 - 👤 **个人信息**: 个人资料管理 - 🔑 **密码修改**: 密码安全设置 --- ## 🚀 快速开始 ### 环境准备 1. **安装 .NET 8.0 SDK** ```bash # 下载地址: https://dotnet.microsoft.com/download/dotnet/8.0 ``` 2. **安装 MySQL 8.0+** ```bash # 下载地址: https://dev.mysql.com/downloads/mysql/ ``` 3. **安装 Visual Studio 2022** - 需要安装 "使用 .NET 的桌面开发" 工作负载 ### 数据库配置 1. **创建数据库** ```sql CREATE DATABASE sharpapp_developers CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. **执行初始化脚本** ```bash mysql -h 127.0.0.1 -P 3306 -u root -p sharpapp_developers < scripts/init_data.sql ``` 3. **配置数据库连接** - 应用程序首次启动时会自动检测并创建默认配置 - 默认配置: `127.0.0.1:3306 / sharpapp_developers / root / 12345679` ### 运行项目 1. **克隆项目** ```bash git clone https://github.com/yourusername/sharp.app.git cd sharp.app ``` 2. **还原依赖包** ```bash dotnet restore ``` 3. **运行项目** ```bash dotnet run --project src/sharp.app.developers ``` 4. **登录系统** - 超级管理员: `admin` / `admin123` - 普通用户: `zhangsan` / `user123` --- ## 📁 项目结构 ``` sharp.app/ ├── src/ # 源代码目录 │ ├── sharp.app.developers/ # 主应用程序(WPF) │ │ ├── App.xaml.cs # 应用程序入口 │ │ ├── MainWindow.xaml.cs # 主窗口 │ │ └── Extensions/ # 扩展方法 │ │ └── ServiceCollectionExtensions.cs # 依赖注入配置 │ │ │ ├── sharp.app.core/ # 核心层 │ │ ├── Interfaces/ # 核心接口 │ │ ├── Services/ # 核心服务 │ │ ├── Models/ # 数据模型 │ │ ├── Exceptions/ # 异常定义 │ │ └── Extensions/ # 扩展方法 │ │ │ ├── sharp.app.data/ # 数据访问层 │ │ ├── Context/ # 数据库上下文 │ │ ├── Entities/ # 实体类 │ │ ├── Interfaces/ # 数据访问接口 │ │ ├── Repositories/ # 仓储实现 │ │ └── Services/ # 数据服务 │ │ │ └── sharp.app.services/ # 业务服务层 │ ├── Interfaces/ # 服务接口 │ └── Services/ # 服务实现 │ ├── scripts/ # 脚本目录 │ └── init_data.sql # 数据库初始化脚本 │ ├── tests/ # 测试目录(待添加) │ └── sharp.app.tests/ │ ├── docs/ # 文档目录(待添加) │ └── api/ # API文档 │ ├── .gitignore # Git忽略文件 ├── sharp.app.sln # 解决方案文件 └── README.md # 项目说明文档 ``` --- ## 🏗️ 技术架构 ### 架构设计 本项目采用 **分层架构** 和 **领域驱动设计(DDD)** 原则: ``` ┌─────────────────────────────────────┐ │ Presentation Layer (WPF) │ 表示层 │ sharp.app.developers │ └──────────────┬──────────────────────┘ │ ┌──────────────▼──────────────────────┐ │ Service Layer │ 服务层 │ sharp.app.services │ └──────────────┬──────────────────────┘ │ ┌──────────────▼──────────────────────┐ │ Data Access Layer │ 数据访问层 │ sharp.app.data │ └──────────────┬──────────────────────┘ │ ┌──────────────▼──────────────────────┐ │ Core Layer │ 核心层 │ sharp.app.core │ └─────────────────────────────────────┘ ``` ### 设计模式 项目采用了多种设计模式,所有代码注释均已标注: | 设计模式 | 应用场景 | |---------|---------| | 依赖注入模式 | 服务注册和构造函数注入 | | 仓储模式 | 数据访问层 | | 服务层模式 | 业务逻辑层 | | DTO模式 | 数据传输对象 | | 单例模式 | 全局唯一服务实例 | | 工厂模式 | 服务提供者 | | 单元工作模式 | 数据库事务管理 | | 策略模式 | 异常处理和配置管理 | | 建造者模式 | 复杂对象构建 | | 访问者模式 | 表达式树遍历 | | 组合模式 | 功能树形结构 | | 模板方法模式 | 初始化流程 | | 泛型编程模式 | 仓储和分页 | | 实体模式 | 数据库实体映射 | | 活动记录模式 | 实体包含数据和行为 | | 扩展方法模式 | C#语言特性 | ### 数据库设计 #### 核心表结构 - **User**: 用户表 - **UserAdditionalInfo**: 用户附加信息(密码、邮箱、手机) - **UserPermission**: 用户权限关联表 - **Department**: 部门表 - **DepartmentUser**: 部门用户关联表 - **Permission**: 权限表 - **Function**: 功能表 - **PermissionFunction**: 权限功能关联表 - **CardCategory**: 卡片分类表 - **CardTemplate**: 卡片模板表 - **CardInfo**: 卡片信息表 --- ## 📚 开发指南 ### 添加新功能 1. **创建实体类** ```csharp // 在 sharp.app.data/Entities/ 下创建实体 [SugarTable("YourTable")] public class YourEntity { [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } // 其他属性... } ``` 2. **创建服务接口** ```csharp // 在 sharp.app.services/Interfaces/ 下创建接口 public interface IYourService { Task> GetAllAsync(); } ``` 3. **实现服务** ```csharp // 在 sharp.app.services/Services/ 下实现服务 public class YourService : IYourService { private readonly IRepository _repository; public YourService(AppDbContext context) { _repository = new Repository(context); } } ``` 4. **注册服务** ```csharp // 在 ServiceCollectionExtensions.cs 中注册 services.AddScoped(); ``` ### 代码规范 - **命名规范**: 遵循 C# 命名约定 - **注释规范**: 所有公共成员必须添加 XML 注释 - **设计模式标注**: 在注释中标注使用的设计模式 - **异常处理**: 使用自定义异常类 - **日志记录**: 使用 ILogger 记录日志 ### 测试 ```bash # 运行所有测试 dotnet test # 运行特定测试项目 dotnet test tests/sharp.app.tests ``` --- ## 📝 更新日志 ### v1.0.0 (2024-03-09) #### 新增功能 - ✨ 完整的用户、角色、权限管理体系 - ✨ 部门管理功能 - ✨ 卡片分类、模板、信息管理 - ✨ 数据分析和报表功能 - ✨ 依赖注入配置扩展类 - ✨ 完整的数据库初始化脚本 #### 技术改进 - 🏗️ 采用分层架构设计 - 📝 完整的设计模式标注 - 🔐 BCrypt 密码加密 - 📊 分页查询支持 - 🎯 表达式树扩展方法 #### 文档更新 - 📚 完善 README 文档 - 📖 代码注释完整 --- ## 🤝 参与贡献 欢迎贡献代码、报告问题或提出建议! ### 贡献流程 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 提交 Pull Request ### 代码规范 - 遵循项目的代码风格 - 添加必要的单元测试 - 更新相关文档 - 确保代码通过所有测试 --- ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 --- ## 📮 联系方式 - **项目地址**: [https://github.com/yourusername/sharp.app](https://github.com/yourusername/sharp.app) - **问题反馈**: [Issues](https://github.com/yourusername/sharp.app/issues) - **邮箱**: your.email@example.com --- ## 🙏 致谢 感谢所有为本项目做出贡献的开发者! ---
**如果这个项目对你有帮助,请给个 ⭐️ Star 支持一下!** Made with ❤️ by SharpApp Team