Win32やWPFをUWP化する「Desktop App Converter」とは
そのアプリ、無償ツールでWindows 10のストアから配信できます
2017年05月19日 11時00分更新
最新OS「Windows 10」がリリースされてから2年弱。マイクロソフトが5月10日に開発者会議「Build 2017」で発表したところによると、Windows 10を搭載するデバイスの数は5億台を突破したそうだ。
4月11日に配信を開始した大型アップデート「Creators Update」では、3DペイントアプリやMR(複合現実)の新機能などを追加、セキュリティ機能も強化された。Build 2017で次期大型アップデート「Fall Creators Update」もアナウンスされ、Windows 10は力強く進化を続けている。
Windows 10の特徴を表すキーワードの1つが「One Core」だ。Windows 8.1までは、PC向け、スマートフォン向け、組み込み機器向け、Xbox向けなど、デバイスごと別々のWindows OSが提供されており、それぞれのOS間でアプリケーションの互換性はなかった。Windows 10では、これらのOSを1つにまとめてOne Core化。1つのアプリケーションがすべてのWindows 10搭載デバイス上で動作するようになった。
この、デバイスの種類に依存しないWindows 10向けアプリケーションのフレームワークを「Universal Windows Platform(UWP)」と呼ぶ。そして、このフレームワークに従って開発されたアプリケーションが「UWPアプリケーション」だ。UWPアプリケーションは、専用のアプリケーション配信基盤「Windowsストア」からすべてのWindows 10が稼働するデバイスに展開できる。
Windows 10搭載デスクトップでは、UWPアプリのほか、Win32、Windowsフォーム、WPFなどの従来型デスクトップアプリも動作する。これらの従来型アプリの配信には、ダウンロードサイトやメディアが使われており、Windows 10デスクトップに対しても、ストアを介さないでこれらのアプリを配布することは可能だ。しかし、従来型アプリをUWPアプリ化してWindowsストアから配信することには多くのメリットがある。
また、5月2日に発表された新Surface端末「Surface Laptop」に搭載されて登場した軽量OS「Windows 10 S」は、Windowsストアから配布するUWPアプリのみが動作する仕様になっており、既存アプリのUWPアプリ化のニーズは今後より一層高まりそうだ。
日本マイクロソフト デベロッパーエバンジェリズム統括本部 テクニカルエバンジェリズム本部 プリンシパルテクニカルエバンジェリストの高橋忍氏と、ISVテクニカルエバンジェリズム部 エバンジェリストの田中達彦氏に、WindowsストアからのUWPアプリ配信と、従来型アプリをUWPアプリ化する無償ツール「Desktop App Converter」について聞いた(敬称略)。
UWPアプリはサンドボックス化されてセキュアに動作
--Windows 10搭載デスクトップでは、Windows 7や8/8.1でも動作する従来型のアプリも使えますが、マイクロソフトがUWPアプリを推す理由は何でしょうか。
田中:UWPアプリの最大の特徴は、セキュアでウィルスの心配がないことです。UWPアプリはサンドボックス化されており、OSの奥深くまではアクセスできないようになっています。そのため、アプリ経由のウィルスがOSに影響を及ぼすことがなく、またアプリの問題によってOSに不具合が発生することもありません。
高橋:これまで、WindowsのPCにアプリをインストールしようとすると、ユーザーがインストーラーを実行することでアプリのインストールが開始されていましたよね。これがデスクトップ向けに開発された従来型アプリの仕様でした。インストーラーは、例えばOSのレジストリに、アプリの情報を書き込んだり、システムフォルダにDLLをコピーすることがよくあります。
一方、UWPアプリは、ホストOSから分離された個別のサンドボックス内で実行されるため、OSのシステム領域への書き込みなどは行いません。セキュアに、ホストOSを汚さずにインストールして利用することができます。
スマホの機種変更と同じ操作感でデスクトップアプリを引き継ぎ
--UWPアプリの配信基盤である「Windowsストア」について教えてください。Windowsストアを使うと、アプリ開発者、アプリのエンドユーザーにどのような利点があるのでしょういか。
高橋:アプリ開発者は、アプリの配信や課金を行うための基盤を自前で維持する必要がなくなります。インストーラー/アンインストーラープログラムを作る手間もなくなります。
Windowsストアは、世界200カ国以上の地域にアプリを配信するグローバルなプラットフォームであり、日本で 開発したアプリを世界に配布でき、世界中のエンドユーザーに配布済みのアプリに対して最新版を配布することも容易になります。
グローバルでのアプリ販売ビジネスを支援する様々な機能があることも特徴です。Windowsストアの設定画面から、アプリを提供する国を選択したり、国ごとに料金を設定して現地通貨で課金したりといったことができます。また、「無償のお試し期間のあと課金を開始する」、「キャンペーン期間中だけ特別料金で販売する」など課金モデルも、Windowsストアの機能として設定できるようになっています。
また、従来型のアプリは、PC上のユーザーから見える場所にインストールされており、アプリによっては簡単にカジュアルコピーができてしまうケースがありました。Windowsストアでは、ストアがアプリを不正コピーから保護します。Windowsストア経由で配布したアプリは、ライセンス認証がなされるだけでなく、カプセル化されてユーザーから見えない場所にインストールされるなど、不正コピーが難しくなっています。
田中: エンドユーザーにとってのメリットには、PCを新しくした際に、Windowsストアから過去にダウンロードしたアプリを、まとめて新しいデバイスに入れることができる点があります。スマートフォンを機種変更した際に、アプリがユーザーに引き継がれるのと同様の操作感ですね。
それから、Windowsストアにあるアプリはすべて、エンドユーザーにとって安全です。アプリ開発者がWindowsストアにアプリを登録する際に、マイクロソフトによる審査と、ストア上での自動テストを実施し、セキュリティに問題のあるアプリは排除しています。
高橋:セキュリティの観点から、マイクロソフトはWindows 10へのアプリ配布にはWindowsストアの利用をお勧めしており、既存のアプリをWindowsストアから配布できるUWPアプリの形式に変換する「Desktop App Converter」というツールを無償で開発者向けに提供しています。このツールはWindowsストアから入手できます。
従来型アプリを仮想Windowsで包み込んで展開
--「Desktop App Converter」では、従来型アプリをどのようにUWPアプリ化するのでしょうか。
田中:Desktop App Converterは、Win32やWPFなどの従来型のデスクトップアプリを、UWPアプリに変換するためのツールです。アプリ自体には手を加えず、インストーラー(exeファイル、msiファイル)を「appx」というWindowsストアに公開できる形式に変換します。
高橋:例えば、従来型アプリでインストーラーがOSのレジストリに書き込み処理やDLLのコピーを行っていたとします。Desktop App Converterは、この従来型アプリのインストーラーが行う処理やコピーするファイルをキャプチャし、アプリのファイルと一緒にパッケージ化(appxファイル化)します。
パッケージ化されたインストーラーは、WindowsストアからWindows 10デバイスに配信されたのち、OSから分離された仮想Windows環境(App-V環境)で安全に実行されます。このように仮想Windowsにくるむことで、従来型アプリに実装されたインストーラーの仕組みと、サンドボックス化したUWPアプリを配布するWindowsストアの仕組みを両立させているわけですね。
田中:Desktop App Converterは、Windows 10の機能に依存するツールで、「Windows 10 Anniversary Update(14393.0)」以降の環境で利用できます。
WindowsストアからDesktop App Converterをダウンロードしたあとは、コマンド操作でアプリの変換が可能です。変換後のパッケージにWindowsストア配布用のアプリ署名などを行うこともこのツールからできます。従来のアプリ開発ワークフローにDesktop App Converterによる変換工程を加えるだけで、手早くUWPに対応することができるのです。