BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

座谈:来自微软WinRT开发者的答案

| 作者 Abel Avram 关注 10 他的粉丝 ,译者 臧秀涛 关注 4 他的粉丝 发布于 2013年1月4日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

在BUILD 2012大会的The Windows Runtime Q&A座谈上,Chris AndersonChris GuzakJerry DunietzKamen MoutafovMartyn LovellElliot H Omiya等负责WinRT不同组件的主要开发者回答了开发者关心的一些Windows 8应用程序相关问题,特别是WinRT问题。以下是大部分重要问题答案的摘要。

桌面和Windows商店的应用程序都有一个CLR、一组DLL,但是桌面应用程序的执行不经过WinRT。

WinRT异步调用可能导致问题,比如要检查成百上千个文件名时。每个调用会抛出一个异常,致使调试体验非常不好。研发团队考虑以后解决这个问题。

关于.NET或WinRT的未来版本,微软没有公布任何信息,但他们肯定会在未来某个时间公布的。现在他们能说的就是“Windows 8有一个内置的WinRT版本”。

如果文件已经被桌面应用程序以互斥模式打开,Windows商店应用程序就无法再打开。为了避免这种冲突,我们需要以读模式打开文件。WinRT和桌面应用程序底层的文件系统是一样的。

异步操作是由Windows管理的专用线程池中一个独立线程执行的。从UI线程激发大量的异步调用时必须小心翼翼,因为当这些调用全部返回时对应用程序可能有严重的影响。如果一个应用程序要运行很多异步调用,为了避免系统超载,建议采用批处理方式执行。

WinRT引入了一种新的字符串类型,以便有一种通用方式来支持它上面不同编程语言的需要。一种语言(如C#、 C++和JavaScript等)中创建的字符串在向WinRT传递时不会被自动复制,出于性能考虑,只是传递一个引用,但必要的时候可以复制字符串本身。

为了确保应用程序与WinRT 设备(如Surface)的兼容性,Windows商店的的认证过程只覆盖了一些基本测试,而且测试也不是非常详尽。要确保应用程序能在一个目标设备上正确运行,还需要执行大量的测试。

在WinRT中,微软没有提供可编程的方式来访问系统的某些硬件信息,比如电池剩余电量,这是为了避免开发者利用这种信息来修改WinRT应用程序的行为。其理念是让应用程序在不同的设备和系统状态上保持一致的行为。Windows 8 Dev Portal提供了一些应用运行的设备和Windows版本信息。

针对WinRT编写系统管理类应用程序非常困难,甚至是不可能的。系统禁止或限制了对某些系统资源的访问。

没有可编程的方式来查询应用程序是否使用了某一特定协议,也不能强制应用程序采用特定协议,比如通过文件协议设置确定哪个应用程序负责播放mp3文件。这个由用户来决定。

至于桌面应用程序和商店应用程序之间的通信,与会的一个开发者谈到:“我们花了很大的力气,就是不让它们通信。”唯一的通信方式是通过协议和文件类型关联,这是由用户控制的。

一个WinRT应用程序可以有多个视图,它们分别运行于独立的线程中。Windows将两个这样的视图看做一个应用程序,这意味着用户无法使用系统的应用程序切换机制进行切换,不过有一个专门为应用程序独立开发的机制。

Windows商店应用程序能够打开端口并通信,但不能使用Web服务器的80端口。

查看英文原文Panel: Answers from Microsoft Developers Who Built WinRT

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

不感兴趣 by Java 陈

做为一个写了windows 10几年的开发,做过.net, silveright, wpf的开发,目前对WinRT不感兴趣

不感兴趣 by a a

楼上的名字亮了

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT