我们将使用哪种C#项目类型来重新开发MFC C ++ Activex控件?

时间:2020-03-05 18:51:07  来源:igfitidea点击:

查看VS2008中的Cproject模板,其中提供了WPF用户控件库,WPF自定义控件库和Windows窗体控件库。如果我们想将用c ++编写的旧式主动控件移入Cand .NET的世界,我们将使用哪一个?

解决方案

回答

没有项目模板可以为我们完成此任务。我们最好阅读并从用户控件开始。

回答

我们将不得不考虑将承载该控件的目标应用程序。我听说过,如果这是一种业务应用程序,则WPF不能提供比Forms更大的优势。但是,根据此博客文章,作者认为杀手级WPF是一个LOB应用程序,它利用WPF提供的图形功能进行数据可视化。

最后,我想这是一项成本/收益分析。我们是否遵循WPF路线并为学习图形图形可视化的未来收益付出了学习成本,还是坚持使用久经考验的真实方法并冒着开发过时的应用程序的风险。

回答

听起来我们正在尝试同时做几项不同的事情:

  • 迁移代码以在更新版本的Visual Studio中进行构建。
  • 将我们对技术的使用迁移到较新的技术(从ActiveX到.net)
  • 迁移语言(从c ++到c#)。

如果代码库较小,则最好从头开始并根据需要将功能移植到新的代码库中。

对于更大的代码库,我们需要意识到,这在工作量和缺陷率方面都是一项昂贵的任务。

订单可能是:

  • 将代码导入到Visual Studio的更新版本中。进行编译。查看每个项目的项目设置。
  • 重构代码,以尽可能地隔离mfc和a​​ctivex代码。遵循良好的重构习惯,尤其是在开始之前没有太多单元测试的情况下。
  • 考虑用.net替换ActiveX层。
  • 考虑哪种GUI工具箱最适合替代MFC。
  • 语言-考虑首先使用托管c ++。
  • 考虑从托管c ++迁移到c#。

最重要的是能够证明上述所有理由!