您将使用哪种 C# 项目类型来重新开发 MFC C++ activex 控件?
Posted
技术标签:
【中文标题】您将使用哪种 C# 项目类型来重新开发 MFC C++ activex 控件?【英文标题】:Which C# project type would you use to redevelop a MFC C++ activex control? 【发布时间】:2010-09-08 12:00:08 【问题描述】:查看 VS2008 中的 C# 项目模板,提供 WPF 用户控件库、WPF 自定义控件库和 Windows 窗体控件库。如果您想将用 C++ 编写的旧版活动控件转移到 C# 和 .NET 的世界中,您会使用哪一个?
【问题讨论】:
【参考方案1】:听起来你正试图同时做几件不同的事情:
-
将您的代码迁移到在较新版本的 Visual Studio 中构建。
将您对技术的使用迁移到更新的技术(ActiveX 到 .net)
迁移您的语言(c++ 到 c#)。
如果您的代码库很小,您可能也可以从头开始,并根据需要将功能移植到新的代码库中。
对于更大的代码库,您需要意识到这在工作量和缺陷率方面都是一项昂贵的任务。
订单可能是:
-
将您的代码导入到较新版本的 Visual Studio 中。得到它编译。查看每个项目的项目设置。
重构代码以尽可能隔离 mfc 和 activex 代码。遵循良好的重构实践,尤其是在开始之前没有太多单元测试的情况下。
考虑用 .net 替换您的 ActiveX 层。
考虑哪个 GUI 工具包最适合替换 MFC。
语言 - 考虑首先迁移到托管 c++。
考虑从托管 c++ 迁移到 c#。
最重要的是能够证明做上述所有事情的合理性!
【讨论】:
【参考方案2】:没有可以为您执行此操作的项目模板。您不妨阅读并从用户控件开始。
【讨论】:
【参考方案3】:您必须考虑将托管该控件的目标应用程序。如果它是一个业务应用程序,我 heard 表示 WPF 并没有提供比 Forms 更大的优势。然而,根据this 博客条目,作者认为杀手 WPF 是一个 LOB 应用程序,它利用 WPF 提供的图形功能进行数据可视化。
最后我猜这是一个成本/收益分析。您是走 WPF 路线并为图形数据可视化的未来利益付出学习曲线的成本,还是坚持久经考验的方法并冒着开发过时应用程序的风险。
【讨论】:
以上是关于您将使用哪种 C# 项目类型来重新开发 MFC C++ activex 控件?的主要内容,如果未能解决你的问题,请参考以下文章
在 WinCE 平台上绘图,哪种语言更快:MFC VC++ 或 C#
C# 的哪种数据类型相当于 SQL Server 中的钱? [复制]