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++库的存在。
0x00 译文:Windows桌面应用入门选择的更多相关文章
- 0x01 译文:Windows桌面应用Win32开发简介
本节课将简单介绍下使用C++开发Windows桌面应用的一些基础知识 目录: 准备你的开发环境 Windows 代码规范 操作字符串 什么是一个Window? WinMain:程序的入口点 1. 准备 ...
- [翻译].NET Core 3 Preview1和Windows桌面框架开源
原文来自TechViews 今天,我们宣布推出.NET Core 3 Preview 1.这是.NET Core 3的第一个公开发布.我们有一些令人兴奋的新功能可供分享,并希望得到您的反馈.您可以使用 ...
- Win32++:可替代MFC的Windows桌面应用开发框架
写在前面 有过Win32编程经验的朋友都知道,使用Windows提供的API开发桌面应用是相当繁琐的,创建一个功能简单能接收并处理消息的窗口至少也得几百行代码.创建一个可视化的窗口一般要以下几个步骤: ...
- Linux系统VPS/服务器安装WINDOWS桌面环境可以采用的几个方法
我们公司的几个项目需要在WINDOWS桌面类型的界面操作,哪怕仅有一个浏览器远程操作也是可以的,我们运维部门得到的任务就是需要能在已有的Linux系统的VPS.服务器环境中能够远程操作,至少需要能可以 ...
- 使用EXE4J和Inno Setup 编译器将java程序打包成windows桌面应用安装程序
java项目结构如下: Demo是模仿程序快照,主要设计两个按钮:保存快照和恢复快照: 保存快照将对象(窗口)序列化保存下来,后面无论做了什么操作,只要点击恢复快照, 就会读取之前保存的序列化的对象. ...
- Linux远程连接Windows桌面
Ubuntu对初始用户的界面友好是有目共睹的:Fedora一向以创新.傲慢的姿态示人.其实,对于两者,我虽然更倾向于选择Fedora,但不可避免地会两者比较,发现Ubuntu更加人性化,这点是经过很多 ...
- 如何将程序添加到Windows桌面右键菜单
在Windows桌面上右键单击鼠标时,将显示默认菜单.如果您想要将其它程序添加到Windows桌面右键菜单中,则可以按照以下步骤执行: 运行WinUtilities上下文菜单管理器 点击添加 选择菜单 ...
- Visual C++ Windows 桌面应用程序样例(摘抄)
//================================== //Windows应用程序框架结构(例子) //参考:<Visual C++宝典>陈国建等编著 //======= ...
- 适用于Windows桌面应用程序的.NET Core 3
介绍 9月,微软发布了新版.NET Core,用于构建Windows桌面应用程序,包括WPF和Windows Forms.从那时起开发人员可以将传统的nfx桌面应用程序(和控件库)迁移到.NET Co ...
随机推荐
- spingBoot-自定义过滤器
package com.cx.springboot.filters; import java.io.IOException; import javax.servlet.Filter; import j ...
- SQLAlchemy如何给列和表添加注释comment?
1.首先需要升级版本到1.2.x,我用的是1.2.14验证的,没有问题 2.看示例: class LoadResource(Base): """施压机资源."& ...
- jenkins使用slave报编码错误[WARNING] File encoding has not been set, using platform encoding ANSI_X3.4-1968, i.e. build is platform dependent!
jenkins:master-slave 模式: master编码配置: slave编码配置: 可以看出master 和 slave的配置是一样的,但是当项目在slave上执行的时候,偶尔会报如下错误 ...
- iOS: 沙盒的详解和目录的获取
沙盒的详解: •iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒 •iOS常用目录: –Bundle //该目录下的文件是用来存储应用程序包的 ...
- ScaleIO 1.2 基础
The ScaleIO virtual SAN consists of 3 software components =================== Meta Data Manager (MDM ...
- 我的Mac必备软件
1.Svn工具: Cornerstone_v2.7.10 2.iPhone配置文件管理 iPhoneConfigUtility.dmg 3.有道 for mac http://cidian.youda ...
- mysql安装错误总结
1.若在启动mysql服务时出现如下错误,可查看错误日志找出错误原因. Error:Starting MySQL.The server quit without updating PID file ( ...
- es6 - 回调深渊
带着以下疑问来解答以下问题,你会学到很多 1. 回调深渊为什么会出现,为什么需要回调 ? 2. ES6为什么会出现Promise? 3. 回调的作用是什么? 跟闭包有关吗? ES5 ~ ES6 回调深 ...
- tomcat启动报错,找不到相应的 queue,从而引发内存泄漏
tomcat启动报错,无法创建 bean listenerStatusChangeDealHandler, no queue 'STOCK.NOTIFY_CHANGE.INTER.CACHE.QUEU ...
- 算法笔记_029:约瑟夫斯问题(Java)
目录 1 问题描述 2 解决方案 1 问题描述 引用自<算法设计与分析基础>第三版: 约瑟夫斯问题,是以弗拉瓦斯.约瑟夫斯(Flavius Josephus)的名字命名的.约瑟夫斯是一 ...