写点什么

通用 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:002334
用户头像

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

关注

评论

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

LabVIEW保存、读取配置文件

不脱发的程序猿

LabVIEW 保存、读取配置文件

Redis线程模型

javaadu

redis 面试题

Linux网络管理工具:ifconfig,从入门到精通!

Ethereal

SpringCloud-Ribbon学习记录

昊运

SpringCloud

VUE创建视频流应用

devpoint

Vue Video播放器 3月月更

大数据使用Airflow实现简单的工作流调度

编程江湖

尚硅谷Flink(Java)新版视频教程发布

@零度

flink 大数据开发

持续集成引擎篇:K8S与服务自动发布

Docker 架构 k8s 持续集成 jenkins

ShardingSphere-Proxy分库分表(一)

神农写代码

分库分表

基于IOT物联网设计的智能家居系统-智慧门锁

DS小龙哥

物联网 智能门锁 3月月更

大厂面试官都不敢问的java线程的底层实现

刘祥

Java 线程

尤达 DDD 领域驱动设计思想 第三章作业(识别SmartRM系统货柜机免密支付购物场景里的聚合)

代廉洁

尤达DDD领域驱动设计思想

什么是 503 服务不可用错误?

Ethereal

扎“芯”了——CP探针卡的国产替代道阻且长

IC男奋斗史

芯片技术 芯片上游

为什么要进行企业知识管理,这三个重点问题要明确

小炮

LabVIEW设计自定义滚动条

不脱发的程序猿

LabVIEW 设计自定义滚动条

微博评论高性能高可用场景

风中奇缘

架构实战营 「架构实战营」

7 种最棒的 Vue Loading 加载动画组件测评与推荐 - 穷尽市面上所有加载动画效果(Vue loader)类型 - 卡拉云

蒋川

Vue vue admin vue loading

架构学习【05】——“微博评论”高性能高可用计算架构

tiger

架构实战营

如何在 Go 代码中运行 C 语言代码

宇宙之一粟

C语言 Go 语言 3月月更

《软件开发的201个原则》思考:2. 质量在每个人眼中都不同

非晓为骁

程序员 个人成长 开发

利用Struts拦截器限制上传图片的格式和大小

喀拉峻

网络安全

一步步教你开发鸿蒙系统应用,So Easy!

博文视点Broadview

大数据培训面试Flink八股文分享

@零度

flink 大数据开发

最棒的 7 个 Laravel admin 后台管理系统推荐 - 卡拉云

蒋川

laravel vue admin

搜索引擎Elasticsearch简介实践

yuexin_tech

elasticsearch

重学架构之微博评论高性能高可用计算架构

陈华英

架构实战营 #架构实战营

「架构实战营」微博评论高性能可用计算架构

hxb

「架构实战营」

OpenHarmony 标准系统 HDF 框架之 GPIO 驱动开发

Anna

开发者 OpenHarmony 学习成长

「尚硅谷」java实战项目谷粒商城简介_idea_通用mapper

编程江湖

web前端Node安装步骤

编程江湖

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