通用Windows应用的新发布模式

Windows 应用程序部署的依赖管理模型

在 Windows 平台中,应用程序部署通常采用两种模型来处理操作系统和第三方依赖:

1. 捆绑依赖模型

  • 描述:将所有依赖项与应用程序本身捆绑在一起,开发者可以精确控制应用程序使用的依赖版本。
  • 优点:开发者完全掌控依赖项,确保应用程序的稳定性和一致性。
  • 缺点

    • 应用程序的体积显著增大,特别是在移动设备上,这可能成为一个问题。
    • 依赖项的更新需要由开发者推送,而不是由依赖项的创建公司直接更新,这可能导致关键安全漏洞修复的延迟。

2. 共享依赖模型

  • 描述:将依赖项存储在共享位置,例如基于 COM 的应用程序使用 Win32 文件夹,.NET 应用程序使用全局程序集缓存(GAC)。
  • 问题

    • 导致“DLL Hell”问题,即使严格保持向后兼容,也可能限制灵活性。
    • 无法实现某些场景,例如让一个应用程序使用库的预发布版本,而不影响其他应用程序。
    • 用户通常需要手动更新关键库,如 .NET Framework。

Universal Windows Apps (UWP) 的第三种选择

Win10 Tools 1.1 中,UWP 应用程序引入了一种新的依赖管理模型:

  • 描述

    • 每个应用程序可以指定其所需的 .NET 版本,包括测试版。
    • 安装时,公共库会被放置在共享位置,其他使用相同版本的应用程序可以访问这些库。
  • 优点

    • 显著减少应用程序的体积。例如,小型 UWP 应用程序从 5.3 MB 减少到 1.3 MB,大型应用程序从 10.1 MB 减少到 7.9 MB。
    • 提升构建速度,大多数应用程序的 Release 构建时间减少了约 30%。
  • 注意:该功能目前处于预发布阶段,默认未启用,但开发者可以将其开启并提交应用到 Windows 应用商店。

总结

Windows 应用程序部署的依赖管理模型各有优缺点,而 UWP 的新模型通过共享公共库和指定版本的方式,在减少应用程序体积和提升构建速度方面表现出色。尽管该功能尚未默认启用,但已显示出显著的潜力。

阅读 9
0 条评论