写点什么

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

  • 2013-01-03
  • 本文字数:1241 字

    阅读完需:约 4 分钟

在 BUILD 2012 大会的 The Windows Runtime Q&A 座谈上, Chris Anderson Chris Guzak Jerry Dunietz Kamen Moutafov Martyn Lovell Elliot 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

2013-01-03 06:032306
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 150.4 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

hash,bloomfilter,分布式一致性hash

Linux服务器开发

分布式 hash 后端开发 Linux服务器开发 C++后台开发

科创中国开源创新榜单发布,EMQX 获评“年度优秀开源产品”

EMQ映云科技

开源 物联网 IoT emq emqx

云智慧10年资深架构师带你了解:普通程序员向架构师成长必经之路

云智慧AIOps社区

程序人生 架构师 Meetup 晋升 成长计划

web前端培训nginx配置规则

@零度

nginx 前端开发

java培训SpringBoot自动装配原理

@零度

JAVA开发 springboot

Sitemap的重要性

源字节1号

软件开发 网站优化

用uniapp写一个内外循环的全选与反选,不会的赶紧围观

CRMEB

一张长图带你看懂物联网产业十数载“江湖风云”!

亚马逊云科技 (Amazon Web Services)

物联网

恒源云(Gpushare)_自动化训练小技巧白送给你,不要吗?

恒源云

OSS SSH hy-tmp

STI即将登录Gate.io,我们有哪些期待?

小哈区块

借品牌升级之际,谈一谈技术开发者为什么选择 InfoQ 写作社区

宇宙之一粟

4月月更 InfoQ写作社区2周年

基于Flink-CDC数据同步方案

领创集团Advance Intelligence Group

算法 java

大数据培训Hive如何控制map个数与性能调优参数

@零度

hive map 大数据开发

进阶篇|有了这招,用文本编辑器搞前端代码都能保证格式统一

Jianmu

运维 前端 自动化 工作流 格式化

问题来了!拔掉网线几秒,再插回去,原本的 TCP 连接还存在吗?

Java全栈架构师

程序员 架构 面试 计算机网络 底层知识

Thinkphp6实现定时任务功能详解教程

CRMEB

从趋势到必选项,探讨企业数字化转型方式方法

华为云开发者联盟

数据 数字化 企业数字化转型 业务数字化

企业如何搭建一个有效的知识管理系统

小炮

企业知识管理 企业知识管理工具

踩了个DNS解析的坑,但我还是没想通

捉虫大师

DNS 问题排查 4月月更

如何优雅的记录操作日志

flyhero

Java Spring Boot 后端 造轮子 4月月更

去中心化的 React Native 架构探索

Shopee技术团队

前端 去中心化 React Native

看板的作用是什么?任务看板如何跟进

阿里云云效

云计算 阿里云 持续交付 看板 项目协作

省掉80%配置时间,这款Mock神器免费又好用

Liam

前端 前端开发 Postman 前端教程 web前端开发

【高并发】一文秒懂Happens-Before原则

冰河

并发编程 多线程 协程 异步编程 精通高并发系列

亚马逊云科技 loT 百亿连接力量

亚马逊云科技 (Amazon Web Services)

亚马逊云

记一次CPU持续增长的问题解决

BUG侦探

Python py-spy CPU增长问题

腾讯二面:Linux操作系统里一个进程最多可以创建多少个线程?

Java全栈架构师

Linux 程序员 架构 面试 操作系统

OpenHarmony 3.1 Beta版本关键特性解析——OpenHarmony图形框架

OpenHarmony开发者

OpenHarmony 动画效果

初创企业需要CRM系统的原因

低代码小观

初创公司 企业管理系统 CRM系统 客户关系管理系统 初创型企业

48天打造你的专属 Twilio——浅谈运营商通信中台

网易云信

通信

座谈:来自微软WinRT开发者的答案_Windows_Abel Avram_InfoQ精选文章