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 ...
随机推荐
- 【中英】mac电脑清理软件 ToolWiz Mac Boost
简单介绍: ToolWiz Mac Boost是一款适用于Mac电脑清理加速最好的终极应用, 使您的Mac电脑干净有条理, 执行飞速且稳定.始终保持最佳状态! ToolWiz Mac Boost 运用 ...
- MyReport报表引擎2.1.0.1新功能
MyReport报表引擎(免Flex开发集成版)的使用场合适用于以传统html构建的系统,希望集成MyReport报表引擎的报表预览.打印和报表设计功能,而且不须要进行Flex相关的二次开发的用户.M ...
- ubuntu 下安装 VIM 依赖vim-common错误
ubuntu 下安装 VIM 依赖vim-common错误 sudo apt-get remove vim-common 先把上面的错误依赖删除 sudo apt-get install vim ...
- 一次寻找IBatisNet事务bug的过程
本文的上下文环境 操作系统:Win7 x64 Professional 开发工具:Visual Studio 2017 语言:C# 数据库ORM:IBatisNet 1.6.2 一.前言 这个项目 ...
- TP框架ajax U方法不解析怎么办?
TP框架中ajax U方法不解析 ajax U方法不解析 ajax url不解析 问题: 造成问题原因: Js 存在单独的 js文件中和html分离了.造成不解析! 解决方法: 方法一:将js放到ht ...
- MySQL 5.1参数
MySQL 5.1.73参数 Variable_name Valueauto_increment_increment 1auto_increment_offset 1autocommit ONa ...
- Android SDK镜像的介绍使用【转发】
由于一些原因,Google相关很多服务都无法访问,所以在很多时候我们SDK也无法升级,当然通过技术手段肯定可以解决,但是比较麻烦,而且下载速度也不怎么样. 这里笔者介绍一个国内的Android镜像站, ...
- Hadoop-1.2.1学习之Job创建和提交源码分析
在Hadoop中,MapReduce的Java作业通常由编写Mapper和Reducer開始.接着创建Job对象.然后使用该对象的set方法设置Mapper和Reducer以及诸如输入输出等參数,最后 ...
- 最低位 【杭电-HDOJ-1196】 附题
/* Lowest Bit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- 【BIRT】修改BIRT的背景颜色
修改BIRT报表的背景颜色都在这里了 在BIRT的webcontent/birt/styles/目录下有如下文件列表: dialogbase.css文件修改 dialogbase_rtl.css文件修 ...