U:调整调用方式和兼容性
This commit is contained in:
1 parent
433e206d45
commit
4ec76b7855
50 files changed
+5592
-47
No files matched your search
@@ -0,0 +1,273 @@
|
||||
# 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 之旅吧!** 🎉
|
||||
Reference in new issue
Block a user