一種新的Universal Windows Apps發布模型
在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