# 课纲目录

#### <span style="color: rgb(53, 152, 219);"> **模块Ⅰ：WPF高阶技术精讲**</span>

<span style="color: rgb(22, 145, 121);">**深入掌握自定义控件**</span>

```
主要是附加属性与控件加载部分
```

<span style="color: rgb(22, 145, 121);"> **深入掌握控件模板与数据模板**</span>

```
理解控件模板当中包含数据模板
数据模板当中又可以包含控件模板
来回组合学习
最终以模板选择器来弥补遗漏的部分
```

<span style="color: #169179;">**深入掌握资源样式与动态主题**</span>

```
资源字典如何加载
静态资源与动态资源区别
主题动态切换核心理念
以及后续写项目的规范
```

##### 埋坑

```
此处本来是想带大家完完全全手写一个wpf控件库

但是由于很多技术涉及到c#代码，所以先讲后续，高阶通信模块讲完之后再返回这儿

然后还有MAUI部分公开课要把讲xaml基础控件正好中间多学点儿做个过渡。

但是主要的xaml技术就是这三节内容和B站wpf公开课那一套视频看完
```

#### <span style="color: rgb(22, 145, 121);"> **<span style="color: rgb(53, 152, 219);">模块Ⅱ：高阶通信与高阶模式加并发控制</span>**</span>

**基础知识**

```
1、进程与线程 ：
2、进程与线程的区别。
3、线程生命周期（启动、运行、终止）。
4、同步与异步编程 ：
5、同步与异步的基本概念。
6、异步编程的优势与挑战。
7、C# 中的多线程基础 ：
8、Thread类和Task类。
9、如何创建和管理线程。
10、WPF 中的线程模型 ：
11、UI 线程与后台线程的关系。
12、使用Dispatcher更新 UI。
```

 **协议解析与错误处理模块**

```
1、Span<T> 优化二进制协议解析，使用Span<T>提高内存操作效率。
2、错误处理模式 ：异常传播与CancellationToken的结合。
3、WPF 中的应用 ：在 WPF 应用中处理网络通信错误，实现用户友好的错误提示机制。
```

**虚拟通信模拟模块**

```
1、TcpListener 模拟网络设备 ：
创建一个简单的 TCP 服务器。
处理客户端连接和数据传输。
2、SignalR 的内存模拟 ：
不依赖真实服务端的情况下，使用 SignalR 模拟实时通信。
3、WPF 中的应用 ：
在 WPF 应用中集成虚拟通信模拟工具。
实现一个简单的聊天窗口或状态监控界面。
```

**并发控制与任务调度模块**

```
1、线程同步机制 ：MonitorMutex,Semaphore等同步原语，Dispatcher与BackgroundWorker的协作。
2、异步编程与任务调度 ：async/await的深入讲解，使用TaskScheduler实现优先级队列。
3、TPL Dataflow 数据流水线 ：构建高效的生产者-消费者模型
4、WPF 中的应用 ：在 WPF 中实现多线程任务调度，避免 UI 冻结问题。
```

**高效数据处理模块**

```
1、TPL 数据流 ：构建数据流管道，实现并行数据处理。
2、内存管理 ：使用Span<T>和Memory<T>减少内存分配。
3、WPF 中的应用 ：在 WPF 中实现高性能的数据流处理，示例：实时处理传感器数据并在 UI 上显示。
```

**高级通信技术模块**

```
1、WebSocket 通信 ：使用System.Net.WebSockets实现 WebSocket 客户端和服务端。
2、SignalR 实时通信 ：构建基于 SignalR 的实时应用
3、跨平台通信 ：使用 gRPC 或 RESTful API 实现跨平台通信。
4、WPF 中的应用 ：在 WPF 中集成 WebSocket 或 SignalR，实现一个实时更新的仪表盘或聊天界面。
```

**性能优化与调试模块**

```
1、常见问题与解决方案 ：死锁与竞争条件。内存泄漏与资源耗尽。
2、WPF 中的性能优化 ：减少 UI 线程负担。使用虚拟化技术优化列表显示。
```

**实践巩固**

```
 实际项目实践模块
 
目标：
通过实际项目巩固所学知识。

项目主题 ：
实现一个简单的聊天应用。
构建一个实时监控系统。

功能要求 ：
支持多线程和异步通信。
使用协议解析和错误处理机制。
集成 SignalR 或 WebSocket。

WPF 界面开发 ：
设计一个用户友好的界面。
实现动态更新和多线程交互。

聊天应用 ：
使用 SignalR 实现实时消息传递。
使用Dispatcher更新聊天记录。

监控系统 ：
使用 TPL Dataflow 处理传感器数据。
使用TaskScheduler优化任务调度。
```

#### <span style="color: rgb(53, 152, 219);">**模块Ⅲ：高阶项目实战（全栈）**</span>

  
<span style="color: rgb(22, 145, 121);"> **3.1 综合项目案例**</span>  
<span style="color: rgb(22, 145, 121);"> **3.1.1 虚拟监控系统**</span>  
<span style="color: rgb(22, 145, 121);">**- 使用ICollectionView实现动态数据过滤**</span>  
<span style="color: rgb(22, 145, 121);">**- 基于VisualStateManager的报警状态可视化**</span>

<span style="color: rgb(22, 145, 121);"> **3.1.2 日志与权限管理**</span>  
<span style="color: rgb(22, 145, 121);">**- 使用NLog实现日志分级（Debug/Info/Error）**</span>  
<span style="color: rgb(22, 145, 121);">**- 基于角色的权限系统（RBAC）**</span>

  
<span style="color: rgb(22, 145, 121);"> **3.2 精细化案例**</span>  
<span style="color: rgb(22, 145, 121);"> **3.2.1 数据可视化**</span>  
<span style="color: rgb(22, 145, 121);">**- 使用OxyPlot实现动态波形图**</span>  
<span style="color: rgb(22, 145, 121);">**- 基于WriteableBitmap的实时图像处理**</span>

####   
<span style="color: rgb(53, 152, 219);"> **模块Ⅳ：前沿技术与扩展**</span>

  
<span style="color: rgb(22, 145, 121);"> **4.1 跨平台开发**</span>  
<span style="color: rgb(22, 145, 121);"> **4.1.1 .NET MAUI深度集成**</span>  
<span style="color: rgb(22, 145, 121);">**- 共享业务逻辑层与UI分离设计**</span>  
<span style="color: rgb(22, 145, 121);">**- 使用SkiaSharp实现跨平台绘图**</span>

<span style="color: rgb(22, 145, 121);"> **4.1.2 WPF与Web技术结合**</span>  
<span style="color: rgb(22, 145, 121);">**- 嵌入WebView2实现混合开发**</span>  
<span style="color: rgb(22, 145, 121);">**- 使用WebAssembly与Blazor交互**</span>

<span style="color: rgb(22, 145, 121);"> **4.2 人工智能集成**</span>  
<span style="color: rgb(22, 145, 121);"> **4.2.1 机器学习模型集成**</span>  
<span style="color: rgb(22, 145, 121);">**- 使用ML.NET实现本地预测**</span>  
<span style="color: rgb(22, 145, 121);">**- 基于ONNX的图像识别**</span>

<span style="color: rgb(22, 145, 121);"> **4.2.2 数据分析与可视化**</span>  
<span style="color: rgb(22, 145, 121);">**- 使用LiveCharts实现动态仪表盘**</span>  
<span style="color: rgb(22, 145, 121);">**- 基于Parallel.For的并行数据处理**</span>