WPF Prism +现有的WPF应用程序

Vin*_*edi 6 .net c# wpf prism mvvm

我有一个现有的应用程序.

拥有大约3年的WPF/MVVM经验 - 我觉得我应该从Prism开始(我现在还不了解PRISM框架 - 我现在计划学习它).

目标是 - 使应用程序成为一个基于SOLID(设计)的框架.现有代码混合了MVVM(最近的新功能)和模型背后的代码(现有功能)

因为它是一个巨大的应用程序 - 将一切都移植到Prism将是一项相当艰巨的任务.

问题: - 我计划开始一个新的开发(一个很棒的功能实现).我可以将Prism用于新开发吗?我很乐意从头开始编写大部分组件,然后慢慢地将整个应用程序移动到Prism.

例如,现有的前台实时交易应用程序,计划向其添加后台/中台功能,并将前台功能慢慢移至Prism.

  • 我有一种感觉,学习PRISM可以像从winforms转向WPF一样多的学习曲线 - 这是真的吗?关于我应该遵循的书籍的任何建议?我是一个程序性的学习者,更喜欢从基础知识中逐步学习(即关于棱镜的一切).

  • 我将从Prism获得的巨大优势是什么?GUI级别可以有任何性能命中吗?

此致,Vinay

jno*_*ovo 2

我推荐官方指南,顺便说一下,它首先定义 Prism,如下所示:

Prism 以示例和文档的形式提供指导,帮助您轻松设计和构建丰富、灵活且易于维护的 Windows Presentation Foundation (WPF) 桌面应用程序。使用体现重要架构设计原则(例如关注点分离和松散耦合)的设计模式,Prism 可以帮助您使用松散耦合的组件来设计和构建应用程序,这些组件可以独立发展,但可以轻松无缝地集成到整个应用程序中。简而言之,这些应用程序是“经久耐用”和“为变革而构建”。这些类型的应用程序称为复合应用程序

我强调了我认为最能概括的一句话以及他们用来指代此类应用程序的术语:复合应用程序。

如果您的应用程序可以从松散耦合的模块中受益,那么 Prism 可能是您的最佳选择。例如,在开发 ERP 时,您可以选择将每个相关功能领域作为一个模块来实现。您可能希望更细化并针对 UI 的不同部分使用模块,例如在股票交易者参考实现中。

我还没有发现学习曲线非常陡峭。事实上,该指南组织得很好,您可以直接了解每个时刻所需的概念,而无需阅读整篇文章。绝不是从 WinForms 迁移到 WPF 那样的变化:它建立在您熟悉的 MVVM 基础上,添加了一些更高级别的抽象并使用了一些已知的模式,例如发布者/订阅者事件。

最重要的是,对于大小合适的应用程序,您应该通过投资使用 Prism 来获得可维护性。既然已经精通 MVVM,学习应该很容易。

编辑:回答评论

那么,我可以在现有 WPF 应用程序中启动基于 PRISM 的 GUI 集吗?

绝对没错。您可以选择您认为有用的部分,并且最终很可能会使用越来越多的部分。请注意,您可能需要更改应用程序的初始化以实现Bootstrapper。但是,这不是强制性的,因此只需查看这些模式并开始使用您认为合适的模式即可。它不是一个全有或全无的框架。