时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

座谈:来自微软 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:032259
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

Apache ShenYu源码阅读系列-Divide插件

子夜2104

解读谷歌 Pathways 架构(二):向前一步是 OneFlow

OneFlow

人工智能 机器学习 深度学习 深度学习框架 谷歌

云原生虚拟化的最佳拍档:Kube-OVN + KubeVirt 【附有奖调研】

York

Kubernetes 云原生 网络性能 云原生网络 网络虚拟化

TDesign 更新周报(2022年4月第2周)

TDesign

机票报价高并发实施的关键路径

Qunar技术沙龙

高并发 后端技术

等了15年,这本豆瓣评分高达9.3的编程巨著终于出版了!

图灵教育

小波从此逝,江海寄余生,不但是文坛巨擘还是不世出的编程奇才,王小波离世25周年

刘悦的技术博客

编码习惯 编码 代码 编程、 编码规范

免费训练营限时抢报|大咖带你玩转PolarDB for PostgreSQL开源训练营

阿里云数据库开源

数据库 postgresql 开源 阿里云; polarDB

InfoQ专访龙蜥社区陈绪:从CentOS 停服说起,龙蜥操作系统的开源观

OpenAnolis小助手

centos 开源 操作系统 开放原子开源基金会 龙蜥社区

linux之chattr命令

入门小站

在线SVG在线编辑器

入门小站

工具

Retool 是什么,怎么样? —— Retool 低代码工具测评

蒋川

低代码 低代码开发平台 retool

读《Software Engineering at Google》(01)

术子米德

架构师成长笔记

2022春季校园招聘·复旦站,即将开启~

非凸科技

FAQ是什么?如何高效地创建一个好的FAQ页面?

小炮

FAQ

艾瑞咨询:2022年隐私计算卓越者——洞见科技

洞见科技

隐私计算 数据智能解决方案

健康码如何影响世界

王字 Wannz

小程序 微信 finclip 凡泰极客 健康码

如何做好复盘

Hockor

复盘

为什么要选择Web3?它有什么好处?

CECBC

数字人民币试点扩大,市场化问题如何解决?

CECBC

恒源云(Gpushare)_FAIR CVPR2022新作DVT是个啥?

恒源云

深度学习 CV transform

【分享汇总】25个主题分享,360°领略OpenHarmony最新技术版图

OpenHarmony开发者

OpenHarmony

2022年中国低延时技术市场洞察

易观分析

低延时

华为与OpenInfra基金会十年共筑开源基础设施平台

科技热闻

读《Software Engineering at Google》(02)

术子米德

架构师成长笔记

有小程序还没有App?试试用小程序转App功能

Speedoooo

APP开发 移动端开发 小程序转app

为什么领导不喜欢提拔老实人?

方云AI研发绩效

团队管理 研发管理 数字化转型 职场 PUA 职场发展

区块链一周热点回顾|虎符元宇宙建筑Hoo HQ已对外开放体验

区块链前沿News

虎符交易所

为什么要进行数字化转型

王字 Wannz

数字化生态 数字化转型 finclip 小程序容器

生于彼,长于此:狗形机器人的中国情缘

脑极体

Reactor实现http服务器,附完整代码

Linux服务器开发

后台开发 reactor HTTP Linux服务器开发 服务端开发

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