# 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 错误处理 - 缓存 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 之旅吧!** 🎉