2023-02-18: Avalonia XPF, Rider 2023.1 EAP 4, ReSharper 2023.1 EAP 5, Search By Target Framework on NuGet.org

Published on Saturday, 18 February 2023

トピックス

Avalonia UI - XPF

https://avaloniaui.net/XPF

Linux や macOS など Windows 以外の環境で既存の WPF アプリケーションを動かすためのクロスプラットフォーム商用ソリューション。

.NET 6 向けの WPF アプリケーションを書き直すことなく Linux や macOS 上で動かすための互換ライブラリー。サードパーティーコンポーネントなどもサポートする。

エンタープライズ向けのソリューションという位置づけのため Avalonia UI と異なり商用ライセンスのみの提供となる。OSS プロジェクトでは Avalonia UI などへの移行が推奨されている。

Rider 2023.1 EAP 4 Is Here! | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/02/13/rider-2023-1-eap-4/

Rider 2023.1 EAP 4 がリリースされた。

IDE のズームのサポート、WASM アプリケーションのスタートアップのデバッグ、Astro サポートの追加、Angular サポートの向上、Vue テンプレートでの TypeScript サポートといった改善が含まれる。

ReSharper 2023.1 EAP 5 Is Out Now! | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/02/17/resharper-2023-1-eap-5/

ReSharper 2023.1 EAP 5 がリリースされた。

このリリースでは非アクティブなプリプロセッサー分岐の再フォーマット、名前変更リファクタリングの改善、スタンドアローン dotTrace の macOS, Linux の x64 および ARM64 のサポート。

Introducing Search By Target Framework on NuGet.org

https://devblogs.microsoft.com/nuget/introducing-search-by-target-framework-on-nuget-org/

NuGet.org での検索でターゲットフレームワークによる絞り込みが可能となった。

".NET" を選択した場合は net5.0 から net7.0 までが対象となり、必要に応じて net7.0 などでも絞り込むことが可能。ただし、これはターゲットフレームワークでの絞り込みのため net7.0 を指定したときに .NET 7 ランタイムがサポートしているもの、という意味ではなくライブラリーの TargetFrameworks に含まれているかどうかであることに注意が必要。

Apple® M1® および M2™ チップを搭載した Mac® コンピューターでWindows 11を使用するためのオプション - Microsoft サポート

https://support.microsoft.com/ja-jp/windows/apple-m1-%E3%81%8A%E3%82%88%E3%81%B3-m2-%E3%83%81%E3%83%83%E3%83%97%E3%82%92%E6%90%AD%E8%BC%89%E3%81%97%E3%81%9F-mac-%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%A7windows-11%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3-cd15fd62-9b34-4b78-b0bc-121baa3c568c

Parallels Desktop for Mac での Arm 版 Windows 11 Pro および Enterprise の動作が Microsoft 公式に認められた。

Nested Virtualization に依存する WSL や Windows Subsystem for Android、Windows Sandbox や仮想化ベースのセキュリティーはサポートされない。また32bit版 Arm アプリケーションの動作もサポートされない(これは Windows においても非推奨となる)。

アーティクル、スライドなど

ReactiveProperty v9.0.0 をリリースしました

https://zenn.dev/microsoft/articles/reactiveproperty-v9-0-0

ReactiveProperty v9.0.0 がリリースされた。

パフォーマンス向上と System.Reactive に依存せず開発できる範囲の拡大や ReactiveCommandSlim、ValidatableReactiveProperty<T> といったクラスが追加された。

(C#) オブジェクトの破棄の可否を型で制限する - ネコのために鐘は鳴る

https://ikorin2.hatenablog.jp/entry/2023/02/13/072121

オブジェクトの破棄を明示できる型を作ることで、破棄の責任の所在を明らかにする方法について。

[.NET 7] P/Invokeの落とし穴メモ

https://zenn.dev/shimat/articles/77c00c1f421a47

P/Invoke での裏側の処理による開放などの落とし穴について。

【C# 12 候補】params Span、改め、params ReadOnlySpan

https://ufcpp.net/blog/2023/2/params-ros

C# 12 で検討されている params (可変長引数) で配列以外を受ける仕様についての現状。

Omitting async / await

https://guriysamarin.medium.com/omitting-async-await-723a04d8f56b

async/await を省略して Task を直接返すことが推奨されないことについて。

スタックトレースの違いや AsyncLocal のリークなど。(ちなみに using による誤 Dispose という例もよくある)

Use ASP.NET Core and React with Vite.js

https://blog.codeinside.eu/2023/02/11/aspnet-core-react-with-vitejs/

ASP.NET Core アプリケーションで React と Vite.js を使う方法について。

【C#】GetTypeByMetadataName ではなく GetTypesByMetadataName を使った方が無難かもしれない。 - ねののお庭。

https://blog.neno.dev/entry/2023/02/11/161723

Roslyn で Compilation からメタデータ名で型を取得する際に GetTypeByMetadataName で取得すると同名の方があった場合に期待通り取得できないので Roslyn 4.1 以降の GetTypesByMetadataName を使用するほうがよいことについて。

Visual Studio AI-Assistance: A Developer's Best Friend - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/visual-studio-ai-assistance-a-developers-best-friend/

Visual Studio の IntelliCode が行っていることの紹介記事。

Determine Whether Two Date Ranges Overlap in C# - Code Maze

https://code-maze.com/csharp-determine-whether-two-date-ranges-overlap/

二つの日付の範囲の重なり合いを比較する方法について。

Consul in .NET — A Service Mesh Solution And Service Discovery Tool

https://medium.com/@KeivanDamirchi/consul-in-net-a-service-mesh-solution-and-service-discovery-tool-eff18292c771

.NET で HashiCorp Consul を使用してサービスメッシュとサービスディスカバリーを実装する方法について。

Tips & Tricks on Upgrading Xamarin.iOS & Xamarin.Android to .NET for iOS & Android - Xamarin Blog

https://devblogs.microsoft.com/xamarin/upgrade-xamarin-ios-android-to-dotnet6-dotnet7/

Xamarin.iOS および Xamarin.Android から .NET for iOS & Android (.NET MAUI ではなくネイティブバインディング) へアップグレードする際のヒント。

What is .NET, and why should you choose it? - .NET Blog

https://devblogs.microsoft.com/dotnet/why-dotnet/

.NET とは何か、なぜ選択すると良いのか、開発者向けの .NET ランタイムを中心として紹介している記事。

NuGetパッケージのバージョン依存関係の解決ルール - Qiita

https://qiita.com/ZiYuCai1984/items/dbb069f5ade08d242acb

NuGet パッケージの参照時のバージョンの解決ルールについて。

Getting Started: Entity Framework Core 7 JSON Support | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/02/14/getting-started-entity-framework-core-7-json-support/

Entity Framework Core 7 で追加された JSON サポートの利用方法について。

Accelerating EF Core with Compiled Queries

https://woodruff.dev/accelerating-ef-core-with-compiled-queries/

Entity Framework Core のコンパイル済みクエリーについて。

.NET Blazor+Radzen を使ってみた - Qiita

https://qiita.com/tinymouse/items/01b1bc4a74429ddc0b17

Blazor 向けの UI コンポーネントライブラリー Radzen を使用する方法について。

サイト、ドキュメントなど

ツイート

新しい Bing の AI チャットは SignalR を使用しているという話。

Deep Dive

Blazor United · Issue #46636 · dotnet/aspnetcore

https://github.com/dotnet/aspnetcore/issues/46636

.NET 8 に向けて開発されている Blazor United の Issue。