トピックス
.NET 7 Networking Improvements - .NET Blog
https://devblogs.microsoft.com/dotnet/dotnet-7-networking-improvements/
.NET 7 のネットワーク関連の改善について紹介している記事。
記事では次の項目について詳しく説明している。
- 接続の施行に失敗した際のハンドリングの改善
- HttpHeaders の読み取りスレッドセーフティ
- HTTP/2 と HTTP/3 のプロトコルエラーの検出
- HTTP/3
- QUIC
- .NET での QUIC
- API (QuicListener, QuicConnection, QuicStream)
- セキュリティ
- Negotiate API (Windows 認証)
- 証明書検証のオプション
- パフォーマンス
- WebSockets
- WebSockets のハンドシェイクレスポンスの詳細
- 外部 HTTP クライアントの提供
- WebSockets over HTTP/2
Try out Visual Studio 2022 version 17.5 Preview 2 - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/try-out-visual-studio-2022-17-5-preview-2/
Visual Studio 2022 version 17.5 Preview 2 がリリースされた。
- オールインワン検索の改善
- 編集時のスティッキースクロール
- デバッガーテキストビジュアライザーでの URL エンコード文字列や Base64、JWT といった文字列のデコード
- クイック追加
- 再認証ワークフローの改善
- ASP.NET Core アプリケーションの Azure Container Apps への発行
- ASP.NET Core プロジェクトのアプリケーション出力の統合ターミナルへの出力
- さまざまな C++ の改善
- .config ファイルを使用したインストールレイアウトのカスタマイズ
- 終了時に更新する機能
.NET December 2022 Updates – .NET 7.0.1, .NET 6.0.12, .NET Core 3.1.32 - .NET Blog
https://devblogs.microsoft.com/dotnet/december-2022-updates/
.NET 7.0.1, .NET 6.0.12, .NET Core 3.1.32 がリリースされた。
このリリースでは一件のセキュリティー修正が含まれ、細工された XPS ファイルを開くことでコードを実行できる、リモートコード実行の脆弱性が修正されている。
また、.NET Core 3.1 は2022年12月13日でサポート終了となるため、このリリースが最後のリリースとなる。
.NET Framework December 2022 Security and Quality Rollup Updates - .NET Blog
.NET Framework のセキュリティーと累積ロールアップ更新の2022年12月リリース。
このリリースでは一件のセキュリティー修正が含まれ、細工された XPS ファイルを開くことでコードを実行できる、リモートコード実行の脆弱性が修正されている。
Release IronPython 3.4.0 · IronLanguages/ironpython3
https://github.com/IronLanguages/ironpython3/releases/tag/v3.4.0
IronPython 3.4.0 がリリースされた。
このリリースでは Python 3.4 の構文と標準ライブラリーをサポートする。また一部の新しいバージョンの構文などもサポートしている。
ランタイムターゲットは .NET Framework 4.6.2, .NET Core 3.1, .NET 6 となっている。
.NET Tools としても配布され、dotnet tool install -g IronPython.Console
といった形でのインストールと実行も可能となった。
-「IronPython 3.4.0」がようやく正式版に ~.NETと統合されたPython言語のオープンソース実装/「Python 2」から「Python 3」へ移行- 窓の杜
Polyglot Notebooks - December 2022 Release - .NET Blog
https://devblogs.microsoft.com/dotnet/polyglot-notebooks-december-2022-release/
Polyglot Notebooks (旧 .NET Interactive) の2022年12月のリリース。
- .NET 7 へのアップグレード
- C# 11 と F# 7 のサポート
- 新しい動的カーネルピッカーによる SQL と KQL の改善
Release 2.2.2 · mysql-net/MySqlConnector
https://github.com/mysql-net/MySqlConnector/releases/tag/2.2.2
Async MySqlConnector 2.2.2 がリリースされた。
このリリースでは TLS 接続初期化時のメモリーリークや接続時の例外発生時のオブジェクト破棄の問題が修正されている。
Visual Studio Code November 2022
https://code.visualstudio.com/updates/v1_74
Visual Studio Code 1.74 (1.74.1) がリリースされた。
- アクセシビリティの改善
- エクスプローラーの自動表示のカスタマイズ
- ノートブックと差分表示のオーディオキュー
- マージエディターでのアンドゥ/リドゥ
- 安全ではないリポジトリの管理
- JavaScript
console.profile
による収集 - return からの定義へ移動 (JavaScript/TypeScript)
- リモートトンネル
- Jupyter Notebook の "Just My Code" デバッグ
- Dev Container の GPU サポート
また、1.74 リリース後に様々な不具合を修正した 1.74.1 がリリースされている。
Migrating from ASP.NET to ASP.NET Core with Project Migrations Part 5 - .NET Blog
https://devblogs.microsoft.com/dotnet/migrating-from-asp-net-to-asp-net-core-part-5/
ASP.NET から ASP.NET Core への移行記事シリーズ。System.Web.Adapter 1.0 がリリースされた。
記事では移行の Visual Studio 拡張機能と System.Web.Adapter の更新について紹介している。
Dev tunnels in Visual Studio for ASP.NET Core projects - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/dev-tunnels-in-visual-studio-for-asp-net-core-projects/
Visual Studio の ASP.NET Core プロジェクトで使用できるプレビュー機能である Dev tunnels (開発トンネル) についての紹介記事。
Dev tunnels は ngrok のような外部からローカル環境へアクセスできるようにポートフォワーディングを行う機能。
記事では最新の更新内容と、機能の使用方法、永続トンネルと一時トンネルの違い、ツールウィンドウ、環境変数のサポートといったものを紹介している。
アーティクル、スライドなど
未使用ジェネリック型引数で TypeLoadException が起こる問題 | ++C++; // 未確認飛行 C ブログ
https://ufcpp.net/blog/2022/12/unused-generic-type-parameter/
構造体のジェネリクスとそれを含む構造体に関する、ランタイムの挙動の問題についての記事。
struct A<T> {}
を struct B { A<B> Value; }
のように定義した場合、再帰しているわけではないが防衛的に例外をスローするという話。
.NET Lambda の Native AOT を実際に試してみた | DevelopersIO
https://dev.classmethod.jp/articles/net-lambda-native-aot/
AWS Lambda でサポートされた .NET アプリケーションの Native AOT を実際に試した記事。
記事では動作させる手順に加え、実際の起動時間などについても計測して触れている。(Native AOT の方が遅くなっている、など)
.NET MAUI でクロスプラットフォーム対応(予定)のメモアプリ作った
https://zenn.dev/tomori_k/articles/966f34daea405a
.NET MAUI でメモアプリケーションを実装してみたという記事。
NuGet 6.4 の Central Package Management を使って複数プロジェクト間のバージョン管理を改善する - しばやん雑記
https://blog.shibayan.jp/entry/20221211/1670748155
NuGet 6.4 の Central Package Management を使用してプロジェクトのパッケージバージョン管理を一元化することについての記事。
記事ではコンバーターの存在や Dependabot での注意にも触れている。
Blazor WebAssembly - どこからも参照されていないコードが削除されるようにして .dll のサイズを小さくする - Qiita
https://qiita.com/jsakamoto/items/91c86a0f34de6e6d77b9
Blazor WebAssembly でアセンブリトリミングを行なってファイルサイズを削減する方法についての記事。
[助けを求む] Blazor Server を Playwright で E2E テストするとき、Playwright の初動が早すぎてテストが失敗する - Qiita
https://qiita.com/jsakamoto/items/3d749a9ba4f8523b5291
Blazor Server を Playwright でテストする際に、プリレンダーされたコンテンツにイベントハンドラーが接続されるよりも前に Playwright が読み込み完了として動いてしまう問題についての記事。
What’s new in Visual Studio productivity - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/whats-new-in-visual-studio-productivity/
Visual Studio の生産性向上のための新しい機能を紹介している記事。
- 出力ウィンドウのタイムスタンプ
- 選択範囲の一致
- マウスホイールで水平方向にスクロールする
- 音を手がかりにコードを追う
- 行番号の強調表示
拡張メソッドは暗黙型変換を見ない | ++C++; // 未確認飛行 C ブログ
https://ufcpp.net/blog/2022/12/extension-resolution/
暗黙型変換するものに対する拡張メソッドは利用できないということについて解説している記事。
5 new MVC features in .NET 7
https://andrewlock.net/5-new-mvc-features-in-dotnet-7/
.NET 7 の ASP.NET Core MVC の新機能7つを紹介している記事。
- プリミティブバインディングの
IParseable
,TryParse
- MVC コントローラは自動的に
[FromServices]
であると推測する - 必須かどうかの推測に nullable アノテーションを使用する
- MVC での
IResult
サポート - カスタマイズされたメタデータプロバイダーはレスポンスでより良いエラー名提供する
Use Keycloak as Identity Provider from Blazor WebAssembly (WASM) applications
Blazor WebAssembly から Keycloak を IdP として使用する方法についての記事。
VS2022 の新機能 DevTunnel (開発トンネル)でローカルデバッグ環境に Azure から簡単アクセス - Qiita
https://qiita.com/seuharuka/items/6f77983a179042b48e59
Visual Studio 2022 のプレビュー機能である Dev tunnels の機能の紹介と使用方法の記事。
C#11の.NET 6.0と.NET Framework 4.8に対する互換性 - Qiita
https://qiita.com/skitoy4321/items/77aff330a4ce63dd977c
.NET 7 でサポートされる C# 11 の機能が .NET 6 や .NET Framework 4.8 でどこまで使用できるか(サポートされるわけではない)ということをまとめている記事。
MAUI アプリを GitHub Actions 上でビルドする
https://zenn.dev/proudust/articles/2022-12-06-build-maui-on-gh-actions
.NET MAUI アプリケーションを GitHub Actions でビルドする対応状況と手順についての記事。
動的に入力項目を増やしたり出来るフォームを Blazor で作ってみよう
https://zenn.dev/okazuki/articles/dynamic-items-form-in-blazor
Blazor でフォーム中の項目を動的に増減し、バリデーションも行うといったことを実現する方法についての記事。
Background audio streaming with CommunityToolkit.Maui.MediaElement (Preview) for Android and iOS
CommunityToolkit.Maui.MediaElement (Preview) を使用して Android と iOS でバックグラウンドで音声をストリーミング再生する方法についての記事。
【調査】MSBuild でビルドした直後に dotnet test を実行するとリビルドされる - Qiita
https://qiita.com/lx-sasabo/items/557ff31eee36429d229e
MSBuild でビルドした後に dotnet test を実行すると再度ビルドが実行されることがあるケースについて調査したという記事。
記事では Microsoft.NET.Build.Extensions の使用の有無によって結果が変わっていたとのこと。
Schedule Jobs with Quartz.NET - Code Maze
https://code-maze.com/schedule-jobs-with-quartz-net/
Quartz.NET でジョブをスケジュールして、バックグラウンドで処理をする方法について紹介している記事。
Introducing Wolverine for Effective Server Side .NET Development
Wolverine という Mediator/Message Bus を使用してサーバー開発を行うという紹介。
Blazor WebAssembly(ASP.NET Coreホスト)を無料利用可能なFly.ioにデプロイする(EF Core+PostgreSQL使用) - Qiita
https://qiita.com/nobu17/items/824c39493f7b12e94f7b
Blazor WebAssembly を fly.io にデプロイしてサーバーサイドは EF Core で PostgreSQL に接続するといったことを行う記事。
Figmaで作る.NET MAUI UIコンポーネント - Qiita
https://qiita.com/MAUIHighSchool/items/232e1bb3d65080f2c548
Figma のデザインから .NET MAUI のコードを生成して UI コンポーネントを作成するサンプル記事。
Reduce The 2FA'S Token Provider Length in ASP.NET Core Identity To 4 Digits Instead Of 6 Digits in .NET 7
ASP.NET Core Identity の 2FA のトークンプロバイダーをカスタマイズすることで6桁から4桁に変更を試みる方法についての記事。
CommunityToolkit.Mvvm V8 入門 - Qiita
https://qiita.com/kk-river/items/d974b02f6c4010433a9e
CommunityToolkit.Mvvm 8.0.0 の紹介記事。
プロパティやコマンドのコード生成、メッセンジャーなどを紹介している。
New ArgumentException and ArgumentOutOfRangeException helpers in .NET 8
https://steven-giesel.com/blogPost/f4bc6fcc-5691-4f72-b9bb-75aeeb59230a
.NET 8 で ArgumentException
と ArgumentOutOfRangeException
に追加を検討しているヘルパーメソッドについて紹介している記事。
Is the regression in GC or something else?
https://maoni0.medium.com/is-the-regression-in-gc-or-something-else-38f10018dd21
GC のリグレッションについての記事。
ランタイムを変更した時など GC のリグレッションのように見えるがそうではないものもあること、GC を変更することでリグレッションかどうかを確認できることなどを説明している。
Text Classification in C# with ML.NET 2.0
https://medium.com/accessibleai/text-classification-in-c-with-ml-net-2-0-bc979dfd8ca9
ML.NET 2.0 を使用してテキスト分類を行う方法についての記事。
.NET MAUI × Stripe C#クロスプラットフォームで楽々クレジット決済 - Qiita
https://qiita.com/MAUIHighSchool/items/393ba93e2eade7f8c9b9
.NET MAUI で Stripe SDK を組み込んでクレジット決済をアプリケーション内に実装する方法についての記事。
C# 11(コーディングで使える)新しい機能 - Qiita
https://qiita.com/sh1ch/items/0b6add41584b5ba7f698
C# 11 での新しい機能をコードとともに紹介している記事。
Managing Multiple Versions of Your API with .NET and Swagger
ASP.NET Core Web API のバージョニングと API Explorer を使用した Swagger を組み合わせて使用する方法についての記事。
C#で書いたライブラリをPHPやGoから呼び出す - Qiita
https://qiita.com/Gaku_Ishii/items/ad4abb1e0073519877d7
.NET のコードを Native AOT でネイティブライブラリーとしてビルドし、PHP や Go から呼び出す方法を紹介している記事。
ライブラリ、リポジトリ、ツールなど
ugai/narabemi: Quick side-by-side video comparison tool
https://github.com/ugai/narabemi
映像を並べてサイドバイサイドで比較できるツール。
hadashiA/VYaml: The extra fast, low memory footprint YAML library for C#, focued on .NET and Unity.
https://github.com/hadashiA/VYaml
.NET Standard 2.1 移行をターゲットとしたハイパフォーマンスで省メモリーな YAML ライブラリー。
davidfowl/SmartLoadBalancer: Sticky sessions without sticky sessions
https://github.com/davidfowl/SmartLoadBalancer/
SignalR のようなもののためにスティッキーセッションを持たず、スティッキーセッションを実現する実験的実装。
YARP で当たりの SignalR サーバーを引くまでリクエストの転送を試行繰り返すという仕組み。
OK here's my latest experiment, smart load balancer (or maybe it's dumb...) https://t.co/LTJl4wc9mY. Sticky sessions without sticky sessions for SignalR. #dotnet #aspnetcore #signalr
— hachyderm.io/@davidfowl (@davidfowl) December 10, 2022
サイト、ドキュメントなど
ツイート
Newtonsoft.Json 13.0.1 には大多数は影響を受けない小さなリグレッションがあり、それが使い物にならないものとして勘違いされ(パッチはされているけど使い物にならないから 13.0.2 にみたいな)、脆弱なバージョンとしてマークされてしまったという話。
Someone has retro-actively flagged Newtonsoft.Json 13.0.1 as vulnerable 😡 Their reason is that because 13.0.1 has a small regression in it, it's literally unsable.
— James Newton-King ♔ (@JamesNK) December 8, 2022
Now, thousands of projects are to get notifications that they are vulnerable, dispite successfully using 13.0.1.
Deep Dive
RMS v3.0 Planning · Issue #258 · microsoft/Microsoft.IO.RecyclableMemoryStream
https://github.com/microsoft/Microsoft.IO.RecyclableMemoryStream/issues/258
RecyclableMemoryStream の v3.0 のプランニング Issue。