PCon全球产品创新大会即将开幕,抢占最后的交流席位! 了解详情
写点什么

一种新的 Universal Windows Apps 发布模型

  • 2015 年 10 月 08 日
  • 本文字数:836 字

    阅读完需:约 3 分钟

在 Windows 世界里,应用部署普遍使用两种模型来处理系统与第三方的依赖项。

第一种是将所有依赖项捆绑到应用中。这种方式让开发者能精准控制应用使用哪些依赖项。这样做的缺点是会让应用的体积更大,对移动设备不太友好。另一个问题是依赖项的更新必须由开发者推送,而不是实际创建依赖项的公司。这样会在处理严重安全 bug 时带来难以接受的时间滞后。

另一种选择是把所有依赖项存储在共享空间中。对于 Com 应用是放在 Win32 文件夹,对于.Net 应用是放在全局程序集缓存(GAC)。但这样导致了“DLL Hell”的问题。即使维持了严格的向后兼容,同时也限制了你的选项。这阻止了某些有趣的场景发生,例如在不强制其它应用使用的情况下允许单一应用使用预发布版本的库。因此,通常需要用户手动去更新如.Net Framework 这类关键库。

Win10 Tools 1.1 中,Universal Windows Apps (UWP) 有了第三种选择。在新模型下,每个应用仍能指定.Net 的版本。这包括 beta 版的 framework。但当应用安装好后,通用库被放入共享位置。这种方法将让其它使用相同版本的应用能访问这些通用库。

在微软的一些测试中,他们找到方法将小型 UWP 应用的体积由 5.3MB 减少到只有 1.3MB。在更大样本中,他们将体积由 10.1MB 减少到只有 7.9MB。

出乎意料的是,这个特性还能减少生成时间。微软的 Rich Lander 声称,

对于大部分应用来说,这特性能为发布版本提供更快的生成时间。我们观察到的生成时间普遍更快,提升接近 30%——但有少数应用的实际生成耗时更长。我们正努力让交付版本的生成时间有更加稳定的改进。

这是一个预发布的特性,所以微软没有默认开启。然而,你可以开启后再将应用提交到 Windows Store。

查看英文原文: A New Publication Model for Universal Windows Apps


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015 年 10 月 08 日 19:001058

评论

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

“2021ISIG中国产业智能大会低代码峰会”即将开幕,钉钉宜搭叶周全受邀出席

钉钉宜搭

阿里巴巴 互联网 钉钉 低代码 钉钉宜搭

Windows 11再出杀手锏....

Jackpop

前端开发:Vue中forEach() 的使用

三掌柜

111 1111111 11月日更

《深入理解JVM虚拟机》读书笔记:第一章

Joseph295

Flutter设置App的应用名字和应用logo图标的方法

坚果

flutter 11月日更

使用 ABAP 代码提交 SAP CRM Survey 调查问卷

Jerry Wang

CRM SAP abap 11月日更 问卷模型

Java 项目中使用 Resilience4j 框架实现客户端 API 调用的限速/节流机制

信码由缰

Java 限速 节流 Resilience4j RateLimit

这次不怕撕坏了,区块链电子公告来了

CECBC

2018年世界杯德国竟然输给韩国?终于找到原因了!

Jackpop

被Chrome坑惨了!

Jackpop

Golang Gin 框架之分组路由(五)

liuzhen007

11月日更

Prometheus Exporter (八)kube-state-metrics

耳东@Erdong

Kubernetes Prometheus exporter 11月日更 kube-state-metrics

23 K8S之Secret资源配置

穿过生命散发芬芳

k8s 11月日更

分布式系统的架构演进过程(一)

卢卡多多

分布式, 11月日更

一个对标VSCode的IDE---Fleet

IT蜗壳-Tango

11月日更

华为,告别大陆军时代

脑极体

什么是元宇宙?为何要关注它?

CECBC

【死磕Java并发】-----J.U.C之AQS:同步状态的获取与释放

chenssy

11月日更 死磕 Java 死磕 Java 并发

[Pulsar] 消息生命历程(三)——客户端发送消息

Zike Yang

Apache Pulsar 11月日更

App 端自动化的最佳方案,完全解放双手!

星安果

Python 自动化 爬虫

EF Core如何处理多对多关系

喵叔

11月日更

在线文本行固定长度填充工具

入门小站

工具

清华元宇宙深度报告!理论框架产业真相一文看懂

CECBC

分析23个赛季NBA数据,我发现10条难以置信的信息!

Jackpop

linux之strings命令

入门小站

Linux

CWE 4.6 和 OWASP TOP10(2021)

Tom(⊙o⊙)

【高并发】由InterruptedException异常引发的思考

冰河

Java 并发编程 多线程 高并发 异步编程

华为顶级安全专家分享出来这份‘典藏版’Linux开发实战笔记

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

模块四作业:设计千万级学生系统的试卷存储方案

Geek_99eefd

模块四 「架构实战营」

🏆【Alibaba中间件技术系列】「RocketMQ技术专题」让我们一起探索一下DefaultMQPullConsumer的实现原理及源码分析

浩宇天尚

阿里巴巴 RocketMQ 消息队列 11月日更 Apache RocketMQ

2021RSAC -- 网络韧性

Tom(⊙o⊙)

一种新的Universal Windows Apps发布模型_.NET_Jonathan Allen_InfoQ精选文章