写点什么

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

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

关注

评论

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

HummerRisk V1.0.1:k8s检测扩充、批量删除及修复bug

HummerCloud

开源 云原生 云安全 云原生安全

Android C++系列:函数返回值注意事项

轻口味

c++ android 三周年连更

火山引擎DataLeap:在数据研发中,如何提升效率?

字节跳动数据平台

运维 数据研发 企业号 4 月 PK 榜 任务模板

2023年第十二届数据技术嘉年华(DTC)资料分享

墨天轮

数据库 oracle 云原生 智能运维 国产数据库

open3d将pcd存数据库

linux大本营

sqlite 数据库 存储 :MySQL 数据库

智能感知编码优化与落地实践

百度开发者中心

人工智能 视频 百度智能云

行业分析| 视频监控——AI自动巡检

anyRTC开发者

人工智能 音视频 视频监控 自动巡检

构建云边端一体的分布式云架构,软硬结合驱动边缘计算创新场景

百度开发者中心

云计算 存储 边缘云

乌合之众再次上演,打工人将被AI一键淘汰?

引迈信息

人工智能 AI 低代码 AIGC ChatGPT

如何写出CPU友好的代码,百倍提升性能?

阿里技术

cpu 代码优化

websocket底层原理

linux大本营

nginx HTTP websocket 通信协议 web服务器

AITO问界M5:最安全、智能的座驾

极客天地

知名直播App被苹果商店下架,或涉及侵权问题

曲多多(嗨翻屋)版权音乐

ios iphone 软件开发

iOS MachineLearning 系列(4)—— 静态图像分析之物体识别与分类

珲少

ubuntu如何安装Json解析库Reader

linux大本营

ubuntu JSON库 reader

C语言sqlite3,实现判断一个数据库存不存在,不存在就创建

linux大本营

数据库 C语言 sqlite3

0Ω电阻在PCB板中的5大常见作用

华秋PCB

电路 元器件 PCB PCB设计 电阻

递归算法

linux大本营

递归 数据结构与算法

Mac无损音乐播放器:Audirvana for Mac中文

真大的脸盆

Mac Mac 软件 音乐播放 音乐播放器

怎样判断户外LED显示屏质量是否达标

Dylan

媒体 广告 户外LED显示屏

vue 入门知识点有哪些?

海拥(haiyong.site)

三周年连更

面试还不懂JVM性能调优,看这篇文章就够了!

程序员小毕

程序员 面试 后端 JVM jvm调优

写一个回调函数

linux大本营

回调函数 C++

如何在makefile中链接Json解析库Reader

linux大本营

json makefile reader

软件测试/测试开发丨自动化测试之读取配置文件

测试人

软件测试 自动化测试 测试开发

linux下怎么拉取远程的代码并且合并到本地,保证不冲突

linux大本营

git Linux

基于STM32设计避障寻迹小车

DS小龙哥

三周年连更

给广场舞大妈讲讲什么是大语言模型!

FN0

AIGC

selenium源码通读·10 |webdriver/common/proxy.py-Proxy类分析

Python 测试 自动化测试 源码剖析 selenium

刘浩:当谈到RTO < 8s时,OceanBase究竟在说什么?

OceanBase 数据库

数据库 oceanbase

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