0x00 译文:Windows桌面应用入门选择

      当你想要创建一个新的桌面应用的时候,第一个你需要做的决定是使用Win32 和COM 还是使用.NET两个选项.

C++ 和 Win32 使你“离奖牌更近”,并使你可以获得最佳的应用性能。.NET 使你使用较低语言达到较高的编码水平并实现更高的效率。

下面是两者的区别:

补充:

.NET

开发语言:C#,C++,F#,VB

.NET为桌面、Windows Phone和Windows存储提供了一致的、一流的开发经验。

它提供了更高水平的编码和生产率,封装了很多公用可重复使用高效的代码,比如语言集成查询(LINQ),日期和时间库,序列化,Web服务安全与密码学,并行编程库等

NET允许您在桌面上继续开发基础应用程序,并添加令人兴奋的新体验,同时使用现有的技术和在设备之间重用代码。

如果你想创造更多的定制平台适当的经验,在任何设备上,Visual Studio的行业合作伙伴(VSIP)提供解决方案,使重新用C #技能和代码和非Windows设备。

可选UI栈: .

1.  .NET Windows Presentation Foundation (WPF)

2.  .NET Windows Forms

其他功能:

Model-View-ViewModel design pattern (MVVM)

Portable class libraries  NET可移植库允许二进制文件在多个平台之间共享

Modernize your user experience 使用户体验现代化,谨慎使用动画,并实现.NET异步编程

C++和Win32 :

语言:C++调用COM接口

C++和Win32对开发者要求比较高,需要较高的编码水平

原生操作系统权限功能

DirectX技术

C++ Win32 更加接近底层,高性能的图形访问

可以让你更好地实现内存分配和CPU性能分配。

不需要一个高层次的运行环境等

c++ 对游戏和丰富的图形应用支持

C++对传统桌面应用支持

可选UI:

MFC (Microsoft Foundation Class Library)

Win32

Third-party application frameworks

提供功能:

硬件级优化,包括对资源分配的严格控制、对象生命周期、数据布局、对齐方式、字节打包等等。

Access to performance-oriented instruction sets like SSE and AVX through intrinsic functions.

使用模板的高效、类型安全的泛型编程。
高效安全的容器和算法。
特别是Direct3D和DirectCompute DirectX。
C++ AMP

 总结:

使用.NET #(C或Visual Basic)高水平的编码,更多的生产力,丰富的框架和服务,现代的客户体验和跨平台支持,资产维护(Windows应用商店的应用程序,Windows Phone应用程序,Windows桌面应用程序,和其他人)。

使用本机C++游戏和其他图形密集型应用程序,当您需要实现最高的性能水平,管理资源或内存布局明确,访问硬件级的优化机会,当你希望你的应用程序没有被移植到平台.NET运行时,或更容易地利用免费的,高质量的C和C++库的存在。

原文地址:https://www.cnblogs.com/xingyunblog/p/7142154.html