Microsoft は .NET 6 の 2 番目のプレビューをリリースしましたが、今年 11 月にリリースされる WinUI 3.0 にはビジュアル デザイナーが含まれないことを確認しました。
WinUI 3.0 は、Windows デスクトップ アプリケーションの主要な公式フレームワークとなることを目指しています。
Microsoftの.NET 6は、Windows、クロスプラットフォーム、そしてWeb上でC#、F#、そしてある程度のVisual Basicアプリケーションを実行できる、刷新された開発プラットフォームの最初の長期リリースです。これは、かつてXamarin Formsと呼ばれていたものをMAUI(Multi-Platform App UI)という新しい名称に統合した、統合的なリリースです。
しかし、詳細を少し掘り下げてみると、依然として多くの混乱が残されています。開発者を困惑させている領域の一つが、Microsoftが「Windowsアプリ開発プラットフォームの次なる進化」と表現するProject Reunionの一部であるWinUI 3.0です。
最新のプレビューには Project Reunion 0.5 と、初めての WinUI 3.0 インストールが含まれています。ただし、いずれ Reunion という用語はなくなり、Windows SDK (ソフトウェア開発キット) の一部になるものと予想されます。
しかし、最新のプレビューを紹介する Microsoft の投稿へのコメントで、歓迎されないニュースが確認されました。「WinUI 3 の XAML デザイナーはバックログにあり、残念ながら 2021 年秋に出荷されるバージョン 1 には含まれません。そのため、デザイナー サポートを追加する予定はありません (ETA はありません)。」
WinUI 3.0とは何でしょうか?そして、Windows 8の失敗に終わった冒険の中で、モダンユーザーインターフェイスの灰の中から生まれたWinUI 2.xやUWP(ユニバーサルWindowsプラットフォーム)との関係はどのようなものでしょうか?
WinUI 3は、UWPと従来のWin32アプローチの両方に先駆けて、Windowsの主要なアプリケーションフレームワークとなることを目指しています。
覚えておくべき重要な要素は、ビジュアルコントロールライブラリとアプリケーションプラットフォームの2つです。UWPには、Windows 8から引き継がれたアプリコンテナーの概念が含まれており、セキュリティと安定性のためにアプリケーションをサンドボックス化します。また、UWPには、Microsoftが考えるモダンデザインガイドラインに準拠した、様々なXAMLで作成されたGUIコントロールのライブラリも含まれています。
WinUI 2.xはUWP用のビジュアルコントロールライブラリです。WinUI 3.0は、WinUI 2.xに類似したビジュアルコントロールライブラリを含む新しいアプリケーションフレームワークですが、UWPアプリコンテナー上で実行する必要はありません。WinUI 3.0はUWPまたはWindows 10デスクトップのいずれかをターゲットにすることができます。そのため、MicrosoftはWinUI 3.0を従来のWindowsアプリケーションとUWPの間に生じた分断を統合するものと見ています。
WinUI 3 の最新プレビューでコンパイルされた XAML コントロール ギャラリー サンプル アプリ
そのため、Visual Studioに最新のプレビュービットをインストールする開発者には、「WinUI in UWP」と「WinUI in Desktop」のどちらかを選択できるようになっています。また、同社がWinUI 3.0を「Windows 10の主要なUX(ユーザーエクスペリエンス)レイヤーをすべて分離し、スタンドアロンソリューションとして提供する」と表現したのもこのためです。
Microsoft は、WinUI 3.0 は「将来のプレビューで .NET MAUI に追加される」と述べました。
2つは…まあ、デスクトップフレームワークです
これは本当に再統合なのでしょうか、それとも、それ以前のものすべてと互換性のない、新たなデスクトップフレームワークを導入するだけなのでしょうか?残念ながら、これは事実と大きくかけ離れていません。WinUI 3.0 XAMLはWinUI 2.x XAMLと互換性がありませんが、Microsoftは「ほとんどのプロジェクト変更は、名前空間の検索と置換による変更を伴う」と述べています。
これは、Windows Presentation Foundation (WPF) で使用される XAML とは大きく異なり、MAUI で使用される XAML とも大きく異なります。リリース時にはビジュアルデザイナーがないため、新しいデスクトップアプリケーションを開発する開発者は、Windows Forms や WPF といった従来のフレームワークに頼りたくなるでしょう。しかし、Microsoft はこれらのフレームワークを最新の状態に保つことにあまり投資しないため、これも最適な方法とは言えません。
「開発者はマイクロソフトが正しいことをしてくれるという希望を失っている」…レドモンドはWinUIをクロスプラットフォームにするよう促される
続きを読む
Microsoftの問題は、戦略的な方向性を何度も変更してきたため、Windows愛好家というニッチな層以外の開発者は、現在のバージョンの将来にほとんど信頼を寄せていないことです。GitHubで互換性問題について議論を始めたある開発者は、同社のビジョンは有望だとしながらも、「Microsoftはまたしても手に負えないことを引き受けてしまったようで、そのビジョンがいつ実現されるのか、あるいは実現されるのかどうかさえ分かりません。ビジョンが真に実現されることはなく、またしても未完成の開発スタックが残される可能性が高いでしょう」と述べています。
クロスプラットフォーム開発者 Nick Randolph 氏の WinUI 3.0 の誤解に関する投稿には、さらに考えさせられる点があります。同氏は次のように述べています。「Maui、WinUI、Project Reunion、dotnet など、さまざまな Microsoft チーム間の機能不全状態を理解したい開発者に、一カ所で説明できる場所があればいいのにと思います。」
WinUI 3.0によって、開発者はUWPのような制約のないネイティブWindows 10開発スタックをようやく利用できるようになったという点で、これを前向きに捉えることも可能でしょう。しかし、多くの動きがあり、Microsoft社内でもReact Nativeのような代替技術への関心が高まっています。
.NET 6.0 には、Windows デスクトップ開発の困難な世界以外にも、Apple Silicon および Mac Catalyst (iPad と macOS の両方で実行) に拡張されたプラットフォーム サポートや、ビルド パフォーマンスの向上など、数多くの新機能が搭載されています。これは、プログラム マネージャーの Richard Lander による最新プレビューの投稿で説明されています。®