トピックス
.NET January 2023 Updates – .NET 7.0.2, .NET 6.0.13 - .NET Blog
https://devblogs.microsoft.com/dotnet/january-2023-updates/
.NET 7.0.2 と .NET 6.0.13 がリリースされた。
このリリースでは .NET 6 の DoS 脆弱性が修正されている。この脆弱性は公開されたエンドポイントに悪意あるリクエストを送信することでスタックオーバーフローを発生させ、サービス拒否攻撃が可能となるもの。
ReSharper 2023.1 Starts Its Early Access Program | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2023/01/19/resharper-2023-1-eap-starts/
ReSharper 2023.1 の EAP (早期アクセスプロブラム) が開始となった。
ReSharper 2023.1 EAP 1 では #region
のクイックフィックスや Span.SequenceEquel
の is
への書き換えといったコードインスペクションの改善、C++ サポートの改善が含まれている。
Rider 2023.1 Early Access Program Has Started | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2023/01/19/rider-2023-1-eap-start/
Rider 2023.1 の EAP (早期アクセスプロブラム) が開始となった。
Rider 2023.1 EAP 1 では Unity の API のポップアップからドキュメントへのリンクや Unreal Engine での新しいクラス作成時の UI の再実装、Docker の高速モードサポート、 #region
のクイックフィックスや Span.SequenceEquel
の is
への書き換えといったコードインスペクションの改善、メインツールバーの UI 修正が含まれている。
Visual Studio 2022 17.5 Preview 3 is here! - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-5-preview-3-is-here/
Visual Studio 2022 17.5 Preview 3 がリリースされた。
- 全般的な IDE シェル、Git、エディター、デバッガー、診断
- アクセシビリティチェッカー
- スペルチェッカー
- 外部ソースデバッグの改善
- 逆コンパイルパフォーマンスの向上
- Markdown のデフォルトエディター化
- VS インテントベースの提案
- Microsoft.Data.SQL.Client を使用した SQLServer への接続
- .NET
- Razor ファイルでの HTML コードアクションのサポート
- タグの削除、画像の Base64 エンコード、画像の幅と高さの挿入
- Razor および Roslyn のパフォーマンス改善
- プロジェクト構成切り替え、コード分析の高速化、UI 遅延を減らすための入力改善
- より速いインクリメンタルビルドのためのビルド高速化
- Razor ファイルでの HTML コードアクションのサポート
- C++
- ブレースのペアの色付け
- ターミナルで開発コンテナー(devcontainer)を開く
- セットアップ
- winget での Visual Studio パッケージの改善
Announcing .NET Community Toolkit 8.1! Better, faster MVVM source generators, .NET 7 support, and more! - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-the-dotnet-community-toolkit-810/
.NET Community Toolkit 8.1 がリリースされた。
ObservableProperty
へのカスタム属性、MVVM Toolkit アナライザー、MVVM Toolkit Source Generator の最適化、IObservable<T>
メッセンジャー拡張、.NET 7 と C# 11 のサポート。
MinBZK/woo-besluit-broncode-digid-app
https://github.com/MinBZK/woo-besluit-broncode-digid-app
オランダの DigiD というアプリケーションがオープンソースとして公開された。(国のアプリで、政府の透明性維持活動の一環と思われる)
1500万ユーザーのアクティブユーザーがいるアプリケーションで、Xamarin.Forms 製とのこと。
This is huge! One of THE biggest apps in The Netherlands with 15 million active users, has been open-sourced. And guess what, it's using Microsoft technology. And not just that, they're using Xamarin.Forms 🤩
— Gerald Versluis (@jfversluis) January 17, 2023
Read the (translated) press release here: https://t.co/5DtK06MNHQ
Release 7.0.58 Service Release 2 · dotnet/maui
https://github.com/dotnet/maui/releases/tag/7.0.58
.NET MAUI 7.0.58 Service Release 2 がリリースされた。
このリリースでは様々な不具合の修正や Windows App SDK の更新などが行われている。
.NET Framework January 2023 Cumulative Update Preview - .NET Blog
https://devblogs.microsoft.com/dotnet/dotnet-framework-january-2023-update/
.NET Framework の2023年1月の累積アップデートプレビューがリリースされた。
このリリースでは WPF のいくつかの不具合と、Socket で稀に発生する問題が修正されている。
Visual Studio Spell Checker Preview Now Available - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/visual-studio-spell-checker-preview-now-available/
Visual Studio のプレビューで使用できるようになったスペルチェッカーについての紹介。
記事ではスペルチェッカーの使用方法やどのようなパターンでどのようにチェックされるか、カスタマイズの方法といったことについて紹介している。
アーティクル、スライドなど
【C# 12 候補】IEnumerable 向けリスト パターン | ++C++; // 未確認飛行 C ブログ
https://ufcpp.net/blog/2023/1/list-pattern-enumerable/
C# 12 候補となっている IEnumerable
向けのリストパターンマッチを紹介している。
【C# 12 候補】半自動プロパティ | ++C++; // 未確認飛行 C ブログ
https://ufcpp.net/blog/2023/1/semi-auto-property
C# 12 候補となっている半自動プロパティ (バッキングフィールドのみ自動生成) を紹介している。
初期化子やオーバーライド時の挙動などについても解説している。
Beginners Guide to Get Started with Smart Contract in C#
https://dev.to/satyakarki/beginners-guide-to-get-started-with-smart-contract-in-c-3c7e
Stratis という C# でスマートコントラクトを実装可能なプラットフォームを使用してスマートコントラクトを実装することを紹介。
.NET Native AOT
https://ericsink.com/native_aot/index.html
Native AOT についての解説やサンプルコードを取り扱うシリーズ。
Top 10 bugs found in C# projects in 2022
https://pvs-studio.com/en/blog/posts/csharp/1020/
2022年に PVS-Studio の開発者が見つけて記事にしていたオープンソースプロジェクトのバグの Top 10 をまとめたもの。
Securing Sensitive Information with .NET User Secrets | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2023/01/17/securing-sensitive-information-with-net-user-secrets/
.NET User Secrets を使用してローカルでの機密情報の保存とアプリケーションからの使用についての紹介。
JetBrains Rider でのシークレットの管理とアプリケーションからの使用方法を紹介している。
New: Better search in Visual Studio - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/new-better-search-in-visual-studio/
Visual Studio でプレビューとなっている新しいオールインワン検索についての紹介。
Rate Limiting with ASP.NET Core 7.0
https://medium.com/abp-community/rate-limiting-with-asp-net-core-7-0-e7834a94b8c5
.NET 7 でのレートリミット API の紹介と ASP.NET Core で使用する方法について。
Exploring the model-binding logic of minimal APIs: Behind the scenes of minimal APIs - Part 3
Minimal API でのモデルバインディングの仕組みを解説。
記事ではどのような流れで受け取ったリクエストをハンドラーの引数にバインドするかといった仕組みと流れを解説している。
Multiple File Drag and Drop Upload with ASP.NET Core | Khalid Abuhakmeh
https://khalidabuhakmeh.com/multiple-file-drag-and-drop-upload-with-aspnet-core
複数のファイルをドラッグアンドドロップでアップロードする Razor ページを実装する方法について。
Reading “object” in memory - starting with stacks
https://chnasarre.medium.com/reading-object-in-memory-starting-with-stacks-aaef54bd521d
診断プロトコルの nettrace で受信できるオブジェクトのペイロードを読み取る方法についての解説。
Learn DateOnly & TimeOnly
https://dev.to/karenpayneoregon/learn-dateonly-timeonly-23j0
DateOnly と TimeOnly の基本の紹介と、Json.NET, System.Text.Json などのライブラリーでの対応について。
PropertyChangedEventManagerはスレッドプールでは失敗する - Qiita
https://qiita.com/emoacht/items/3f7e216b43431e960751
PropertyChangedEventManager
の AddListener
/RemoveListener
は同じスレッドから呼び出す必要があることについて。
[C#] Dictionary(HashTable)を自作して理解する
https://zenn.dev/fugi/articles/d2a5ef35e4190f
Dictionary のような構造を実装して、ハッシュの扱いを理解してみるという試み。
非同期メイン関数でスレッドアパートメントがSTAにならない
https://zenn.dev/nin_neko/articles/6f08f2fdace43f
エントリーポイントに STAThread
属性をつけていても、async Task
と非同期メソッドになっている場合、スレッドアパートメントが STA に設定されないことについてとその対処方法。
【.NET】設定ファイル(例 appsettings.json)にコメント書けるってよ - Qiita
https://qiita.com/yaju/items/35d94a20e8e3e8ca268c
Microsoft.Extensions.Configuration.Json (appsettings.json など) は JavaScript または C# スタイルのコメントを JSON に書くことが許可されていることについて。
ASP.NET Core でカスタム検証属性を作成する - Qiita
https://qiita.com/gushwell/items/d659027304645b30b805
ASP.NET Core で ValidationAttribute
を使ったカスタム検証属性を実装する方法について。
The evolution of delegate performance in .NET
https://medium.com/@skyake/the-evolution-of-delegate-performance-in-net-c8f23572b8b1
.NET 7 で行われた PGO によるデリゲートの最適化についての解説。
Track your coding progress on GitHub with a .NET Worker Service
https://dev.to/sannae/track-my-coding-progress-on-github-with-a-net-worker-service-49g4
GitHub で自分のリポジトリーの言語統計を取る仕組みをワーカーサービスとして実装してみる例。
using alias を任意の型に対応 | ++C++; // 未確認飛行 C ブログ
https://ufcpp.net/blog/2023/1/using-alias-any-types/
using
によるエイリアスで定義できるものを拡張するという提案についての解説。
Profiling .NET on Linux with BenchmarkDotNet
https://adamsitnik.com/PerfCollectProfiler/
BenchmarkDotNet を使用して Linux 上で .NET のプロファイリングをする方法について。
0.13.3 で導入された PerfCollectProfiler プラグインによって PerfView や SpeedScope、perf ファイルをサポートするツールで開ける形でプロファイリング結果をエクスポートできる。
ライブラリ、リポジトリ、ツールなど
Dots - the friendly .NET SDK manager - Johnnys.News
https://johnnys.news/2023/01/Dots-a-dotnet-SDK-manager
様々な .NET SDK のインストール、アンインストールを行える GUI ツール。
VeloxDB/VeloxDB: An object oriented database for building next generation solutions with .NET and C#.
https://github.com/VeloxDB/VeloxDB
C# で記述された .NET 向けオブジェクト指向データベース。
otterkit/otterkit: Otterkit COBOL Compiler
https://github.com/otterkit/otterkit
.NET プラットフォーム向け ISO COBOL 2022 のコンパイラーとランタイム実装。
StableDiffusionDiscordBot
https://stablediffusiondiscordbot.azurewebsites.net/
Stable Diffusion などで AI 画像生成を行う Discord Bot とそのサイト。
Marplex/WpfSnowfall: Fully customizable WPF snowfall control
https://github.com/Marplex/WpfSnowfall
WPF アプリケーションで雪を降らせることのできるコントロール。
サイト、ドキュメントなど
ベースライン パッケージ検証コントロール - .NET | Microsoft Learn
https://learn.microsoft.com/ja-jp/dotnet/fundamentals/package-validation/baseline-version-validator
.NET 6 以降で導入された NuGet のパッケージ検証機能について説明。
NuGet パッケージを作成時に指定したベースラインバージョンからの API の破壊的変更を検出することができる。
ML.NET チュートリアル | 10 分で始める | .NET
https://dotnet.microsoft.com/ja-jp/learn/ml-dotnet/get-started-tutorial/intro
ML.NET を使用してテキストのポジティブ/ネガティブを判定するチュートリアル。
ツイート
.NET 8 の Kestrel で名前付きパイプをサポートするという話。
Coming in .NET 8: Support for named pipes in Kestrel.
— James Newton-King ♔ (@JamesNK) January 19, 2023
⚒️ Build a server for inter-process communication with Kestrel + .NET
🖥️ Call it from other Windows apps using named pipes. pic.twitter.com/9QsksD1N3N