iPX社員によるブログ

iPX社員が"社の動向"から"自身の知見や趣味"、"セミナーなどのおすすめ情報"に至るまで幅広い話題を投下していくブログ。社の雰囲気を感じ取っていただけたら幸いです。

Windows 10 時代のアプリケーション展開方法

こんにちわ、 iPX のコクブンです。
以前、 WiX Toolset を利用した Windows アプリケーションのインストーラ作成方法についてご紹介しました。(前編, 後編
Windows 10 でももちろん従来の Windows インストーラ形式でのアプリケーション展開は可能ですが、 Windows 10 のセキュリティ強化やアップデート方式への対応を考えた場合、新たな展開方法の検討が必要になることもあるかと思われます。
そこで今回は、 Windows 10 に適応した新しいアプリケーションの展開方法について紹介したいと思います。

Microsoft Store という選択肢

Windows 10 環境にアプリケーションを展開する方法として、 Microsoft Store を利用する方法があります。
Microsoft Store*1Windows 8 以降の Windows から標準で利用可能なアプリストアで、 Microsoft による審査を受けることで一般の開発者によるアプリケーションの配布(有償・無償)も可能となっています。
Microsoft Store によるアプリケーションの配布では、ストアが持つバージョン管理機能によりユーザーに確実に最新のバージョンを展開可能になるなど、従来の Windows インストーラ形式でのアプリケーション展開にはない利点もありますし、企業内アプリケーション配布のための企業別専用ストアの構築も可能なため、企業ユーザーに於いても Microsoft Store は有力な候補といえると思います。

Microsoft Store で展開可能なアプリケーション

では、具体的に Microsoft Store で展開可能なアプリケーションの形式についてご紹介していきましょう。

Universal Windows Platform アプリ

Microsoft Store に展開可能なアプリケーションは、基本的に Universal Windows Platform (UWP) アプリ である必要があります。
UWP アプリは C#, C++, Visual Basic, Javascript 等の言語で開発することが出来ますが、 UWP 専用の API を使用する必要があるため、既存のアプリケーションを UWP アプリ化するためには移植作業が伴います。
一方で、 Windows 10 に追加される新機能に対する API は UWP アプリ向けが先行して提供される*2ため、最新機能を利用したアプリケーションを作成する場合は UWP アプリ化が必須になってくるかと思われます。
また、 UWP アプリはインストール時に仮想環境としてパッケージされるため、実行環境がサンドボックス化される*3という特徴があります。
これにより、アプリケーションからローカルリソースへ直接アクセスすることが不可能になるため、よりセキュリティ強度の高いアプリケーションを構築することが可能になっています。*4

Desktop Bridge

UWP アプリの項では「既存のアプリケーションは移植作業が必要」と書きましたが、既存のアプリケーションを Microsoft Store で配布するための手段として、実はもう一つ方法があります。それが Desktop Bridge を利用する方法です。
Desktop Bridge を利用することで既存のアプリケーションは UWP アプリとして再パッケージされるため、 UWP アプリとして作成したアプリケーションと同様に Microsoft Store で展開が可能になります。*5
また、既存のアプリケーションは(基本的に)そのまま利用可能であるため、 Windows 7 等の旧環境向けに従来の Windows インストーラ形式での展開を維持しつつ、 Windows 10 向けには Desktop Bridge を利用して Microsoft Store から展開する、といったハイブリッドな展開方法を構築することも可能です。
※ Desktop Bridge についての詳細は、先にリンクした Microsoft の紹介ページを参照ください。

次世代の Windows 10 向けアプリケーションパッケージ

さて、ここまで Windows Store 向けアプリケーションについて紹介してきましたが、これらの展開形式と従来の Windows インストーラによる形式を包含した上で、改めて Windows 10 の仕組みにマッチしたアプリケーションパッケージを提供するものとして、 MSIX という新たなパッケージング形式が発表されました。
MSIX 形式を採用することで、先に紹介した 従来の形式と Desktop Bridge の併用などのシチュエーションに対しても一つのパッケージで対応可能になるなど、非常に魅力的な形式に感じます。
ただ、 MSIX 形式は発表から間もなくまだ情報も環境も整っていないため、今後の整備に期待したいところです。
なお、現在は Windows Insider Preview 向け限定ではあるもののパッケージ作成用の SDK が公開されていますので、興味のある方はチェックしてみてください。

*1:Windows Store

*2:機能によっては UWP 以外には API が提供されないケースもあります。

*3:iOSAndroid 等の多くのモバイルアプリケーションと似た様な構造になっています。

*4:一方でこのことは、レジストリを書き換えたり他のアプリケーションにアタッチするなど、アプリケーション外のリソースへの直接アクセスを必要とするアプリケーションの作成が困難なことを意味します。

*5:但し、アプリケーションは UWP アプリと同様にサンドボックス内で実行されるため、ローカルリソースへのアクセスを行う様なアプリケーションは実行できません。