今週初め、MicrosoftはProject Reunion 0.5 Previewをリリースした。これは、オペレーティングシステムから切り離された単一のAPIレイヤーの下で、既存のWin32とUWP APIへのアクセスを統合する開発者コンポーネントとツールのセットである。この新しいリリースには、Windows10のネイティブUIプラットフォームの最新バージョンであるWinUI 3の最初の安定版リリースも含まれている。Project Reunion 0.5は開発者向けプレビュー版であり、最初の安定版リリース(v1.0)は10月に一般向けに提供される予定である(期待されている)。
Project Reunionは、ライブラリ、フレームワーク、コンポーネント、ツールの集合である。それは、すべてのWindows 10バージョンを対象として、すべてのアプリ(Win32、Packaged、UWP)に統合された開発プラットフォームを提供するものである。つまり、Project Reunionで開発されたすべてのアプリケーションは、幅広いWindows10バージョンとデバイスで動作する。
Project Reunionの背景にある基本的な考え方は、Win32とUWPの間のギャップを埋めるための上位APIレイヤーを提供することである。そして、同時に、新しいWindows機能を提供するAPIモデルを作成することである。Project Reunionによって提供されるすべての機能は3つの異なるカテゴリに分類される。それは、New API(Project Reunionの一部として提供される新しいWindows機能)、Converged API(Win32およびUWP上に抽象化レイヤーを提供)、API Subset(サポートされているWindowsプラットフォームAPIのサブセットで、Windowsのすべてのバージョンで機能する)である。
Project ReunionのConverged API。出典: Microsoft
Microsoftによると、Project Reunionによってもたらされる利点の1つは、デスクトップアプリプラットフォームを横断するunified APIサーフェスである。Project Reunionを使用すると、デスクトップWindowsアプリを作成する開発者は、選択したアプリモデル(プラットフォームとフレームワーク)に関係なく、同じWindows APIセットを使用できる。すべてのAPIは、Windows 10 バージョン1809以降で動作する。
開発者にとってもう1つの期待される利点はリリースサイクルが速いことである。これは、Project Reunionは以前のWindows APIリリース(OSリリースに関連付けられている)よりも速く更新をリリースすることが期待されているためである。
Project Reunion 0.5 Previewには、Windows UI Libraryバージョン3(WinUI 3)が含まれている。これは、次世代のネイティブWindows UIである。WinUI 3はUIレイヤーであり、Windows 10から分離されたUWP XAML Visual LayerとWinUI 2ライブラリを取り上げ、その2つをより新しい特徴と機能と共に組み合わせたものである。このレイヤーは、任意のデスクトップアプリまたはUWPアプリで使用できる。WinUI 3は、Windowsで実行する場合には、React Nativeなどの他のフレームワークのネイティブ実装も提供する。
どのようにWinUI 3とWinUI 2とその他のテクノロジーとの関係するか。出典: Microsoft
Project Reunionのこのリリースに含まれるその他のコンポーネントは、MRT Core(アプリで使用されるリソースをロードし、管理するためのAPIのセット)とDWriteCore(テキストレンダリング用の現在のすべてのDirectWrite機能へのアクセスを提供する)である。現在のAPIセットは、C++/WinRT、Rust/WinRT、C#/WinRT、MSIX-Core(パッケージング)へのアクセスも提供する。Project Reunion 0.5 Previewには、WinUI 3のプロジェクトテンプレートと一連のサンプルアプリケーションも含まれている。
Project Reunion(v 1.0)の最初の安定バージョンは、アプリのアクティブ化とライフサイクル(電源状態の通知を含む)に関連する機能の追加セットとともに、今年後半にリリースされる。2021年第2四半期には、別の中間プレビューリリース(v. 0.8)が予定されている。
Project Reunion 0.5 Previewは開発者プレビュー版であるため、実稼働環境ではサポートされていないことに注意してください。また、このリリースは、MSIXパッケージのデスクトップアプリ(C#/.NET 5あるいはC++/Win32)でのみ使用できる。パッケージ化されていないデスクトップアプリのサポートは、バージョン1.0でのみ利用できる。