欢迎光临
我们一直在努力

WPF应用层框架介绍

WPF(Windows Presentation Foundation)相比 MFC,更强调:

  • MVVM
  • 数据绑定
  • 组件化
  • UI 与逻辑解耦

因此 WPF 的“应用层框架”比 MFC 丰富很多。

目前主流 WPF 框架主要围绕:

MVVM
模块化
依赖注入
导航
事件总线
插件化

展开。


一、WPF 最主流的应用框架

1. Prism(最经典、最主流)

由微软 Patterns & Practices 推出,后来由社区维护。

这是:

企业级 WPF 最常见框架


Prism 核心功能

MVVM

提供:

  • BindableBase
  • DelegateCommand
  • ViewModelLocator

模块化

支持:

主程序
├── 模块A
├── 模块B
└── 模块C

动态加载 DLL。

非常适合:

  • 工业软件
  • 平台软件
  • 插件系统

Region 区域导航

非常经典:

<ContentControl prism:RegionManager.RegionName="MainRegion"/>

然后:

_regionManager.RequestNavigate("MainRegion", "HomeView");

实现页面切换。


EventAggregator

类似消息总线:

_eventAggregator.GetEvent<TestEvent>().Publish();

模块间解耦。


DI 容器

支持:

  • Unity
  • DryIoc
  • Autofac

Prism 适合:

  • 大型桌面软件
  • 工业平台
  • 插件化系统
  • 多模块系统

二、MVVM Light(经典轻量级)

以前特别流行。

作者:

Laurent Bugnion

特点:

  • 轻量
  • 学习简单
  • MVVM 入门经典

核心:

  • ViewModelBase
  • RelayCommand
  • Messenger

现在状态

热度下降。

因为:

  • Prism 更强
  • CommunityToolkit.Mvvm 更现代

但很多老项目仍在用。


三、CommunityToolkit.Mvvm(现在非常热门)

微软官方社区工具包。

官方项目:

CommunityToolkit.Mvvm


特点

极简

代码非常少:

[ObservableProperty]
private string name;

自动生成:

public string Name { get; set; }


Source Generator

使用:

  • Roslyn 源生成器

性能很好。


Command 自动生成

[RelayCommand]
void Save()
{
}

自动生成 ICommand。


适合

  • 新项目
  • 中小项目
  • 现代 .NET

四、Caliburn.Micro

非常有特点的 WPF 框架。

核心思想:

Convention over Configuration

即:

“约定优于配置”


特点

自动绑定:

Button Name="Save"

自动绑定到
Save() 方法

减少大量 XAML。


优点

开发效率高。


缺点

隐式规则较多:

  • 大项目维护难
  • 新人不容易理解

五、ReactiveUI

现代响应式框架。

核心:

Reactive Programming

结合:

  • Rx.NET
  • MVVM

特点

数据流驱动:

this.WhenAnyValue(x => x.Name)

适合:

  • 高频状态变化
  • 实时系统
  • 复杂异步

缺点

学习曲线较高。


六、Stylet

轻量 MVVM 框架。

特点:

  • 比 Caliburn 简洁
  • 比 Prism 轻

适合:

  • 中小项目

七、Catel

企业级 MVVM 框架。

功能非常多:

  • MVVM
  • Validation
  • IoC
  • Messaging

但现在热度一般。


八、AvalonDock(布局框架)

这不是完整应用框架。

但:

WPF IDE 风格布局几乎都用它

项目:

AvalonDock GitHub

支持:

  • Dock
  • 浮动窗口
  • VS 风格布局

很多工业软件会:

Prism + AvalonDock

组合。


九、MahApps.Metro(UI 风格框架)

现代 Metro 风格 UI。

项目:

MahApps.Metro

提供:

  • Metro 风格窗口
  • Dialog
  • Theme
  • 控件美化

常搭配:

Prism + MahApps.Metro


十、MaterialDesignInXaml

Material Design 风格。

项目:

MaterialDesignInXamlToolkit

效果:

  • Google Material UI

现在非常流行。


十一、工业软件常见组合


方案1:传统大型工业软件

Prism
+ DryIoc
+ AvalonDock
+ MahApps

特点:

  • 插件化
  • IDE风格
  • 多窗口

方案2:现代轻量项目

CommunityToolkit.Mvvm
+ MaterialDesign

特点:

  • 开发快
  • 代码少

方案3:高实时系统

ReactiveUI

适合:

  • 实时数据
  • 高频刷新

十二、WPF 框架核心思想

WPF 领域最重要的是:


1. MVVM

核心:

View
ViewModel
Model


2. 数据绑定

WPF 最大优势:

<TextBox Text="{Binding Name}"/>


3. ICommand

替代传统按钮回调:

<Button Command="{Binding SaveCommand}"/>


4. Dependency Injection

大型项目必备。


5. Event Bus

模块解耦。


十三、现在 WPF 的行业定位

WPF 目前仍大量用于:

  • 工业自动化
  • 上位机
  • 医疗设备
  • 金融终端
  • 半导体设备
  • 测试平台

因为:

  • Windows生态强
  • UI能力强
  • GPU硬件加速
  • 开发效率高

十四、WPF vs Qt vs MFC

特性WPFQtMFC
UI现代化
MVVM 原生支持 一般
数据绑定 非常强 一般 很弱
Win32集成 一般 最强
跨平台
工业软件 很多 非常多 老项目多
学习难度 中高

十五、当前最推荐路线

如果现在新做 WPF 项目:

推荐:

CommunityToolkit.Mvvm
+ MaterialDesign

大型项目:

Prism
+ DryIoc
+ AvalonDock

赞(0)
未经允许不得转载:171主机测评 » WPF应用层框架介绍
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址