我有机会将一个用C++/Powerbuilder编写的旧应用程序移植到C#。我们本次迭代中有一个启动独立对话框的功能,我刚刚完成了创建CCW dll的练习,用于调用来自C++的托管实现的此功能。我决定在我的托管DLL中使用WPF视图。到目前为止,一切都很好,因为我能够与我的托管DLL进行交互,包括从示例MFC应用程序启动WPF窗口。
这种策略有几个原因:
1. 我有一堆可重用的托管DLL,这些DLL是从最近重新设计的10年历史遗留应用程序中产生的。
2. 相比于C ++,我在C#方面经验丰富,在C ++中,我发现自己不断地与语言语法和智能感斗争。值得一提的是,我们公司可以在一些工具上投资更多,尽管这并不会真正改变我对C ++语法、头文件和方法不一致的厌恶。
3. 对于桌面应用程序,至少对于我们开发的应用程序类型,我认为C#是正确的选择。
4. 有未来的计划要重写该应用程序,我不想重复自己,因此在这个阶段开始设计正确的事情是很诱人的。
5. 我没有太多的C ++帮助。
然而,我有一些担忧和问题:
1. 这种逐步实现的方法是否可行?
2. 从性能角度来看,我应该与Winforms而不是WPF进行交互吗?应用程序将托管GIS,因此性能非常重要,尽管我们刚刚开发了另一个托管ThinkGeo's MapSuite的WPF应用程序,它的表现相当不错。主要区别在于旧应用程序比其WPF同类更注重GIS。
3. 鉴于最近有关WPF / Silverlight命运的传言,我是否应该考虑WPF?如果WPF / Silverlight会消失,桌面应用程序的替代品是什么?
4. 等待我的陷阱是什么?
如果您有任何想法和/或建议,那将是极好的。我将与我的经理商量,但首先想听听您的想法和经验。
这种策略有几个原因:
1. 我有一堆可重用的托管DLL,这些DLL是从最近重新设计的10年历史遗留应用程序中产生的。
2. 相比于C ++,我在C#方面经验丰富,在C ++中,我发现自己不断地与语言语法和智能感斗争。值得一提的是,我们公司可以在一些工具上投资更多,尽管这并不会真正改变我对C ++语法、头文件和方法不一致的厌恶。
3. 对于桌面应用程序,至少对于我们开发的应用程序类型,我认为C#是正确的选择。
4. 有未来的计划要重写该应用程序,我不想重复自己,因此在这个阶段开始设计正确的事情是很诱人的。
5. 我没有太多的C ++帮助。
然而,我有一些担忧和问题:
1. 这种逐步实现的方法是否可行?
2. 从性能角度来看,我应该与Winforms而不是WPF进行交互吗?应用程序将托管GIS,因此性能非常重要,尽管我们刚刚开发了另一个托管ThinkGeo's MapSuite的WPF应用程序,它的表现相当不错。主要区别在于旧应用程序比其WPF同类更注重GIS。
3. 鉴于最近有关WPF / Silverlight命运的传言,我是否应该考虑WPF?如果WPF / Silverlight会消失,桌面应用程序的替代品是什么?
4. 等待我的陷阱是什么?
如果您有任何想法和/或建议,那将是极好的。我将与我的经理商量,但首先想听听您的想法和经验。