トピックス
Announcing .NET 7 Release Candidate 2 - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-rc-2/
.NET 7 RC2 がリリースされた。
記事では過去の .NET 7 に関する新機能の記事へのリンクのほか、いくつかの変更について紹介している。
- System.Text.Json のソース生成時のリフレクションフォールバックの再有効化方法
- API を正しく使用するための新しいアナライザー
- Generic Math インターフェースを正しく実装するためのアナライザー
- IntPtr と UIntPtr の組み込みオペレーターの挙動の変更を防止するためのアナライザー
Announcing Entity Framework Core 7 RC2: JSON Columns - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-ef7-release-candidate-2/
Entity Framework Core 7 RC2 がリリースされた。
このリリースでは GA に含まれる機能のすべてが含まれ、RC1 から80以上の問題の修正が行われている。
記事では Entity Framework Core 7 の新機能の JSON カラムへのマッピングについて、定義方法やクエリーなど詳しく紹介している。
ASP.NET Core updates in .NET 7 Release Candidate 2 - .NET Blog
https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-rc-2/
.NET 7 RC2 での ASP.NET Core の更新についての記事。
このリリースでは次の新機能が含まれており、記事ではそれぞれについて解説している。
- 出力キャッシュの改善
- msal.js (MSAL) を使用した動的な認証要求
- Blazor WebAssembly での認証の診断の改善
- WebAssembly でのマルチスレッディング (試験的)
Announcing .NET MAUI support for Xcode 14 and iOS 16 - .NET Blog
https://devblogs.microsoft.com/dotnet/dotnet-maui-xcode14/
.NET MAUI が Xcode 14 および iOS 16 をサポートした。
Visual Studio 2022 と .NET 6 で Xcode 14 と iOS 16 のサポートする .NET MAUI の6番目となるサービスリリース。Visual Studio 2022 17.3 または 17.4 Preview 3 、Visual Studio for Mac は 17.4 Preview 3 での対応。
なお .NET 7 の MAUI での Xcode 14 サポートは後日(一週間後)となっているため、この時点では .NET 7 の MAUI は RC1 が最新となる。
記事では Windows デバイスから Mac に接続して iOS のアプリケーションを開発できることを紹介している。
What's new in System.Text.Json in .NET 7 - .NET Blog
https://devblogs.microsoft.com/dotnet/system-text-json-in-dotnet-7/
.NET 7 の System.Text.Json の新機能についての紹介記事。
- コントラクトのカスタマイズ
IJsonTypeInfoResolver
やModifiers
を使ったシリアライズ/デシリアライズ処理のカスタマイズ
- 型階層
JsonDerivedType
属性を使用した継承型のシリアライズ/デシリアライズJsonPolymorphic
属性やJsonTypeInfo
を操作することによるポリモーフィズムのカスタマイズ
- 必須メンバー (
required
) JsonSerializerOptions.Default
の追加Utf8JsonReader.CopyString
の追加- ソース生成改善
IAsyncEnumerable<T>
のサポートJsonDocument
のサポートDateOnly
,TimeOnly
のサポート
- パフォーマンス改善
- 破壊的変更
.NET October 2022 Updates – .NET 6.0.10 and .NET Core 3.1.30 - .NET Blog
https://devblogs.microsoft.com/dotnet/october-2022-updates/
.NET 6.0.10 と .NET Core 3.1.30 がリリースされた。
このリリースではいくつかの不具合の修正と改善のほか、NuGet に関する脆弱性に対応するセキュリティー修正が含まれている。
.NET Framework October 2022 Security and Quality Rollup - .NET Blog
https://devblogs.microsoft.com/dotnet/dotnet-framework-october-2022-security-and-quality-rollup/
.NET Framework の2022年10月のセキュリティーと累積アップデートがリリースされた。
このリリースではいくつかの問題の修正と信頼性の向上が含まれている。新しいセキュリティー修正は含まれない。
Azure Static Web Apps extended support for .NET Core 3.1 ends on 3 December 2022 | Azure updates | Microsoft Azure
https://azure.microsoft.com/en-us/updates/staticwebappsdotnet3deprecation/
Azure Static Web Apps の .NET Core 3.1 の拡張サポートが2022年12月3日に終了する。
Azure Static Web Apps の関数は Azure Functions 上で動作するため、引き続きサポートとセキュリティー更新を受け取るためには .NET 6 を使用するランタイム v4 への移行が必要となる。
In development: Day 0 support for .NET 7 | Azure updates | Microsoft Azure
https://azure.microsoft.com/en-us/updates/in-development-day-0-support-for-net-7/
Azure App Service での .NET 7 の Day 0 サポート予定のアナウンス。
Cake v2.3.0 released
https://cakebuildnet.medium.com/cake-v2-3-0-released-b60746a00555
Cake v2.3 がリリースされた。
グローバルスクリプトキャッシュの改善やコマンドのエイリアスといった改善が含まれている。
アーティクル、スライドなど
【C#】コンソールアプリで入力された文字を非表示にしてReadLineする - Qiita
https://qiita.com/admiralhetare/items/2de677d90c5ce0ab2659
パスワード入力のようなエコーバックしない1行入力 (ReadLine) を実現する方法についての記事。
Adding validation to strongly typed configuration objects using FluentValidation
ASP.NET Core のような Microsoft.Extensions.Configuration を使用した設定で型付き設定を行う際に FluentValidation で設定値を検証する方法についてのの記事。
End-to-End test a Blazor App with Playwright [Part 1]
Blazor アプリケーションを Playwright で End-to-End テストを行う方法についての記事シリーズ。
List in C#: implementation and features
https://pvs-studio.com/en/blog/posts/csharp/0995/
.NET の List<T>
がどのような実装となっていてどのような機能を提供するのかを解説している記事。
[.NET 6] AWS SSM Parameter StoreをGeneric Hostに登録して使う
https://zenn.dev/shimat/articles/affbb2ece0ace8
AWS Systems Manager Parameter Store にある値を ASP.NET Core のような Generic Host アプリケーションから利用する方法についての記事。
Entity Framework Core 7: Strongly Typed Ids Together With Auto-Increment Columns
Entity Framework Core 7 で対応するオートインクリメントなカラムに対する厳密な型を持つ ID を使用することについての記事。
Blazor Life Cycle Events: Oversimplified
https://betterprogramming.pub/blazor-life-cycle-events-oversimplified-4b8e1bd5fa4b
Blazor のライフサイクルイベントについて解説している記事。
Developing ASP.NET Core apps in Docker - Live Recompilation
https://tymisko.hashnode.dev/developing-aspnet-core-apps-in-docker-live-recompilation
Docker (Docker Compose) で ASP.NET Core アプリケーションを開発する手順についての記事。
ローカルのソースコードをマウントしてコンテナー内でビルドと実行を行う方法を紹介している。
[ASP.NET Core 6] モデルバインドでrecordを使うときの注意点
https://zenn.dev/shimat/articles/ef69b034cd0499
.NET 6 の ASP.NET Core で record
型をモデルバインドする際に設定する属性(FromForm
, JsonPropertyName
など)で注意すべき点をまとめた記事。
Lessons Learned on Optimizing .NET on AWS Lambda
https://dev.to/lambdasharp/lessons-learned-on-optimizing-net-on-aws-lambda-2n5m
AWS Lambda で .NET アプリケーションを実行する際の最適化ポイントのまとめ。
Stripe Payment Gateway Implementation in ASP .NET Core Web API
https://juldhais.net/stripe-payment-gateway-implementation-in-asp-net-core-web-api-359ad44e2b47
ASP.NET Core Web API から Stripe の API を使用する方法まとめ。
プレゼンテーション
Victor Nicollet - ILPack: saving assemblies to disk (Dotnetos Conference 2022) - YouTube
https://www.youtube.com/watch?v=t_kBLD5D3_4
.NET Core 以降で動的にアセンブリを保存するためのライブラリー ILPack についての発表。
Kevin Gosse - Pushing C# to new places with NativeAOT (Dotnetos Conference 2022) - YouTube
https://www.youtube.com/watch?v=eE0AbO5_XSw
.NET の NativeAOT でネイティブライブラリーを作ることでいろいろなことができる(.NET プロファイラーや LLDB 拡張、.NET の GC など)という発表。
Krzysztof Stolarz - Road to .NET 6: migration story of hope and despair (Dotnetos Conference 2022) - YouTube
https://www.youtube.com/watch?v=ttsowlY55KM
高負荷リアルタイムな .NET Framework によるサーバーアプリケーションを .NET に移行した事例についての発表。
ライブラリ、リポジトリ、ツールなど
chrisnas/Win-pprof: Windows .pprof viewer
https://github.com/chrisnas/Win-pprof
.pprof ファイルを表示するための Windows のビューアー。
If you have to look into .pprof files, https://t.co/LktSgqheaP could help:
— Christophe Nasarre (@chnasarre) October 11, 2022
- dotnet-pprof: CLI to dump .pprof files
- win-pprof: GUI to navigate into .pprof; focusing on samples, values, labels and call stacks.
I'm sharing the tools I'm using everyday to check our profiles. pic.twitter.com/FPlpRFsCtn
サイト、ドキュメントなど
ツイート
Here is roughly how Tiered Compilation works in .NET. Now guess why I added two extra instructions to the call-counting stub (size regression!) and detected benefits from that in web apps? 🙃 HINT: all calls to B() hit the same location of memory to decrement call-counter for B() pic.twitter.com/iCIpyF8OMw
— Egor Bogatov (@EgorBo) October 11, 2022
.NET の階層化コンパイルがどのようになっているかの大雑把な図で、何故2つの呼び出しが追加されていて Web アプリにはどういうメリットがあるのかという話。異なるスレッドで同じメソッドを実行するパターン、つまり異なるコア(あるいは NUMA)から同じメモリー位置にアクセスする場合にキャッシュスラッシングを減らすためらしい。