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