個人的なメモ

Tomohiro Suzuki @hiro128_777 のブログです。Microsoft MVP for Developer Technologies 2017- 本ブログと所属組織の公式見解は関係ございません。

.NET MAUI Preview 9 の更新情報

.NET MAUI Preview 9 の更新情報についてご紹介します。

なお、オリジナルの記事はこちらです。
devblogs.microsoft.com
 
.NET MAUI Preview 10 の更新情報はこちらです。
hiro128.hatenablog.jp
 
.NET MAUI Preview 8 の更新情報はこちらです。
hiro128.hatenablog.jp
 
 

コントロールの更新(.NET MAUI Preview 9)

 
公式情報:Announcing .NET MAUI Preview 9 - .NET Blog
 
 

新しいボーダーコントロール(.NET MAUI Preview 9)

  • 新しい Microsoft.Maui.Graphics ライブラリは、ネイティブのグラフィックスエンジンに基づいた一貫した UI 描画 API を提供します。
  • .NET MAUI のほとんどのレイアウトやコントロールに、ボーダー、コーナーレンダリング、美しいシャドウを簡単に追加できます。
  • 新しいボーダーコントロールは、任意のレイアウトやコントロールをラップして、ボーダーや各コーナーの独立した制御を追加することができます。

 
公式情報:Borders, Corners, and Shadows – Oh my!
 
 

高速な Android のスタートアップ(.NET MAUI Preview 9)

Preview 9には、.NET MAUIのスタートアップトレースプロファイルが同梱されており、コマンドラインからビルドする際に使用することができます。 
[android] add AOT profile for .NET MAUI by jonathanpeppers · Pull Request #2496 · dotnet/maui · GitHub
 
スタートアップトレースを活用して起動時の実行経路を追跡することで、アプリケーションの起動時に実行される部分のみを AOT 化し、スピードとサイズのバランスを取ることができます。
 
公式情報:Quick Android Startup

コントロールのエコシステム(.NET MAUI Preview 9)

DevExpress、Syncfusion、Telerik は最近 .NET MAUI用の新しいコントロールセットを出荷しています。それらでは、Microsoft.Maui.Graphicsの強力なグラフィックサポートが利用されています。
 
公式情報:
Announcing .NET MAUI Preview 9 - .NET Blog

 
 

.NET MAUI Preview 10 更新情報

.NET MAUI Preview 10 の更新情報についてご紹介します。

なお、オリジナルの記事はこちらです。
devblogs.microsoft.com
 
.NET MAUI Preview 11 の更新情報はこちらです。
hiro128.hatenablog.jp
 
.NET MAUI Preview 9 の更新情報はこちらです。
hiro128.hatenablog.jp
 
 

.NET MAUI のインストール(.NET MAUI Preview 10)

.NET MAUIをインストールするには、Visual Studio 2022 Preview 17.1 以上(Windows版)で「.NET によるモバイル開発」ワークロードにチェックを入れます。
 
将来のリリースでは、.NET MAUIは独自のトップレベルのワークロードに昇格する予定となっています。
 

なお、Visual Studio for Mac 2022 Preview ではまだ .NET MAUI はサポートされていません。
 
公式情報:Announcing .NET MAUI Preview 10 - .NET Blog
 
 

コントロールと機能のアップデート(.NET MAUI Preview 10)

CollectionView と IndicatorView のハンドラ実装が新たに追加されました。
その他のコントロールにも、VerticalTextAlignment、TextTransform などのプロパティが実装されました。
 
Xamarin.Forms のレンダラーアーキテクチャは、.NET MAUI ではハンドラーアーキテクチャーに進化しました。
ハンドラーについての詳細は以下を参照ください。
docs.microsoft.com
 
公式情報:Announcing .NET MAUI Preview 10 - .NET Blog
 
 

.NET MAUI Preview 11 更新情報

.NET MAUI Preview 11 の更新情報についてご紹介します。

なお、オリジナルの記事はこちらです。
devblogs.microsoft.com
 
.NET MAUI Preview 12 の更新情報はこちらです。
hiro128.hatenablog.jp
 
.NET MAUI Preview 10 の更新情報はこちらです。
hiro128.hatenablog.jp
 
 

Fluent Design SystemによるWindowsコントロールのスタイリング(.NET MAUI Preview 11)

.NET MAUI では、アプリケーションは既定で単一のコードベースからプラットフォーム固有のデザインとエクスペリエンスを提供されます。Windows 11 における更新された Fluent Design System による新しいUIスタイルを含みます。
 
公式情報:Announcing .NET MAUI Preview 11 - .NET Blog
 
 

マルチ Window アプリ(.NET MAUI Preview 11)

.NET MAUI では Xamarin.Forms では不可能だったマルチ Window アプリが利用できます。Application.Current.Windows に作成したすべてのウィンドウへの参照は保持され簡単に新しいウィンドウを開けます。
(Windows App SDK のマルチ Window の実装は、Windows App SDK v1.1 がリリースされるまで実験的なリリースとなります)
 
公式情報:Announcing .NET MAUI Preview 11 - .NET Blog
 
 

C# 10 の新機能を利用したシンプルなテンプレート(.NET MAUI Preview 11)

暗黙的な using ディレクティブやファイルスコープの名前空間宣言などの C# 10 の新機能によりシンプルなテンプレートに更新されました。MauiProgram.cs も簡素化されました。
 
暗黙的な using ディレクティブについては以下を参照ください。
hiro128.hatenablog.jp
ファイルスコープの名前空間宣言については以下を参照ください。
hiro128.hatenablog.jp
 
公式情報:Announcing .NET MAUI Preview 11 - .NET Blog
 
 

iOS, macOS, tvOS における型の調整(.NET MAUI Preview 11)

  • .NET 6 の iOS と Mac Catalyst SDK では、System.nintとSystem.nuintではなく、C# 9.0 から採用された新しいネイティブ型(nint、nuint)が利用されます。これにより、Xamarin.iOS や Xamarin.Mac 向けにビルドした既存のコードやアセンブリとの互換性が維持されなくなります。
  • プロジェクトを .NET 6 にアップグレードする場合、すべてのコードを.NET 6 をターゲットに再コンパイルする必要があります。
  • 既存のアセンブリ(古いTargetFrameworkIdentifier である xamarinios10 用にビルドされた NuGet パッケージなど)は動作せず、サポートされません。
  • net4.x、netstandard、netcoreapp、.NET 5.0+ などの非 Xamarin をターゲットとするアセンブリは問題なく動作します。
  • .NET 6 にアップグレードし、C# ネイティブの nint、nuint 型を明示的に使用したい場合は、System.nint と System.nuint を C# の nint と nuint に書き換えるコードの修正が必要となります。

以下の GitHub の issue もご確認することをお勧めします。
github.com
 
C# ネイティブの nint、nuint 型については以下を参照ください。
docs.microsoft.com
 
公式情報:
Announcing .NET MAUI Preview 11 - .NET Blog

 
 

.NET MAUIドキュメントの更新(.NET MAUI Preview 11)

アクセシビリティ、BlazorWebView、Border、GraphicsView、Maui.Graphics、Shadows、Splash Screen、マルチターゲット、プラットフォーム固有のコードの呼び出し方などが更新されています。
docs.microsoft.com


Xamarin.Formsのドキュメントは .NET MAUI に移植され更新作業中であり、今後定期的に公開される予定となっています。必要な .NET MAUI のドキュメントが見つからない場合は、Xamarin.Forms のドキュメントを確認してください。
docs.microsoft.com
 
公式情報:
Announcing .NET MAUI Preview 11 - .NET Blog



 
 

.NET MAUI Preview 12 更新情報

.NET MAUI Preview 12 の更新情報についてご紹介します。

なお、オリジナルの記事はこちらです。
devblogs.microsoft.com
 
.NET MAUI Preview 13 の更新情報はこちらです。
hiro128.hatenablog.jp
 
.NET MAUI Preview 11 の更新情報はこちらです。
hiro128.hatenablog.jp
 
 

.NET MAUIドキュメントの更新(.NET MAUI Preview 12)

アプリアイコン、 アプリライフサイクル、ブラシ、 コントロール、シングルプロジェクトに関するドキュメントが更新されています。
 
公式情報:docs.microsoft.com
 
 

FlyoutView の handler の実装 [Android] (.NET MAUI Preview 12)

公式情報:FlyoutView Handler Android by PureWeen · Pull Request #3513 · dotnet/maui · GitHub
 
 

RelativeLayout と AbsoluteLayout の互換性ハンドラの登録(.NET MAUI Preview 12)

公式情報:Register compatibilty handlers for RelativeLayout and AbsoluteLayout by hartez · Pull Request #3723 · dotnet/maui · GitHub
 
 

Z Index プロパティの追加(.NET MAUI Preview 12)

公式情報:ZIndex proof-of-concept by hartez · Pull Request #3635 · dotnet/maui · GitHub
 
 

[破壊的変更] iOS、tvOS、macOSの型の .NET 6 での統合(.NET MAUI Preview 12)

  • .NET 6 の iOS と Mac Catalyst SDK では、System.nintとSystem.nuintではなく、C# 9.0 から採用された新しいネイティブ型(nint、nuint)が利用されます。これにより、Xamarin.iOS や Xamarin.Mac 向けにビルドした既存のコードやアセンブリとの互換性が維持されなくなります。
  • プロジェクトを .NET 6 にアップグレードする場合、すべてのコードを.NET 6 をターゲットに再コンパイルする必要があります。
  • 既存のアセンブリ(古いTargetFrameworkIdentifier である xamarinios10 用にビルドされた NuGet パッケージなど)は動作せず、サポートされません。
  • net4.x、netstandard、netcoreapp、.NET 5.0+ などの非 Xamarin をターゲットとするアセンブリは問題なく動作します。
  • .NET 6 にアップグレードし、C# ネイティブの nint、nuint 型を明示的に使用したい場合は、System.nint と System.nuint を C# の nint と nuint に書き換えるコードの修正が必要となります。

以下の GitHub の issue もご確認することをお勧めします。
github.com
 
C# ネイティブの nint、nuint 型については以下を参照ください。
docs.microsoft.com
 
 

WinUI の Windows ツールバーの拡張[non-Shell](.NET MAUI Preview 12)

公式情報:Window extend toolbar by PureWeen · Pull Request #3693 · dotnet/maui · GitHub
 
 

.NET MAUI における Shell を活用したナビゲーション(.NET MAUI Preview 12)

シェルコンテキストでのナビゲーションは、URIベースのルーティングで行われます。 
公式情報:Announcing .NET MAUI Preview 12 - .NET Blog
 
 

Shell と DI(.NET MAUI Preview 12)

  • MauiProgram.cs の DIコンテナの中で依存関係を定義します。

devblogs.microsoft.com
 

  • Shellは、多くのスタイリングとテンプレート機能を提供しているので、ほとんどのモバイル アプリケーションが必要としている基本機能を素早く実現することができます。

シェルについての詳細は以下を参照ください。
docs.microsoft.com
 
 

.NET MAUI Preview 13 更新情報

.NET MAUI Preview 13 の更新情報についてご紹介します。

なお、オリジナルの記事はこちらです。
devblogs.microsoft.com
 
.NET MAUI Preview 14 の更新情報はこちらです。
hiro128.hatenablog.jp
  
.NET MAUI Preview 12 の更新情報はこちらです。
hiro128.hatenablog.jp
 
 

目次

 
 

アプリのブートストラップに Microsoft.Extensions ビルダーパターンを採用(.NET MAUI Preview 13)

起動時に実行する処理は、プラットフォーム固有のネイティブ・アプリケーション・クラス(Windows の WinUIApplication、Android の MainApplication、iOS/macOS の AppDelegate )ではなく、すべてを MauiProgram クラスで行うことを推奨されています。
 

起動時の各種設定

公式情報:Announcing .NET MAUI Preview 13 - .NET Blog
 

DIコンテナの設定

公式情報:Announcing .NET MAUI Preview 13 - .NET Blog
 

プラットフォームイベントごとのカスタムセットアップ

公式情報:Announcing .NET MAUI Preview 13 - .NET Blog
 

ホスティングの削除とログの無効化(Android のアプリの起動時間の短縮)

公式情報:Announcing .NET MAUI Preview 13 - .NET Blog
 
 

.NET MAUIドキュメントの更新(.NET MAUI Preview 13)

XAMLの基礎から応用まで、バインド可能なプロパティや添付プロパティ、RelativeLayout などの多くのトピックについて更新されています。

公式情報:docs.microsoft.com
 
 

ASP.NET Core Blazor Hybridドキュメントの更新(.NET MAUI Preview 13)

.NET MAUI、WPF、Windows FormsでBlazor Hybridアプリを構築するためのドキュメントです。

公式情報:docs.microsoft.com
 
 

ラベルにFormattedTextプロパティのサポートを追加(.NET MAUI Preview 13)

公式情報:Add FormattedText property support to Label in Controls by Redth · Pull Request #3637 · dotnet/maui · GitHub
 
 

ListView のハンドラー対応(.NET MAUI Preview 13)

WinUI の ListView の Handler 対応

公式情報:ListView Handler for WinUI by PureWeen · Pull Request #3916 · dotnet/maui · GitHub
 

[Android] Compatibility.ViewRenderer 経由の ListView の Handler 対応

公式情報:[Android] Listview handler via `Compatibility.ViewRenderer` by PureWeen · Pull Request #3817 · dotnet/maui · GitHub
 

[iOS] ListView/TableView の Handler 対応

公式情報:[iOS] ListView/TableView Handler by PureWeen · Pull Request #4193 · dotnet/maui · GitHub
 
Xamarin.Forms のレンダラーアーキテクチャは、.NET MAUI ではハンドラーアーキテクチャーに進化しました。
ハンドラーについての詳細は以下を参照ください。
docs.microsoft.com
 
 

Android のアプリの起動時間の短縮のために MS.Extensions.Hostingを依存関係から削除(.NET MAUI Preview 13)

  • MS.Extensions.Hostingを依存関係から削除しました。ユーザーは、Hosting を経由して ServiceProvider を構築することで、間接参照を必要とせずに DI サービス、Configuration、Logging を設定することができます。
  • MauiApplicationBuilder に新しい ConfigureContainer メソッドを追加し、DI の実装を置き換えることができるようにしました。
  • Logging Provider をデフォルトで削除しました。ライブラリは通常通り、ILoggerサービスを取得できます。アプリは気になるロギングプロバイダを追加することができます。

公式情報:Remove MS.Extensions.Hosting from Maui by eerhardt · Pull Request #4505 · dotnet/maui · GitHub
 
 

RadioButtonにハンドラープロパティを追加できるように更新(.NET MAUI Preview 13)

公式情報:Radiobutton Handler by PureWeen · Pull Request #3784 · dotnet/maui · GitHub
 
 

SwipeView のハンドラー対応(.NET MAUI Preview 13)

[iOS] SwipeView の Handler 対応

公式情報:[iOS] SwipeViewHandler by PureWeen · Pull Request #4064 · dotnet/maui · GitHub
 

WinUI の SwipeView の Handler 対応

公式情報:SwipeViewHandler WinUI by PureWeen · Pull Request #4026 · dotnet/maui · GitHub
 
 

WinUI の Flyout のハンドラー対応(.NET MAUI Preview 13)

公式情報:WinUI Flyout Handler by PureWeen · Pull Request #3735 · dotnet/maui · GitHub
 
 

WinUI の TabbedPage のハンドラー対応(.NET MAUI Preview 13)

公式情報:WinUI TabbedPage Handler by PureWeen · Pull Request #4257 · dotnet/maui · GitHub
 
 

WebView の CanGoBack、CanGoForward、Eval、GoBack、GoForward、Reload 実装

WebViewHandler への GoBack, GoForward, Reload メソッド実装

公式情報:Implement GoBack, GoForward and Reload methods in WebViewHandler by jsuarezruiz · Pull Request #3316 · dotnet/maui · GitHub
 

WebViewHandler への CanGoBack and CanGoForward プロパティ実装

公式情報:Implement CanGoBack and CanGoForward properties in WebViewHandlers by jsuarezruiz · Pull Request #4288 · dotnet/maui · GitHub