写点什么

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

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

关注

评论

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

ARTS打卡 第10周

引花眠

ARTS 打卡计划

初识分布式:MIT 6.284系列(一)

Kerwin

分布式 MIT 28天写作

Vue中使用装饰器,我是认真的

前端有的玩

Java Vue 装饰器

将信将疑,将中台进行到底

郭华

Newbe.Claptrap 框架如何实现多级生命周期控制?

newbe36524

架构 微服务 .net core ASP.NET Core

飞天茅台超卖事故:Redis分布式锁请慎用!

程序员生活志

redis 分布式

计算机网络基础(十一)---网络层-OSPF协议

书旅

计算机网络 网络 协议栈 OSPF

微软苏州集体抵制来自阿里、华为的跳槽者:请停止你的“奋斗逼”行为!网友:看到 955 不加班的公司名单,我酸了

程序员生活志

程序员 加班 996

第九周

hdhdh

英特尔®AI计算盒参考设计发布 加速智能边缘崛起

最新动态

数据人必须知道的SQL概念(A—Z)

大唐小生

sql 数据 职场成长

云小课 | IPv4枯了,IPv6来了

华为云开发者联盟

IP 公有云 虚拟私有云 华为云 虚拟化

老哥,您看我这篇Java集合,还有机会评优吗?

苹果看辽宁体育

Java 后端

《深度工作》学习笔记(3)

石云升

学习 深度工作 工作哲学

华为云GaussDB(DWS)内存知识点,你知道吗?

华为云开发者联盟

数据库 大数据 数据 内存 华为云

技术管理者带团队的几个实用技巧

Phoenix

团队管理 企业文化 团队 价值观

财务分析与主要的模型

松子(李博源)

谈一谈webpack打包

林浩

Java 大前端 webpack

架构师训练营第八章-作业1

A Matt

手写一个重入锁

诸葛小猿

synchronized CAS 重入锁 compareAndSwap ReentrantLock

系统设计系列之如何设计一个短链服务

看山

架构 面试 分布式 架构设计 短链服务

<<前端进阶篇>> PDF 出炉了 — 「阿宝哥」,精心准备的 6 万多字 170 页的前端进阶资料

阿宝哥

大前端

你问我答:微服务治理应该如何去做?

BoCloud博云

容器 微服务 PaaS API 博云

秒杀系统问题与方案设计

superman

秒杀 架构总结

智能膜切机,解决手机贴膜行业难题

Geek_116789

授人以渔:stm32资料查询技巧

华为云开发者联盟

架构 armv8 芯片 华为云 二进制

基于 Golang的侵入式 Opentracing实现全链路追踪 ----实践篇

是老郭啊

什么?不写代码也能做功能开发! -RUOYI 教程二

Java_若依框架教程

Java 无代码开发 若依

JVM系列之:JIT中的Virtual Call

程序那些事

Java JVM JIT

实用!一键生成数据库文档,堪称数据库界的Swagger

程序员小富

Java MySQL

在人工智能时代追逐的“后浪”

华为云开发者联盟

程序员 AI 开发者 技术社区 华为云

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