博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微软技术的变迁
阅读量:4633 次
发布时间:2019-06-09

本文共 1702 字,大约阅读时间需要 5 分钟。

这个课题很大,我只是站在一个普通人的视角上写一下。

微软的看家技术是什么?vb!先有basic,再有操作系统,dos发展到windows,vb一直发展着。然而到达vb6之后,微软转型设计.net 。.net 是什么?java的山寨版。

为什么java对微软的影响会那么大,首先java是跨平台的,mini的,不过java的跨平台很蹩脚。微软希望所有人都在windows开发软件,而不扩散到其他平台,所以他一直都开发自己专属的技术。这无可厚非,但是市场需要java这种方案。那么微软就觉得应该主动提供这种方案。因此就有了.net。 .net 有一套java的类似技术,但是它并不设计来跨平台,.net是一个不想你跨平台的java。既然.net都做不到java的市场定位,那么.net有啥意义?

因此.net一直是不温不火。在消费级桌面平台,有c++的强力竞争,在企业市场,有java的积累的优势。

一个市场定位错误的产品,必然就无法展现技术的优势。

vb6 从技术上讲,已经很接近.net,但是vb很纯粹,就是为了windows服务的,因此它能做到很mini,他大部分技术都是windows本身提供,因此无需构建太多自己的东西。而.net不同,它试图去建立另一套运行机制,试图建立和操作系统层平行的.net虚拟层,为何需要这样?因为它的技术是借鉴java的,java是跨平台的,所以.net自然就有这种设计。然而.net在商业上是不允许跨平台的,因此这种设计就完全没有意义。

其中,winform 借鉴了vb6的机制,属于传统的windows 界面设计,而wpf是后来的尝试。但是wpf是完全独立于系统,并且没有得到系统支持的“平行”ui,因此效能非常低。就等于你启动了windows之后,再启动一套新的系统,它叫“.net”,并非.net的方案不优秀,而在于它并非原生的。

.net 开发者意识到这种平行的状态,并且把这种平行的状态发挥到极致,以至你在一个系统中可以同时运行不同版本的.net,就仿佛在一台电脑上同时启动几个操作系统,如此的神奇。然而代价是性能!

微软是开发windows的,是做系统的,它让用户基于另一套系统做程序开发有什么意义?用户不会问,为何不让我直接启动.net“系统” ,提供原生体验,而要依附在windows之上?只能说是非常失败的市场定位。

微软可以借鉴java的技术,但是应该清楚自己作为系统提供商的任务,就是要提供原生的支持给客户,而非冒充跨平台厂商,欺骗客户我提供的中间层有原生的性能,并且可以跨平台,而实际没有原生的性能,却又不能跨平台。

.net的发展之路,就是一个性能不足之路,在这十几年的时间里,像样的桌面程序没有,像样的企业程序也没有,只能作为java和c++的极度有限的补充。

最近silverlight官网又要关闭了,有一个.net技术面临市场的淘汰。sl 设计目的是为了替换falsh,微软很多设计都是为了替换别人,而非自己有什么创新想法。有的只是赤裸裸的商业意识。不过从技术上讲,sl是很强大的,因为他就是.net的迷你版。.net为何不能跨平台,在于它太庞大的身躯,自己就是一个平台,如何能和系统结合紧密?sl作为迷你版的,功能有限的子集,反而就没有这种不足。它轻量,所以它只是一个解决方案,并非一个平台。

然而微软本质上还是不希望.net做跨平台的事情,虽然可以支持不同平台,但是他要依附在浏览器之上,无法做到原生启动。随着移动市场的流行,依附在浏览器的插件被一一去除,sl 失去生长的土壤。

假如微软愿意让sl 做到完全的跨平台,那么sl的技术底子还是相当优秀的。

最近,微软推出了win8,这套系统表明了微软的发展方向。win8原生支持了wpf,.net等一部分技术,window终于开始把.net原生化,随着这种趋势的发展,将来windows可能完全吸收.net。 而.net 就真真正正的成为一个本地系统。

转载于:https://www.cnblogs.com/Nobel/archive/2012/12/10/2811651.html

你可能感兴趣的文章
powershell输出错误信息到文件
查看>>
VS不显示最近打开的项目
查看>>
wcf客户端捕获异常
查看>>
MyEclipse安装Freemarker插件
查看>>
计算多项式的值
查看>>
DP(动态规划)
查看>>
chkconfig
查看>>
day44前端开发1之html基础
查看>>
小甲鱼-004改进小游戏
查看>>
琐碎的思绪
查看>>
shell 3数组
查看>>
29个简单直观的移动设备网页设计
查看>>
webform(七)分页
查看>>
中国互联网的十一种盈利模式
查看>>
php中$_REQUEST、$_POST、$_GET的区别和联系小结
查看>>
看了极光推送技术原理的几点思考
查看>>
【转】Vue.js 2.0 快速上手精华梳理
查看>>
【题解】BZOJ 3065: 带插入区间K小值——替罪羊树套线段树
查看>>
OpenCV矩阵运算
查看>>
CF 567D(One-Dimensional Battle Ships-二分)
查看>>