有没有一种 实际可行 的方法,让我们在不创建奇怪的交互场景而导致支持困难的情况下,逐步将 WinForms 应用程序演进为 WPF 应用程序呢?
背景信息:
我们有一个大型的灰色 WinForms 应用程序,由内部约 60-75 名用户密集使用。我们开始发现一些地方可以从将应用程序转换为 WPF 中受益,但这还不足以证明需要完全重写它的大型项目。该应用程序中的所有屏幕都是独立的 WinForms 用户控件,WinForms 应用程序只是处理菜单、打开/关闭表单、提供一些共享辅助方法等的外壳。
到目前为止,我们最好的想法是将外壳应用程序转换为 WPF,然后在其中托管 WinForms 用户控件。我们认为,随着时间的推移,我们可以逐步转换用户控件,将这些更改与具有足够业务价值以支持额外工作的倡议联系起来。我担心交互操作的有效性以及它会如何影响性能。我也担心我们如何过渡到应用程序的新外观。让外壳应用程序看起来很时尚,然后在其中托管旧的灰色用户控件似乎很奇怪,而且在 WPF 中创建外壳应用程序并使其看起来与 WinForms 相同也很奇怪。
如果 Caliburn、Prism 或其他类似框架之一有助于实现过渡,我们也愿意探索这些选项。
背景信息:
我们有一个大型的灰色 WinForms 应用程序,由内部约 60-75 名用户密集使用。我们开始发现一些地方可以从将应用程序转换为 WPF 中受益,但这还不足以证明需要完全重写它的大型项目。该应用程序中的所有屏幕都是独立的 WinForms 用户控件,WinForms 应用程序只是处理菜单、打开/关闭表单、提供一些共享辅助方法等的外壳。
到目前为止,我们最好的想法是将外壳应用程序转换为 WPF,然后在其中托管 WinForms 用户控件。我们认为,随着时间的推移,我们可以逐步转换用户控件,将这些更改与具有足够业务价值以支持额外工作的倡议联系起来。我担心交互操作的有效性以及它会如何影响性能。我也担心我们如何过渡到应用程序的新外观。让外壳应用程序看起来很时尚,然后在其中托管旧的灰色用户控件似乎很奇怪,而且在 WPF 中创建外壳应用程序并使其看起来与 WinForms 相同也很奇怪。
如果 Caliburn、Prism 或其他类似框架之一有助于实现过渡,我们也愿意探索这些选项。