UWP用のGUIを利用し、動作環境などに影響されにくい
デスクトップアプリを開発できるように
その点、最近追加されたXAML Islandや.NET Framework 4.8は、デスクトップアプリケーションの強化になるものだ。
UWPは、これまでのWinFormやWPFでの経験を元にGUIフレームワークを作り直している。たとえば、画面サイズや解像度、フォームファクター(スマートフォン、タブレット、ノートPC、デスクトップでは、ディスプレイとユーザーの位置関係が違う)に影響されにくいGUIをデザインできる。
XAML Islandは、UWP用に用意したGUI機能、具体的にはXAMLで記述したGUIデザインをデスクトップアプリケーションから利用できるようにしたものだ。WPFでもXAMLによるGUI記述は可能だったし、利用が推奨されていたが、UWPのものとはオブジェクト構造(記述方法)が違っていた。
.NET Framework 4.8は、現在Windows 10に搭載されている4.7の後継となるもので、「Windows 10(AKA "WinRT")API全般へのアクセス」、「WPFおよびWindowsフォームアプリケーションでUWP XAMLコントロールをホストする機能」(XAML Islandの利用)、「UWPブラウザ(Edge)とメディアコントロールをホストする能力」といった特徴を持つ。また、Windows 10の高DPI対応機能についてもWinFormやWPFが対応する予定だ。
.NETは、Windowsに組み込まれている「.NET Framework」とは別に、オープンソースで更新速度の速い「.NET Core」がある。.NET Coreは、プラットフォームに依存しない.NETの実装で、特定のプラットフォームの事情や細かい互換性を考慮しないため、新機能がすぐに搭載され、更新の速度も速い。
現在では、.NET Coreとその標準ライブラリとなる.NET Standardによりデスクトップアプリケーションの開発も可能になっている。こちらは.NET Frameworkの仕切り直し的な部分があるが、デスクトップアプリケーション側から見れば、アプリケーションモデルの選択が増えた格好になる。
.NET Core 3.0では、WPFやWinFormがサポートされた。また、複数バージョンの.NET Coreを共存させることも可能になり、アプリケーションは、特定バージョンの.NET Coreを使い続けることができるようになった。アプリケーションに.NET Coreを組み込んで出荷することも可能であり、ホストシステム側のバージョンに依存しない実行環境を維持できる。
ARMプロセッサを搭載するWindows On ARMでは、64bit ARMコードによるWin64APIアプリケーションの開発を可能にすると発表している。つまり、デスクトップ環境で動作するARM64アプリケーションが開発できるようになるわけだ。このあたりからも、マイクロソフトがデスクトップアプリケーションを重視しだしたことがうかがえる。
UWPを次世代のアプリケーション環境としてスタートしたWindows 10だが、出荷から3年が経過し状況も変わってきた。デスクトップアプリケーションの強化に方向転換したマイクロソフトだが、開発者の目は、AndroidやiOSに向いたままだ。次にマイクロソフトは何をするのかに注目したい。

この連載の記事
-
第475回
PC
Windowsのコマンドラインの補完機能について解説 -
第474回
PC
Windowsでのコマンドラインのヒストリ機能 -
第473回
PC
Windowsは内部的にどうやってインターネットへの接続状態を確認している? -
第472回
PC
WindowsのエラーをMicrosoftに送信するテレメトリ機能を理解する -
第471回
PC
Windowsのコマンドラインでエイリアスを使う -
第470回
PC
Windows用のパッケージマネージャー「Winget」 プレビュー版で機能が充実してきた -
第469回
PC
Windows Updateの27年 悪役だった頃から改良が進んで、徐々に目立たない存在に -
第468回
PC
2025年のWindowsどうなる!? Windows Insider Programの状況をあらためて見る -
第467回
PC
Copilot+ PCのNPUでカメラを処理する「Windows Studio Effects」 その内容や効果は? -
第466回
PC
PowerToysの最近の新機能には、複数アプリを指定位置に起動する「ワークスペース」や新規作成のカスタマイズがある -
第465回
PC
WindowsのPowerShellからBluetoothデバイスを調べる - この連載の一覧へ