.NET原生支持MVVM模式,但在定义可通知属性和命令时,需要写较多代码(相比三方库而言)。
CommunityToolkit.MVVM库基于源代码生成器技术,通过为普通字段和方法添加注解,就能后台生成对应的可通知属性和命令,这一点做得相当漂亮,正因如此,该库成为轻量级MVVM框架的典范。
Prism库是一个重量级的MVVM框架,它的重点是提供了一整套系统解耦的方案,主要包括依赖注入容器、对话框服务、模型视图定位器、模块化机制、事件聚合器、页面导航,由于关注点不一样,该框架在可通知属性和命令定义方面较弱。
将两者结合起来使用,明确并严格遵守两者的职责界线,能最大程度提升WPF大型应用的开发效率和项目可维护性。