免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

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

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

关注

评论

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

Android C++系列:C++最佳实践5 const

轻口味

c++ android ndk jni 4月月更

百尺竿头更进一步 – Amazon Aurora 的读写能力扩展之 ShardingSphere-Proxy 篇

亚马逊云科技 (Amazon Web Services)

Tech 专栏

Docker 实战教程之从入门到提高 (八)

汪子熙

Docker 容器 docker image 容器镜像 4月月更

2022鲲鹏开发者创享日即将扬帆起航 与开发者共创未来共享非凡成就

科技热闻

容器化应用:我们都经历了什么

Rayzh

Docker Kubernetes 云原生 Cloud Native

毕设:设计电商秒杀系统

王大胖

怎么做SEO网站优化?

InfoQ IT百科

不care工具,在大数据平台中Hive能自动处理SQL

华为云开发者联盟

sql 大数据 mapreduce hive 数据分析

移动App的设计流程是怎样的?

InfoQ IT百科

有哪些适合程序员用的笔记应用?

InfoQ IT百科

TASKCTL 容器签出失败解决方法

敏捷调度TASKCTL

大数据 DevOps 分布式 ETL 自动化运维

TASKCTL 作业流程无触发设计

敏捷调度TASKCTL

大数据 DevOps 分布式 自动化部署 ETL任务

从杀慢查询入手来预防 MySQL 雪崩的办法

Qunar技术沙龙

dba

阿里云 云效一站式研发平台

阿里云云效

阿里云 DevOps 云原生 研发 一站式研发平台

怎么让网站在搜索结果中排更前?

InfoQ IT百科

如何提升研发效能实现 10 倍研发效能提升

阿里云云效

云计算 阿里云 云原生 研发效能 研发

【MARS TALK 05】今日头条 App 基于火山引擎MARS研发流程最佳实践

字节跳动终端技术

android 今日头条 字节跳动 研发

App能收集哪些个人信息?

InfoQ IT百科

App分发是什么意思?

InfoQ IT百科

怎么做App分发?

InfoQ IT百科

IM开发技术分享:浅谈IM系统中离线消息、历史消息的最佳实践

JackJiang

网络编程 TCP协议 即时通讯IM im开发

GPU市场规模和各子市场趋势分析

Finovy Cloud

人工智能 gpu

一文详解:企业数字化的未来基石——微服务

穿过生命散发芬芳

微服务 4月月更

Carina 的根基与诞生背景|深入了解 Carina 系列 第一期

BoCloud博云

开源 本地存储

数据连接一切,开启融合数据云新时代——星环科技春季新品发布周盛大开启

星环科技

深入JVM内置锁 synchronized 底层

janyxe

JVM synchronized synchronized锁升级过程

Hoo虎符研究院 |ETH2.0合并在即 速来围观流动性质押赛道的潜力项目

区块链前沿News

eth 虎符 Hoo 虎符交易所

Java篇-序列化与反序列化

是老郭啊

Java 对象 序列化 反序列化

如何优雅高效地管理公司文档?

小炮

文档 文档管理

Carina 本地存储入选 CNCF 云原生全景图

BoCloud博云

开源 cncf 本地存储

App怎么做灰度发布?

InfoQ IT百科

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