# 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




**基于 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