WPF应用程序应该用C ++ / CLI还是C#编写?

时间:2010-08-12 12:15:12

标签: c# wpf c++-cli managed-c++ managed-code

WPF应用程序的核心是托管应用程序? Right?因此,我必须在使用托管C ++或托管C#之间进行选择。几年前我用托管C ++进行过实验。它似乎还没有为黄金时段做好准备。我猜测微软在托管C#方面付出了更多努力,而不是托管C ++。因此,似乎使用托管C#是两者之间的最佳选择。是这样的吗?您使用任何一种语言都可以获得WPF的经验吗?提前谢谢。

6 个答案:

答案 0 :(得分:14)

托管C ++已被C ++ / CLI取代,“托管C#”只是C#。

我强烈建议您将C#用于新项目,并仅在需要时使用C ++ / CLI。 C#具有更好的支持,更大的用户群,并且更容易在Visual Studio 2010中使用。

此外,请记住,C ++和C ++ / CLI是两种不同的语言。对于我的第一个.Net项目,我选择了C ++ / CLI,因为我已经了解C ++,这是一个非常糟糕的主意:从C ++到C ++ / CLI的学习曲线类似于从C ++学习C#:不要陷入那个陷阱

答案 1 :(得分:4)

C ++ / CLI仅用于支持在非托管代码(即本机C / C ++)和托管代码之间编写互操作层。对于“繁重的工作”,你绝对应该使用C#(或VisualBasic.NET)。

答案 2 :(得分:2)

您可以在后端使用托管C ++,但在检查时,VS(我正在使用2010 Ultimate)没有任何用于C ++ WPF应用程序的内置模板 - 只有C#或VB。

如果您愿意,我确定您可以强制它运行,但我建议您使用C#。

答案 3 :(得分:1)

就后端而言,它们都运行在CLR上并且都能胜任这项工作。真的,这取决于你最舒服的东西。如果您不确定,请尝试两者。 使用最有效率的东西。

修改

正如刚刚向我指出的那样,似乎对WPF模板(甚至可能是智能感知)的支持并不适用于C ++。所以在这种情况下,我想我必须推荐C#。

答案 4 :(得分:1)

C#是最常用的,所以如果遇到问题,C#的在线支持会更多。 C#也得到了微软更好的支持。即使是现在,它总体上只是一个更完整的产品。如果你真的不在乎自己,我会选择C#。

答案 5 :(得分:1)

IMO毫无疑问是C#(或VB / F#)。

跨越托管世界和c ++库的边界时,C ++ / CLI非常棒。虽然由于管理语言和非托管语言相结合而产生微妙问题,但复杂性更高。

编译时间虽然在C ++ / CLI中也比较长,特别是因为代码模板是根据C#编译器如何工作而不是C ++编译器的工作方式建模的。