Jos*_*ody 16 .net c# c++ unmanaged managed-code
我使用Visual C++和Win32 API学习了Windows编程.如今,似乎大多数应用程序都是使用C#在.NET中开发的.据我所知,大多数情况下,本机代码和托管代码之间没有太大的性能差异.所以我想知道,如果我今天开始编写一个新的桌面应用程序,是否有任何理由(除了我对C++更熟悉的事实),我可能想用非托管C++编写它.NET?使用C++和本机代码还有一些优势吗?或者在Windows平台上用.NET或多或少取代了这种方法?
当然我知道编写低级设备驱动程序和类似程序的人不会在.NET中这样做.我要求参考典型的面向客户端的应用程序,这些应用程序不会直接进行硬件调用.
Adr*_*ore 18
对于小型可下载应用程序而言,IMO最重要的一点是本机代码不需要.NET运行时.虽然宽带变得越来越普遍,但几乎每个人都没有.
有些人可能会失望地看到你的2 MB应用程序实际上需要另外20MB的框架下载和一个麻烦的安装过程来运行.如果他们不确定他们是否真的需要您的应用程序,他们可能会在尝试之前将其删除并转向竞争产品.
Ini*_*eer 14
列举一些.
但是,您可能还希望从相反的角度来看待问题,以公平地评估要使用的语言.
此外,您可以使用C++/CLI来合并本机和.net代码.
如果您的应用程序需要能够在没有安装的情况下运行(即,如果您不能或不应该执行安装.NET框架之类的操作),那么您不能指望.NET在Windows机器上运行(在Vista之前) ).许多实用程序应用程序可以归入此类别.
我建议用托管代码编写每个桌面应用程序..NET/C#是一个很好的平台.
我的理由: