有没有一种实用的方法可以让我们慢慢地将 WinForms 应用程序发展为 WPF,而不会为我们自己制造奇怪的互操作场景的支持噩梦?
背景资料:
我们有一个大型战舰灰色 WinForms 应用程序,被大约 60-75 个用户的内部组大量使用。我们开始遇到一些地方,我们可以从 WPF 中的应用程序中看到一些好处,但这还不足以证明一个大型项目完全重写它是合理的。应用程序中的所有屏幕都是独立的 WinForms 用户控件,而 WinForms 应用程序只是一个处理菜单、打开/关闭表单、提供一些共享帮助方法等的外壳......
到目前为止,我们的最佳想法是将 shell 应用程序转换为 WPF,然后在其中托管 WinForms 用户控件。我们认为,随着时间的推移,我们可以转换用户控件,将这些更改与具有足够业务价值以支持额外工作的计划联系起来。我担心互操作的工作情况以及它将如何影响性能。我还担心我们如何过渡到应用程序的新外观。让 shell 应用程序看起来很时髦,然后在其中托管旧的战舰灰色用户控件似乎很奇怪,在 WPF 中创建 shell 应用程序并让它看起来就像在 WinForms 中一样似乎也很奇怪。
如果 Caliburn、Prism 或其他类似框架中的一个可以简化过渡,我们也愿意探索这些选项。