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 ...
随机推荐
- Net设计模式实例之观察者模式
一.观察者模式简介(Brief Introduction) 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化的时,会通知所有观察者对象,使他们能 ...
- Maven核心概念之仓库,生命周期与插件
宏观图 一.仓库 统一存储全部Maven项目共享的构建的位置就是仓库. 仓库分为本地仓库和远程仓库.远程仓库又分为中央仓库(中央仓库是Maven核心自带的远程仓库),伺服(还有一种特殊的远程仓库,为节 ...
- Ubuntu 中/etc/resolv.conf 文件修改丢失的解决方案
方法一 1.需要创建一个文件/etc/resolvconf/resolv.conf.d/tail sudo vi /etc/resolvconf/resolv.conf.d/tail 2.在该文件中写 ...
- Microsoft Bot Builder Overview
微软机器人构建器概述 微软机器人Builder是一个强大的框架构建机器人可以处理自由交互和更多的引导,这种可能性是显式地显示给用户. 它很容易使用和利用c#写机器人提供一个自然的方式. 高级功能: 强 ...
- (笔试题)N!尾部连续0的个数
题目: 对任意输入的正整数N,编写C程序求N!的尾部连续0的个数,并指出计算复杂度.如:18!=6402373705728000,尾部连续0的个数是3. (不用考虑数值超出计算机整数界限的问题) 思路 ...
- asp与aspx有什么区别
asp与aspx哪个好? 最佳答案 你如果想知道哪个好,我想很多人第一个想法就是aspx好. 这很好理解,就像楼上的朋友说的,aspx是asp的升级版. 但是aspx相对于asp的升级可以说是从根本上 ...
- 解决ARC下performselector-may-cause-a-leak-because-its-selector-is-unknown 警告
在ARC下使用 [theTarget performSelector:theTarget withObject:Nil]; 会出现警告:performselector-may-cause-a-leak ...
- UNIX网络编程读书笔记:地址操纵函数
地址格式转换函数:它们在ASCII字符串(人们比较喜欢用的格式)与网络字节序的二进制值(此值存于套接口地址结构中)间转换地址. 1.inet_aton.inet_addr.inet_ntoa inet ...
- Android工程内嵌Flutter
本文记录一下Android主工程中嵌入部分Fluttter页面的实现方法. 创建一个Android工程模拟你的现有工程 为了让Android工程和Flutter工程互不干扰,这里不再以Android工 ...
- nginx 设置错误的自己定义404页面跳转到500
5年前写的站, 当时是在apache下写的error page, 换了nginx后, 404页面直接跳到了500 server内部错误. 仅仅须要在配置 try_files 的时候指定一下就能够了 我 ...