A:调整整体README
This commit is contained in:
1 parent
26a2661625
commit
433e206d45
5 files changed
+166
-265
No files matched your search
@@ -0,0 +1,44 @@
|
||||
# Sharp.Client
|
||||
|
||||
基于 WPF 的工业客户端应用程序示例,展示了如何集成套件中的各个模块(PLC、串口、配置、日志、MVVM)。
|
||||
|
||||
## 功能概览
|
||||
|
||||
- **用户登录**:基于 `Sharp.Data` 的用户验证。
|
||||
- **PLC 监控**:展示 `Plc.Siemens` 模块的使用,实时读取/写入 PLC 数据。
|
||||
- **串口调试**:集成 `Ports` 模块,提供串口发现、连接与数据收发界面。
|
||||
- **MVVM 架构**:使用 `Sharp.Wpf` 提供的 ViewModelBase、Command 和 DialogService。
|
||||
|
||||
## 关键集成点
|
||||
|
||||
### 1. 启动初始化 (App.xaml.cs)
|
||||
展示了如何按顺序初始化基础设施:
|
||||
- 加载配置 (`Sharp.Config`)
|
||||
- 初始化日志 (`Sharp.Log`)
|
||||
- 配置数据库 (`Sharp.Data`)
|
||||
- 注册服务到 DI 容器 (`Sharp.Common.Global`)
|
||||
|
||||
### 2. PLC 交互 (PlcWindow)
|
||||
- 演示了 `IPlcService` 的使用。
|
||||
- 订阅模式(Subscribe) vs 即时读取(ReadAsync)。
|
||||
- UI 绑定与数据转换。
|
||||
|
||||
### 3. 串口通信 (SerialPortWindow)
|
||||
- 串口列表刷新与选择。
|
||||
- 16进制与 ASCII 模式切换。
|
||||
- 数据收发日志。
|
||||
|
||||
## 开发指南
|
||||
|
||||
1. 确保已安装 .NET 8 SDK。
|
||||
2. 运行项目:
|
||||
```bash
|
||||
dotnet run --project Client.csproj
|
||||
```
|
||||
3. 默认登录账号(如使用示例数据库):`admin` / `123456`(需自行在初始化时播种)。
|
||||
|
||||
## 目录结构
|
||||
- `Hardware/`: 硬件抽象层(如扫码枪、打印机接口)。
|
||||
- `Services/`: 客户端特定服务(如 `LoginService`)。
|
||||
- `ViewModels/`: MVVM 视图模型。
|
||||
- `Views/`: XAML 窗口与控件。
|
||||
@@ -0,0 +1,12 @@
|
||||
# Sharp.EventBus
|
||||
|
||||
> **🚧 开发中 / Under Construction**
|
||||
|
||||
这是一个预留的事件总线模块,计划用于实现进程内(In-Process)或分布式(Distributed)的消息发布/订阅模式。
|
||||
|
||||
## 计划功能
|
||||
- 定义统一的 `IEventBus` 接口。
|
||||
- 提供基于内存(Channel/MemoryCache)的默认实现。
|
||||
- 提供集成 RabbitMQ / Redis 的扩展实现。
|
||||
|
||||
目前该目录仅包含占位符。
|
||||
@@ -0,0 +1,46 @@
|
||||
# Sharp.Server
|
||||
|
||||
基于 WPF 的服务器控制台/仪表盘应用,集成了 `Sharp.NetServer` 作为内置 HTTP 服务端,演示了“桌面应用 + Web 服务”的混合架构。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- **可视化控制**:通过 WPF 界面启动/停止 HTTP 服务。
|
||||
- **实时日志**:在界面上显示服务器运行日志(集成 `Sharp.Log`)。
|
||||
- **数据管理**:内置 SQLite 数据库管理界面(集成 `Sharp.Data`)。
|
||||
- **混合架构**:
|
||||
- 前台:WPF UI 用于运维和监控。
|
||||
- 后台:`NetServer` 提供 REST API 供局域网设备/客户端调用。
|
||||
|
||||
## 架构说明
|
||||
|
||||
### 核心组件
|
||||
- **ServerService**: 封装 `HttpServer` 的生命周期管理(启动、停止、重启)。
|
||||
- **AppConfig**: 使用 `Sharp.Config` 映射的强类型配置。
|
||||
- **Controllers**: API 控制器,处理来自网络的 HTTP 请求。
|
||||
|
||||
### 启动流程 (App.xaml.cs)
|
||||
1. **配置**:加载 `appsettings.json`。
|
||||
2. **日志**:初始化 Serilog 并绑定到 UI 输出。
|
||||
3. **数据库**:初始化 EF Core Context。
|
||||
4. **Web服务**:实例化 `ServerService` 但不立即启动(由用户点击按钮触发,或配置为自动启动)。
|
||||
|
||||
## 配置 (appsettings.json)
|
||||
|
||||
```json
|
||||
{
|
||||
"Server": {
|
||||
"Host": "0.0.0.0",
|
||||
"Port": 5000,
|
||||
"UseAuth": true
|
||||
},
|
||||
"Database": { ... }
|
||||
}
|
||||
```
|
||||
|
||||
## 使用说明
|
||||
|
||||
1. 启动应用。
|
||||
2. 点击“启动服务”按钮。
|
||||
3. 状态栏显示“运行中”,并显示监听地址(如 `http://localhost:5000`)。
|
||||
4. 使用浏览器或 Postman 访问 API(如 `/api/health`)。
|
||||
5. 点击“数据管理”可查看存储在本地 SQLite 中的数据。
|
||||
@@ -0,0 +1,5 @@
|
||||
# Sharp.Infrastructure
|
||||
|
||||
基础设施层项目,通常用于存放解决方案级别的横切关注点或胶水代码,目前包含部分遗留配置或共享类型。
|
||||
|
||||
> **注意**:随着模块化重构的进行,本项目的许多职责已迁移至 `Common`、`Config` 等专门模块。当前主要作为兼容性保留或特定业务的基础设施依赖。
|
||||
Reference in new issue
Block a user