Win 8:昔日Windows Longhorn的新生

互联网 | 编辑: 何毅 2011-07-26 08:37:00转载

微软投下一个重磅炸弹,新的Windows 8将启用身临其境的友好接触方式,而所用的开发平台不再基于过去十年微软一直倡导的.NET。

微软投下一个重磅炸弹,新的Windows 8将启用身临其境的友好接触方式,而所用的开发平台不再基于过去十年微软一直倡导的.NET。相反,它将使用HTML5和JavaScript,此后,该公司也没有在这个问题上作出进一步的回应。尤其,这个问题已引起很多Windows开发人员的特别关注-----怎样才能将现有的技能和经验用在这些新开发应用的上?直到九月会议之前,该公司仍然没有透露任何信息。

然而情况可能不会像许多开发商担心的那样严峻。早期里程碑版本的Windows8已经泄露到互联网,并已有人投入相当大的努力去弄清楚他们是如何工作的。尽管官方守口如瓶,但仍然有部分信息透露。到目前为止,Windows 8的发展似乎还顺利,有迹象表明,它实际上会编写Windows软件来解决许多长期存在的隐患。如果微软可以解决这一切问题,希望它能够完成这一平台,Windows8将作为Windows Longhorn的一个重要改进版本。

历史的点滴

当我们看到微软为Win8所做的一切之前,我们先了解一些背景。首先我们要清楚一些过去的事实。在此之前,.NET在2002年推出,Windows应用程序主要有两种方式:“大”的应用,认为办公室应用软件中的Photoshop, Netscape 和Navigator中,往往使用的是Win32 API编写和C++。 Win32是一个大的API,它涵盖了许多内容。“显而易见”的东西很多,如图形和用户界面的创建,网络通信和文件系统的访问,也有许多深奥的东西像创建备份,网络配置和安全性。

它很庞大,而且做了很多工作,但也有一些重要的事情,它做得并不是很好,有些东西它并没有真正的去做。例如,尽管它包含了数据库访问的几个API,但实际上,它是使用纯的WIN32编写应用程序来使用的数据库很多,也很繁琐。更甚者,即使它拥有所有你需要组建的一个基本GUI工具,但使用起来十分不易。

例如,它不给你任何帮助来设定用户界面。文本框和工具栏的每个按钮必须由开发者来定位。如果你想在你放大窗口时改变位置,那么所有步骤都必须由你自己来完成。许多图书馆采用它作为开发,力图使工作变得更加容易,包括微软自己的MFC层,但你常常不得不使用从Win32钻研得到的东西来工作。

另外一个编写Windows应用程序的主要方式是Visual Basic,使用Visual Basic来完成一些任务很容易。尤其是涉及到数据库和创建用户界面,它已成为商业世界的基础。有许多商业应用程序将数据库里的一些数据显示给用户,给用户一个表格,让他们添加数据。在完成这些任务时,Visual Basic是出色的。它很少直接调用Win32函数的支持,特别是那些依赖于Win32的某些结构。

Visual Basic也缺乏支持流行的面向对象的示例,仅仅是“基于对象”。

.NET的出现,改变了这一切。.NET给开发人员对Visual Basic的易用性很大,但并没有Visual Basic中规定的妥协。与Visual Basic相似,它已构建了良好的用户交谈界面,数据库工具,因此突出了它对商业应用的编写。但是,与Visual Basic不同,如果稍有麻烦,它也很容易访问Win32。但该平台也获得了业务发展的迅速牵引,一些新的商业项目也在用它。

Longhorn的梦想

Windows XP公布.NET的前一年,毫无疑问没有使用该技术。但由于微软2003年10月在PDC上宣布,这是因为改变了Windows Longhorn所做的发布, Longhorn中集成.NET为核心的Windows平台。.NET FX,因为它在公司(以“FX”的“框架”地位)将让位给WinFX,作为Windows框架相同的技术基础。除此之外,这将包括一个用于编写用户界面,代号为Avalon的彻底现代化,基于矢量和硬件加速的全新方式。 Windows本身会使用WinFX的方案,用户可见的程序如资源管理器,计算器等等。展望未来,用.NET的方式来编写Windows应用程序,虽然仍然存在Win32兼容,但将会冻结,静态。

Longhorn是结束一直编写Windows程序的老路子,一个现代化的Windows开发是新时代的曙光,这就是一个十年或十五年之前无法实现的决定计划。

正如我们所知道的,Longhorn从未发行。该项目增长巨大,使得它难以管理,以及破坏。同时,Windows XP是基于Longhorn的。被黑客侵袭时,微软倾注了Windows XP和Windows Server2003的安全性。大多数情况下,使用Windows XP Service Pack 2和Windows Server 2003的Service Pack 1,更多的利用其资源,开始它的下一代操作系统的发展,最终以Windows Vista作为发行,从新开始。

.NET是发展重启的最大的输家之一。 Windows Vista虽然在某些方面激进,但放弃了整个“WinFX的”的概念。Avalon没有发行,现在已知的是Windows Presentation Foundation(WPF),但只作为一个附加的作业系统,而不是已知的核心部分,.NET代码在Windows Vista和Windows 7上唯一重要的一块是媒体中心(这甚至不使用WPF)。其他的都是普通老版的Win32。更重要的是,在Win32 API本身进行了更新和扩展。许多底层特征的增加和支持GUI的改变,如Windows Vista的任务栏缩略图和Aero玻璃主题,且分别加入到Win32。这些GUI的变化,特别是WPF都没有很好地配合。

导致这一决定的因素是它的部分只是为了私利,没有时间重写所有使用的.NET。但也许是更大的因素是在微软内部的分歧。 Windows是来自Windows部门(WinDiv),.NET来自开发部(DevDiv),而这又是服务器和工具业务的一部分。尽管人们可能认为这些团队和他们的目标一致,但是情况并非如此。并没有任何恶意,只是表示,各有不同的观点。

分裂发展

这些重点的当时一些感觉,例如WPF,只能使用.NET程序,它也只能在C#和Visual Basic.NET上编写。且整个API内部都是限制本地的C++程序,需要作出更多的努力,使他迁移现有程序使用WPF。当未来的发展对使用.NET有价值时,这是有道理的。但是当这一计划改变和本地代码恢复作为首选的开发环境中的位置,这是一个很大的问题。微软不能使用纯净的,基于矢量的,与分辨率无关,硬件加速,WPF库可生成任何核心操作系统的应用程序。

其他的重点则是一个简单的结果,却有着小组不同目的。因此,例如,DevDiv的首要任务是使.NET成为一个可信的开发平台;这意味着增加新的核心功能,开发库和工具,如Silverlight工具。 WinDiv的重点是上述C ++的兼容性,稳定性,并解决一些技术问题。所有的目标是合理的,但由于DevDiv没有回答WinDiv,没有那么多的考虑到WinDiv的事情。其结果是,WinDiv的管理对.NET不满意,并忽略了它。

.NET的后续版本情况有所改善,与所有的C++问题现已解决。虽然WinDiv,与DevDiv不满忽视了它的工作,正如Windows7,只有媒体中心使用.NET。Windows 7新的API都是原生C++的API,没有.NET程序。和本机C + +程序访问仍然没有进入到一个与分辨率无关,基于矢量的,硬件加速构建用户界面的框架。

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑