Win8 WinRT将替换Win32 API程序员何去何从?

时间:2022-04-03 20:36:38
win8 新引入了称为WinRT的核心API。支持使用C/C++、.NET或JavaScript来开发Metro风格的应用。这些应用自动获得硬件加速和高级电源管理的功能。现有的Silverlight和WPF应用程序可以以最小的代价移植到新的“Native XAML”库。

以下是主题演讲的摘要。当它们发布时,将提供更多细节。

概要

Windows 8: 基本内存使用从540MB降到281MB。

锁屏将显示用户内容.

触摸式密码,基本上是点击图像上的三个点给机器解锁。

类似Windows Phone,开机画面使用鲜活的瓦片状的Metro风格。

重点在全屏程序上。

应用程序特定的和系统设置在用户接口上共享相同的空间,这表明应用程序需要说明与哪些系统设置相关。

新版IE将焕然一新。所有的功能都隐藏在滑动的应用里。

拼写检查系统内置。

开发者预览版包括Visual Studio 11 Express和Expression Blend 5。在公开Beta的时间表里没有标明下一个里程碑是什么时候。内在更新在需要的时候将被推送到安装了预览版的机器上。可用于x86/x64的预览版本在今晚开始提供下载:http://dev.windows.com

应用集成

Windows 8将提供被称为“挂件(charms)”的扩展点。一个例子是“共享挂件”,它展示了文本共享的所有方式,如电子邮件、Facebook、Twitter等。应用可以通过实现正确的接口,在挂件内部注册它们自己。同时其他应用程序可以表明它们能发送信息给这个挂件。这个概念非常像JavaScript的混搭或经典的OLE,但它更关注应用间的交互。

支持系统范围的搜索。而且应用可以注册为搜索服务提供者。

应用程序可以直接公开云端的文件,为其他应用程序使用。这样不需要拷贝文件(如图片)到本地硬盘,其他应用程序就可以访问它们。

为Windows 7开发:经典平台

· Internet Explorer上的HTML/JavaScript

· Win32上的C/C++

· NET上的C#/VB和Silverlight

为Windows 8开发: Metro风格

Windows内核仍然在最底层

WinRT是新的操作系统级别的API层。它是新的Windows本地API,而不是构建在Win32的上面。

你可以从C / C ++,C#/ VB或JavaScript访问WinRT。XAML是C、C++、C#和Visual Basic中的UI层。HTML/CSS将继续作为JavaScript的UI层使用。

Visual Studio提供Windows 8各种风格的应用程序的项目模板。第一个示例是一个基于JavaScript的应用程序。应用程序没有编译,而是打包其所需的所有的HTML和JavaScript文件。 Windows 8可以直接运行它,而不需要启动Web浏览器。

上文提到,JavaScript可以使用WinRT API访问本地功能。在主题演讲的演示中,只用了几行代码便显示了新的Windows打开文件对话框。由于Facebook已经安装在电脑上,打开文件对话框在演示者的Facebook页面上显示图片。 JavaScript应用程序并没有写任何网络代码,它和Facebook之间的这种联系完全由平台处理。

Expression Blend现在更多地支持HTML和CSS。

HTML5的网格方案对构建Windows8应用程序来说是必不可少的。如果没有它,要支持多种屏幕分辨率的Windows8上运行应用,将非常困难。

Metro风格的应用程序在不可见时自动挂起。这样做可以延长电池使用时间。

应用商店

正如预期的那样,现在有分发Windows应用程序的商店。应用程序许可的技术方面由商店本身处理,应用只是显示基本信息,如价格和是否有试用期。

提供Windows商店的应用程序需要认证。用来验证应用程序的工具将交给开发者,这样他们在正式提交申请前就可以看到和纠正违规现象。

访问Windows 8商店的应用使用JavaScript编写,使用了WinRT API。

应用商店不局限于Metro风格的应用,传统的Win32程序在商店里也可以见到。

从Silverlight升级到Windows 8

在演示中,所有现存的XAML都如从前一样工作。演示者仅需要改变命名空间(如System.Windows变为Windows.UI),并调整网络代码。只有十几行代码,就能够注册应用程序作为搜索服务提供商。

从Windows 8迁移到Windows Phone只需要额外添加一两行代码。

硬件支持

一个称为“连接待机(Connected Standby)”的新模式是受移动设备的启发。功耗非常低,偶尔启动为Windows临时打开网络连接,以允许应用程序接收更新。由于该系统是从来没有真正关闭,瞬间就恢复工作。

最大支持256TB的硬盘。Windows 7仅支持小于2TB的引导驱动器。

整个系统使用图形硬件加速。Metro风格的应用默认使用它,不需要额外编码。

Sensor Fusion API将结合陀螺仪、加速度计和磁强计的信息。获取基本信息,如设备的物理方向,仅需要三行代码。

现在网络协议栈支持如3G的边信道(side-channels)概念。

他们提供一台运行Win8和Visual Studio的Tablet作为赠品。

刷新(Refresh)和复位(Reset)

使用刷新命令,将删除除了个人信息/设置之外的一切。Metro风格的应用程序将被保留,任何Win32风格的应用程序将被删除。这基本上是用来响应系统问题,如病毒。

复位命令将彻底清理电脑。所有个人信息将被删除,机器返回到出厂设置,就跟刚买来时一样。

有一个命令行工具来更新基准镜像。可以用于添加应用程序到标准镜像,如Visual Studio或Office。企业用户很可能希望自己公司定制的软件包括在此基准图像中。

云服务

应用的设置、主题、密码等可以通过Windows Live账号在不同机器之间同步。

Windows通讯簿从所有来源,包括社交网站,得到所有的联系人,并通过Windows Live账号共享它们。用同样的方式可以共享日历。

所有Windows Live账号的用户都能使用Windows SkyDrive。

Windows Live允许在一台机器*问另一台机器,即使另一台机器是在防火墙后面。关心信息安全的公司应该小心,因为这让没有技术技能的普通用户可以很方便地将机密文件从工作站移动到家里的电脑,即使不在一栋建筑物里。

微软希望开发者使用Windows Live将他们的应用连接起来。

            分析:上面文章 你可以从C / C ++,C#/ VB或JavaScript访问WinRT 这句话意味着什么?如果这几种语言都能全部访问WinRT 话,性能几乎差不多的话,大家可以想象哪种开发语言在操作系统上开发周期更长,时间更久?程序员们都知道肯定是C 或者C++ ,也就是说 C,C++ 在WIN8操作系统应用程序的优势全没了。 也许说到这里 C ,C++程序员可能会说:"老子转嵌入式,微软太坑爹了。"。没错。。C C++ 在嵌入式市场是一下取代不了的。但有个小问题 一个做 windowsXP 游戏开发的 程序员 转 嵌入式 大家都知道 要学多少东东。淘汰一批C C++ 程序员 是必然的(这里的淘汰是行业上淘汰不是下岗,技术大牛们金字塔中上层的人一下是下不来的)。说到这里C#程序员偷偷笑了。。。终于可以在win8 下面 达到以前访问win32API 效果。C# 可以扬眉吐气。C#占有了更多的领域 基于 win8 的游戏编程。多年做C#的程序员苦恼于.NET性能 被C,C++鄙视不能做游戏开发。高呼一声:"不是我们不会。。。是没有几家公司用C#开发游戏。。。"。多媒体通讯行业是不是也要招聘更多的C# 程序员?XAML是C、C++、C#和Visual Basic中的UI层,这对于接触过silverlight或者WPF的程序员 so easy!难道C#程序员领域更广就意味着待遇会高吗?这个真不一定。。如果一批C,C++程序员转C#,C#菜鸟们可能也会在这次竞争中被踢出局。IT行业每隔10年一次洗牌。C#.NET已经有10年历史了。也该要洗牌了。无论C C++ VB C#程序员 都在对微软这种做法感到反感。"吗的,老子的程序好好的 你操作系统API 都换了,你在跑,我等着饿死吗?"。其实对软件工程来说:微软这样做是更易于操作系统软件的抽象,核心底层抽象封装。但win8操作系统能不能火?这是一个问号。。如果火了。IT真的要洗牌了。大浪淘沙。如果WIN8 像 vista 一样失败。这把牌还洗不了。本人只是觉得的微软这次操作系统升级动作是不是有点大了?难道是为了当年.NET没有彻底代替WIN32API,没达成的微软的.NET战略,用户抱怨性能不行而做出来的战略性的改变吗?我只想说:“走路的时候,步子不能迈的太大,会扯到蛋的”。