トピックス
Avalonia UI - XPF
Linux や macOS など Windows 以外の環境で既存の WPF アプリケーションを動かすためのクロスプラットフォーム商用ソリューション。
.NET 6 向けの WPF アプリケーションを書き直すことなく Linux や macOS 上で動かすための互換ライブラリー。サードパーティーコンポーネントなどもサポートする。
エンタープライズ向けのソリューションという位置づけのため Avalonia UI と異なり商用ライセンスのみの提供となる。OSS プロジェクトでは Avalonia UI などへの移行が推奨されている。
Unleash the full potential of your existing WPF apps with our cross-platform UI framework, enabling WPF apps to run on macOS and Linux without requiring expensive and risky rewrites.
— Avalonia UI (@AvaloniaUI) February 13, 2023
Learn more and apply for the private beta: https://t.co/B8Q6ELEe35#dotnet #wpf pic.twitter.com/lNdT0SEJEm
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 サポート
Parallels Desktop for Mac での Arm 版 Windows 11 Pro および Enterprise の動作が Microsoft 公式に認められた。
Nested Virtualization に依存する WSL や Windows Subsystem for Android、Windows Sandbox や仮想化ベースのセキュリティーはサポートされない。また32bit版 Arm アプリケーションの動作もサポートされない(これは Windows においても非推奨となる)。
IT leaders, the ultimate solution is here! 🎉 With #ParallelsDesktop authorized by @Microsoft, you can now confidently support users who need to run Arm versions of @Windows 11 on their Mac with @Apple silicon. Learn more: https://t.co/UuTaj8zjGP pic.twitter.com/O87LK8fOks
— Parallels (@parallels) February 16, 2023
アーティクル、スライドなど
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
.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 を使用しているという話。
Got access to the new bing and I looked to see how they implemented the chat. It's using #signalr 😍😍😍 pic.twitter.com/nAyEndNMUq
— hachyderm.io/@davidfowl (@davidfowl) February 16, 2023
Deep Dive
Blazor United · Issue #46636 · dotnet/aspnetcore
https://github.com/dotnet/aspnetcore/issues/46636
.NET 8 に向けて開発されている Blazor United の Issue。