我们有一个构建在上面的旧应用程序。Net 1.1框架和Winforms。我们正计划将其迁移到的最新版本。网
以下是我脑海中的一些问题:
- 我们应该选择Winforms还是WPF
- 我们希望设计和结构与现在完全相同
- 迁移时会遇到什么样的陷阱
- 有什么地方我可以查找以查看迁移过程吗
- 还有其他建议吗
我们应该选择Winforms还是WPF?
这是一个非常宽泛的问题。但我的答案是这样的。Winforms设计器是一种痛苦的体验,它无论如何都不如WPF灵活,所以如果这对你来说很重要,那么你应该这样做。
我们希望设计和结构与现在完全相同。
你在Winforms中做的任何事情都可以在WPF中复制,所以不用担心。
迁移时会遇到什么样的陷阱?
有太多的东西无法命名。我们迁移中最常见的一个是转换WinForms中的现有逻辑(是的,它是一个糟糕的、外包的、充满业务逻辑的遗留WinForms),并将其连接到WPF元素。这个过程本身并没有那么复杂,但当你有太多交织在一起的片段时,它可能会变得非常丑陋。
有什么地方我可以查找以查看迁移过程吗?
迁移过程几乎必须是迭代的。因此,许多人基于我的研究(文章、StackOverflow答案等)来做这件事的方式是通过ElementHosts。
1) 针对WinForms中您想要切换到WPF的某个部分,然后将其取出。
2) 将其替换为ElementHost。
3) 然后在该ElementHost中,您将拥有新重写的WPF对应项。
4) 对它进行测试,确保它能与其他元素一起正常工作。
5) 转到步骤1,直到该窗口上的其他内容被替换为止(您可以根据您的特定情况,以任何方式替换窗口上的元素,包括页眉、中页、页脚或顶部、底部)。
6) 一旦替换了大部分内容,就可以将所有这些WPF用户控件组合到一个WPF窗口中。