Files

Sharp Framework Examples

本目录包含 Sharp 框架各个功能的示例项目,帮助你快速上手。

📚 示例项目列表

基础示例

1. 01-MinimalWpfApp - 最小 WPF 应用 ⭐

演示内容:

  • 最简单的 Sharp WPF 应用
  • 仅使用 Common + Wpf 模块
  • MVVM 基础(ViewModelBase, Commands)
  • 对话框服务

适用场景:刚接触 Sharp 框架,想快速了解基本用法

运行:

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


🚀 快速开始

运行示例

# 1. 克隆仓库
git clone https://github.com/your-repo/sharp-basic.git
cd sharp-basic/examples

# 2. 选择一个示例
cd 01-MinimalWpfApp

# 3. 还原依赖并运行
dotnet restore
dotnet run

从示例创建新项目

# 复制示例作为起点
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 之旅吧! 🎉