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

10

WPF应用程序在其核心上是托管应用程序?对吗?因此,我必须选择使用托管C++还是托管C#。我几年前尝试过托管C++,似乎还没有准备好应用于实际生产环境。我猜测Microsoft在托管C#方面投入了更多的精力。所以,使用托管C#似乎是两者之间最好的选择。这是事实吗?您在任何一种语言中使用WPF的经验是什么?谢谢。

6个回答

14

Managed C++已被C++/CLI所取代,而“managed C#”就是C#。

我强烈建议您在新项目中使用C#,只有在需要时才使用C++/CLI。 C#支持更好,拥有更大的用户基础,并且在Visual Studio 2010内使用更加容易。

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


4

C++/CLI主要用于支持在非托管代码(即本地C/C ++)和托管代码之间编写交互层。对于“重量级”的工作,您应该绝对使用C#(或VisualBasic.NET)。


2

您可以使用托管 C++ 作为后端,但是经检查,VS(我使用的是 2010 Ultimate)没有内置 C++ WPF 应用程序模板 - 只有 C# 或 VB。

我相信如果您愿意,您可以强制它工作,但我建议您使用 C#。


1
就后端而言,它们都运行在CLR上,并且都能胜任工作。实际上,最重要的是选择你最熟悉的语言。如果你不确定,可以尝试使用两者进行实验,然后选择你感觉最高效的一个。 编辑:
刚刚有人向我指出,对于C++来说,似乎没有支持WPF模板(甚至可能没有智能感知)。所以在这种情况下,我想我会推荐使用C#。

1
并不完全正确:Visual Studio具有支持使用C#(和VB.NET)进行WPF开发的IDE功能,但不支持C++/CLI。还有这个问题:https://dev59.com/d3E85IYBdhLWcg3wpFEa - Daniel Earwicker
谢谢你提醒我。我没有意识到支持如此缺乏。 - Matt B

1

C# 是最常用的编程语言,因此如果您遇到问题,C# 有更多的在线支持。C# 也得到了微软更好的支持。即使现在,它仍然是一个更完善的产品。如果您真的不在意选择哪种语言,我建议您选择 C#。


1
不是真的。C++/CLI 一个完美而出色的产品,特别是具备了C++0x规范和使用C++头文件模板库的能力。然而,它很少是正确的工具选择。 - Alexandre C.
我认为对于需要经常达到基本水平的游戏开发而言,C++ 更加优秀。而 WPF 试图做相反的事情:“避免绘制,让我为你做一切”。而 C# 更适合这个概念。 - Jouke van der Maas

1

毫无疑问,C#(或VB/F#)是最好的选择。

当需要跨越托管世界和C++库时,C++/CLI非常出色。然而,由于将托管语言和非托管语言结合使用,复杂度更高,会出现一些微妙的问题。

C++/CLI的编译时间较长,特别是因为代码模板是按照C#编译器的工作方式而不是C++编译器的工作方式建模的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接