加个链接:微软软件开发技术二十年回顾(转):从win32到.net
要了解微软开发技术的发展,以及当前技术的整体结构,先区别以下名词
- API 接口的变化
- 刚开始我就是分不清这个的,WPF / MFC / COM / .net傻傻分不清楚
- 这个主要是在Windows平台开发
- 编程语言
- GUI 库 / 技术
- MFC/QT/WPF/UWP
- .net/java VM机制,即时编译(JIT)跨平台
- 稍后再讲
API
- dos/win16
- win32:时代
- winFX
- COM组件技术
- DNA:对应基于COM的分布式架构,在.Net中被相应技术取缔
- .Net:COM演化发展而来
发展路线
- 从面向过程到面向对象
- 不受设备约束
- 事件驱动,将控制权转移
GUI
- 手动码GUI类库。。。
- MFC:C++GUI开发。
- 对Win32函数的包装,大而复杂
- 对应C++/CX,使用C++开发windows应用程序。
- 相应QT类库 GUI开发,可在Linux上使用
- 个人观点:windows下开发用C#挺好。而且如果有C++基础学C#基本上快的很,最多一两星期搞定。语言并不是问题,对应需求才是问题。(好吧最后一句是我臆测的= =)
- WPF:基于矢量绘图引擎的图形界面技术
- UWP:Windows10 通用应用界面开发技术
- UWP/WPF都使用XAML,
- 除了一小部分差别之外基本上都差不多,即WPF转UWP很容易
- windows10越流行,UWP越是大势所趋
跨平台 VM 即时编译
- java:符合统一标准,或实现相同环境,即可实现"一次编译,到处执行"
- 目标机必须装有 jvm!
- 由 JVM 屏蔽 CPU/OS 等接口,代码运行在 JVM 中
- 当然,如果调用VM没有的就不能实现跨平台了
- 比如说Windows接口,Android独有接口
- .net:.net平台屏蔽 CPU/OS 等接口差异,而后再即时编译为本机代码。
- 与 JVM 不同的是,Java 运行在 JVM 中,而 .net 只是一个中间平台,将代码生成中间语言(CLI)而后即时编译生成本机代码
- 即"一次编写,到处编译"
- 同样,要求目标机有 .net 平台
- 与 JVM 不同的是,Java 运行在 JVM 中,而 .net 只是一个中间平台,将代码生成中间语言(CLI)而后即时编译生成本机代码
- C++/C:符合统一标准,或实现相同环境,即可实现"一次编写,到处编译"。
- 目标机有编译器就好了,相对灰常轻量高效
- py/JS:解释语言,只要目标机有解释程序,就可以"一次编写,到处解释",感觉很高大上的样子,好像比编译/运行NB多了。。。
从win32到.net
时间: 2025-01-04 23:57:25