QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

通用 Windows 平台应用程序开始恢复 Win32 功能

  • 2018-04-01
  • 本文字数:1097 字

    阅读完需:约 4 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

微软借 Windows 10 推出通用 Windows 平台(Universal Windows Platform,简称 UWP),声称 UWP 将给用户带来很多好处:UWP 应用程序能够运行在任何基于 Windows 10 的平台(桌面、Xbox、HoloLens 或物联网等等)上、现代化的安装器 / 卸载器等。只不过,UWP 应用程序起初缺少 Win32 桌面应用拥有的很多传统功能。因为微软认为,为了给用户更多的安全性,有必要限制开发人员能做的事情。

这种方法带来一个问题,就是用户和开发人员都熟悉传统 Win32 API 提供的功能。自从不限制在 Windows 10 上运行 Win32 应用程序之后,对于很多开发人员来说,更容易继续使用旧平台。这导致微软陷入了困境,因为它希望继续吸引用户使用 Windows 10,同时鼓励开发人员编写 UWP 应用程序。即将推出的Windows 10 1803 版本准备放宽对UWP 应用程序的一些限制。

放宽对文件系统的**** 访问

UWP 应用程序现在可以用两种不同的权限选项来处理本地文件系统。首先,通过声明 AppExecutionAlias 扩展,一个 UWP 应用程序拥有对启动目录(从命令提示符启动时)和所有子目录的访问权限。

或者,一个 UWP 应用程序可以声明 broadFileSystemAccess 功能,然后可以访问用户有权访问的所有文件。请注意,要是在提交给微软应用商店的应用程序中用到这个功能,需要提供附加信息,说明为什么需要这么做以及是如何实现的。

多实例支持

这是 UWP 应用程序的自由选择功能,它允许一个应用程序的每个运行实例在单独的进程中执行。这提供了某种程度上的安全性,某个实例的崩溃不会影响到任何其他实例。

控制台应用程序

现在,UWP 应用程序将能够像传统 Win32 控制台应用程序那样运行。但是,因为它遵循 UWP 准则,所以它可以像任何 UWP 应用程序一样,在 Windows 应用商店发布,并通过一个应用程序图标来启动运行。由于它是一个控制台应用程序,主要是从命令提示符或 PowShell 窗口启动。

有一点要特别注意,当前的 UWP 控制台应用程序必须使用 C++/WinRT 或 /CX。不支持基于.NET 的语言。UWP 控制台应用程序可以从执行它的目录及其全部子目录来访问本地设备的文件系统。它拥有广泛的文件系统访问权限,也可以利用多实例支持。UWP 控制台应用程序受到一些限制,显然地,它们不能在后台运行、可能不能创建窗口、必须应用于桌面或物联网项目。

阅读英文原文 Universal Windows Platform Apps Start to Retrace Win32 Functionality


感谢无明对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2018-04-01 19:002094
用户头像

发布了 199 篇内容, 共 87.8 次阅读, 收获喜欢 295 次。

关注

评论

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

2022年Q2银行APP活跃用户规模盘点:头部银行增长稳定

易观分析

金融 银行 用户规模

区块链商用案例:网间结算联盟链建设实战

鲸品堂

区块链 运营商 企业号九月金秋榜

SQL改写系列九:外连接转内连接的常见场景与错误-2

OceanBase 数据库

长安链源码分析启动(2)

长安链

Python条件语句怎么用

和牛

Python 8月月更

即时通讯安全篇(十一):IM聊天系统安全手段之传输内容端到端加密技术

JackJiang

网络安全 网络编程 即时通讯 IM openssl

长安链源码分析启动(1)

长安链

长安链源码分析启动(3)

长安链

99 大促来袭,利用 MSE 服务自治体系为业务保驾护航

阿里巴巴云原生

阿里云 微服务 云原生

APICloud AVM 封装验证码输入框组件

YonBuilder低代码开发平台

程序员 前端开发 低代码开发 多端开发

9月17日 杭州站 | Serverless Developer Meetup 开启报名

阿里巴巴云原生

阿里云 Serverless 云原生

【DBA100人】李建明:一名普通DBA的14年技术之路与成长智慧

OceanBase 数据库

实战演示 H5 性能分析

霍格沃兹测试开发学社

开源一夏 | 一场由serialVersionUID 引发的线上问题

六月的雨在InfoQ

开源 serialVersionUID transient Serializable接口 8月月更

低代码是什么意思?低代码平台的技术特点是什么?

优秀

低代码

Nft数字藏品app开发,开发数字藏品系统

开源直播系统源码

数字藏品 数字藏品软件开发 数字藏品开发 数字藏品系统

AAX影响力实验室探究加密产业对各行业的影响

股市老人

低代码适用于哪些应用开发场景

力软低代码开发平台

CI 可观测性使变更管理发挥作用|Foresight

观测云

这些并发容器的坑,你要谨记

华为云开发者联盟

后端 开发

阿里云金融创新峰会云原生分论坛圆满举办,加速金融行业落地云原生

阿里巴巴云原生

阿里云 云原生 金融行业

聚四方之力,合四方之需:智能云网的持续进化

脑极体

干货 | 实战演练基于加密接口测试测试用例设计

霍格沃兹测试开发学社

Dubbo 3.1.0 正式发布,数据面原生接入 Service Mesh

阿里巴巴云原生

阿里云 云原生 dubbo

干货 | Pytest 结合 Allure 生成测试报告

霍格沃兹测试开发学社

基于龙蜥操作系统指令加速,降低云原生网关的构建成本

阿里巴巴云原生

阿里云 云原生 云原生网关 龙蜥

[JS入门到进阶] 手写解析URL参数的工具,并部署。用起来又快又爽!

HullQin

CSS JavaScript html 前端 8月月更

APICloud 可视化编程 - 拖拉拽实现专业级源码

YonBuilder低代码开发平台

低代码开发 多端开发 可视化开发

他只是试图运用自己的能力,给这个领域带来改变

图灵社区

通信 科学史

「海格通信」化繁为简!云管升级助力海格通信创新之路提速

嘉为蓝鲸

云管理

C/C++普通函数与函数模板的区别,调用规则,模板局限性

CtrlX

c c++ C# 8月月更

通用Windows平台应用程序开始恢复Win32功能_.NET_Jeff Martin_InfoQ精选文章