274 lines
5.6 KiB
Markdown
274 lines
5.6 KiB
Markdown
# Sharp Framework Examples
|
||
|
||
本目录包含 Sharp 框架各个功能的示例项目,帮助你快速上手。
|
||
|
||
## 📚 示例项目列表
|
||
|
||
### 基础示例
|
||
|
||
#### 1. **01-MinimalWpfApp** - 最小 WPF 应用 ⭐
|
||
**演示内容**:
|
||
- 最简单的 Sharp WPF 应用
|
||
- 仅使用 Common + Wpf 模块
|
||
- MVVM 基础(ViewModelBase, Commands)
|
||
- 对话框服务
|
||
|
||
**适用场景**:刚接触 Sharp 框架,想快速了解基本用法
|
||
|
||
**运行**:
|
||
```bash
|
||
cd examples/01-MinimalWpfApp
|
||
dotnet run
|
||
```
|
||
|
||
---
|
||
|
||
#### 2. **02-WpfWithDatabase** - WPF + 数据库 ⭐⭐
|
||
**演示内容**:
|
||
- WPF + SQLite 数据库
|
||
- Repository 模式(CRUD操作)
|
||
- 数据绑定与列表展示
|
||
- 添加/编辑/删除产品
|
||
|
||
**适用场景**:需要本地数据存储的桌面应用
|
||
|
||
**技术栈**:Common, Config, Wpf, Data (SQLite)
|
||
|
||
---
|
||
|
||
#### 3. **03-FormValidation** - 表单验证 ⭐⭐
|
||
**演示内容**:
|
||
- ValidatableViewModelBase 使用
|
||
- DataAnnotations 验证
|
||
- 实时验证反馈
|
||
- 错误消息显示
|
||
|
||
**适用场景**:需要用户输入验证的应用
|
||
|
||
---
|
||
|
||
#### 4. **04-Navigation** - 导航系统 ⭐⭐
|
||
**演示内容**:
|
||
- INavigationService 使用
|
||
- 多页面导航
|
||
- 前进/后退功能
|
||
- 页面间参数传递
|
||
- 导航生命周期(INavigationAware)
|
||
|
||
**适用场景**:多页面 WPF 应用
|
||
|
||
---
|
||
|
||
#### 5. **05-Localization** - 国际化 ⭐⭐
|
||
**演示内容**:
|
||
- 多语言支持(中文、英文)
|
||
- LocalizeExtension XAML 绑定
|
||
- 运行时切换语言
|
||
- 资源文件管理
|
||
|
||
**适用场景**:需要多语言支持的应用
|
||
|
||
---
|
||
|
||
#### 6. **06-Theming** - 主题系统 ⭐⭐
|
||
**演示内容**:
|
||
- 浅色/深色主题切换
|
||
- 自定义主题颜色
|
||
- 跟随系统主题
|
||
- 动态主题切换
|
||
|
||
**适用场景**:需要主题切换的现代应用
|
||
|
||
---
|
||
|
||
### 工业IoT示例
|
||
|
||
#### 7. **07-PlcMonitoring** - PLC 监控 ⭐⭐⭐
|
||
**演示内容**:
|
||
- 连接西门子 PLC
|
||
- 实时数据监控
|
||
- 数据变化订阅
|
||
- 读写PLC标签
|
||
- 数据可视化(图表)
|
||
|
||
**适用场景**:工业自动化、设备监控
|
||
|
||
**技术栈**:Wpf, Plc.Siemens, Cache(缓存历史数据)
|
||
|
||
---
|
||
|
||
#### 8. **08-SerialPortComm** - 串口通信 ⭐⭐
|
||
**演示内容**:
|
||
- 串口自动发现
|
||
- 数据收发
|
||
- HEX/ASCII 显示
|
||
- 数据记录
|
||
|
||
**适用场景**:串口设备通信、调试工具
|
||
|
||
**技术栈**:Wpf, Ports
|
||
|
||
---
|
||
|
||
### 网络示例
|
||
|
||
#### 9. **09-HttpServer** - 嵌入式 Web 服务器 ⭐⭐⭐
|
||
**演示内容**:
|
||
- 在 WPF 应用中嵌入 HTTP 服务器
|
||
- RESTful API 实现
|
||
- 中间件使用(CORS, 认证, 日志)
|
||
- WPF 界面管理服务器
|
||
|
||
**适用场景**:设备管理后台、本地Web服务
|
||
|
||
**技术栈**:Wpf, NetServer, Log
|
||
|
||
---
|
||
|
||
#### 10. **10-HttpClient** - HTTP 客户端 ⭐⭐
|
||
**演示内容**:
|
||
- 调用外部 API
|
||
- 重试策略(Polly)
|
||
- Result<T> 错误处理
|
||
- 缓存 API 响应
|
||
|
||
**适用场景**:需要调用外部服务的应用
|
||
|
||
**技术栈**:Wpf, NetClient, Cache
|
||
|
||
---
|
||
|
||
### 综合示例
|
||
|
||
#### 11. **11-FullStackDemo** - 完整功能演示 ⭐⭐⭐⭐
|
||
**演示内容**:
|
||
- 用户登录(数据库验证)
|
||
- 产品管理(CRUD)
|
||
- PLC 数据监控
|
||
- 串口通信
|
||
- 数据报表导出
|
||
- 多语言
|
||
- 主题切换
|
||
- 配置热重载
|
||
|
||
**适用场景**:工业监控系统、MES系统、数采系统
|
||
|
||
**技术栈**:全部模块
|
||
|
||
---
|
||
|
||
#### 12. **12-CachingDemo** - 缓存使用 ⭐
|
||
**演示内容**:
|
||
- 字典数据缓存
|
||
- API 响应缓存
|
||
- 计算结果缓存
|
||
- 缓存失效策略
|
||
|
||
**技术栈**:Wpf, Cache, NetClient
|
||
|
||
---
|
||
|
||
#### 13. **13-EventBusDemo** - 事件总线 ⭐
|
||
**演示内容**:
|
||
- 跨模块通信
|
||
- 事件发布/订阅
|
||
- 解耦架构
|
||
|
||
**技术栈**:Wpf, EventBus
|
||
|
||
---
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 运行示例
|
||
|
||
```bash
|
||
# 1. 克隆仓库
|
||
git clone https://github.com/your-repo/sharp-basic.git
|
||
cd sharp-basic/examples
|
||
|
||
# 2. 选择一个示例
|
||
cd 01-MinimalWpfApp
|
||
|
||
# 3. 还原依赖并运行
|
||
dotnet restore
|
||
dotnet run
|
||
```
|
||
|
||
### 从示例创建新项目
|
||
|
||
```bash
|
||
# 复制示例作为起点
|
||
cp -r examples/02-WpfWithDatabase MyNewProject
|
||
cd MyNewProject
|
||
|
||
# 修改项目名称
|
||
# 编辑 .csproj 文件和命名空间
|
||
# 开始开发!
|
||
```
|
||
|
||
---
|
||
|
||
## 📖 学习路径
|
||
|
||
### 新手推荐路径
|
||
1. **01-MinimalWpfApp** - 了解基础
|
||
2. **02-WpfWithDatabase** - 学习数据库操作
|
||
3. **03-FormValidation** - 掌握表单验证
|
||
4. **04-Navigation** - 理解导航系统
|
||
|
||
### 工业自动化开发者
|
||
1. **07-PlcMonitoring** - PLC 通信
|
||
2. **08-SerialPortComm** - 串口通信
|
||
3. **11-FullStackDemo** - 完整系统
|
||
|
||
### Web 开发者转 WPF
|
||
1. **09-HttpServer** - HTTP 服务器
|
||
2. **10-HttpClient** - HTTP 客户端
|
||
3. **06-Theming** - 主题系统
|
||
|
||
---
|
||
|
||
## 💡 示例代码说明
|
||
|
||
所有示例都遵循:
|
||
- ✅ **最佳实践**:展示推荐的使用方式
|
||
- ✅ **完整代码**:可直接运行,无需额外配置
|
||
- ✅ **详细注释**:中文注释,解释关键代码
|
||
- ✅ **README**:每个示例都有独立的 README
|
||
|
||
---
|
||
|
||
## 🛠️ 技术要求
|
||
|
||
- .NET 8.0 SDK
|
||
- Visual Studio 2022 或 VS Code (推荐安装 C# Dev Kit)
|
||
- Windows 10/11 (WPF 应用需要 Windows)
|
||
|
||
---
|
||
|
||
## 📝 贡献示例
|
||
|
||
欢迎贡献新的示例!请确保:
|
||
1. 代码简洁明了
|
||
2. 包含 README 说明
|
||
3. 注释使用中文
|
||
4. 可独立运行
|
||
|
||
---
|
||
|
||
## ❓ 常见问题
|
||
|
||
**Q: 示例可以直接用于生产吗?**
|
||
A: 示例代码主要用于学习,生产使用需要根据实际情况调整(如安全性、错误处理、日志等)。
|
||
|
||
**Q: 示例使用什么数据库?**
|
||
A: 大部分示例使用 SQLite(无需安装,开箱即用),也有 SQL Server 示例。
|
||
|
||
**Q: 可以在 .NET Framework 上运行吗?**
|
||
A: 不可以,Sharp 框架基于 .NET 8,需要 .NET 8 运行时。
|
||
|
||
---
|
||
|
||
**选择一个示例开始你的 Sharp 之旅吧!** 🎉
|