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

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

关注

评论

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

要性能还是要模型?

escray

学习 极客时间 7月日更 如何落地业务建模

Spark SQL和DataFrames:内置数据源简介(四)

Databri_AI

spark sparksq

终于学完了阿里P8大牛推荐的527页Java性能优化实践文档

Java 编程 架构 面试

🐧【Linux技术专题系列】「必备基础知识」一起探索(su、sudo等相关身份提权/身份切换机制)

洛神灬殇

Linux linux 文件权限控制 7月日更 Linux身份提权

模块-6 拆分电商系统为微服务

小遵

微服务架构服务容错设计分析

慕枫技术笔记

架构 微服务 后端

【通证经济】价值、应用、市场,被掩盖的区块链宝藏!!

CECBC

有趣的SVG、Favicon

devpoint

favicon SVG 7月日更

架构实战营 模块二 作业

一雄

作业 架构实战营 模块二

2021年网络安全市场全景图,看看都有哪些企业吧!

郑州埃文科技

Spark :: 源代码(前传)—Spark多线程 :: NettyRpcEnv.ask解读

dclar

spark 多线程 Spark调优 源代码

深入了解Spring之MessageSource

邱学喆

MessageFormat MessageSource MessageSourceAware

一文搞懂二分查找面试

泽睿

算法 二分查找

毕业1年,凭借一份 “漫画” 杀进大厂?他是怎么做到的?原理篇+框架篇

Java架构师迁哥

模块2作业

Tina

Liunx之chown命令

入门小站

Linux

分布式事务最经典的七种解决方案

叶东富

数据库 分布式事务 微服务 TCC Go 语言

golang解析---进程,线程,协程

en

线程 进程 协程 Go 语言 goroutine

Ping Exporter -- Prometheus

耳东@Erdong

Prometheus ping 7月日更 exporter

如何通过代码审计从三层内网各种漏洞拿到域控?

网络安全学海

黑客 网络安全 信息安全 安全漏洞 渗透测试·

hdfs中抽象为block块的好处

五分钟学大数据

hdfs 7月日更

🐧【Linux技术专题系列】「必备基础知识」一起探索(用户、用户组与文件权限)

洛神灬殇

Linux 操作系统 linux 文件权限控制 7月日更

JDBC数据库链接的那些事

卢卡多多

JDBC 7月日更

架构实战营第二周作业——微信朋友圈高性能复杂度

发酵的死神

架构实战营

【Flutter 专题】84 图解自定义 ACEWave 波浪 Widget (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

模块-1 微信业务架构图 和 备选方案

小遵

昇腾AI的三级跳

脑极体

Python 正则表达式急速入门

喵叔

7月日更

Discourse 调整使用不同的表情符号

HoneyMoose

架构实战营模块二作业

王晓宇

我佛了!花重金求来的并发编程笔记,颠覆了我以往“正确“的认知

Java 编程 程序员

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