2022-11-22: C# support in Fleet, .NET Virtual Monolithic Repository, How fast is really ASP.NET Core?

Published on Tuesday, 22 November 2022

トピックス

C# support in Fleet Public Preview | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2022/11/17/csharp-support-in-fleet/

Fleet での C# サポートがパブリックプレビューとなった。

現時点では C# の基本的なサポートのみとなり、Razor/Blazor や VB.NET, F# といった言語サポートは行われない(.NET サポートではない理由)。Rider と同様に ReSharper をベースとした実装が行われているが Xamarin や Unity といったサポートがないため Rider と Fleet は当面共存する。また制限として .NET 5 以降を対象とするプロジェクトのみサポートとなる。

サポートされている機能としてはコード解析、ナビゲーション、名前のリファクタリング、コード補完、テンプレート、フォーマッティング、ドキュメントポップアップ、アプリケーションの構成と実行、ブレークポイントをはじめとしたデバッグがある。

記事ではサポートの有効化の手順や今後の計画などにも触れている。

Announcing the .NET Virtual Monolithic Repository · Issue #241 · dotnet/announcements

https://github.com/dotnet/announcements/issues/241

.NET のバーチャルモノリシックリポジトリーという .NET をビルドするために必要なものを一つのリポジトリーにミラーして集めるというリポジトリーが公開された。

.NET の製品ビルドはいくつものリポジトリーから構成されるため、Microsoft 以外がビルドを再現することが難しく、またビルドとリリースのインフラストラクチャーが複雑さを増していくことが課題となっているため、ビルドと出荷を簡素化しコミュニティーに対して透過的である状態にするといった目的のリポジトリーとなっている。

How fast is really ASP.NET Core?

https://dusted.codes/how-fast-is-really-aspnet-core

ASP.NET Core のパフォーマンスに関して近年 TechEmpower Benchmark の結果を元に高速さを宣伝しているが、これに対応するコードはどのようなものとなっているのかを掘り下げている記事。

ベンチマークのコードには Kestrel や最低限の部分のみで書かれた "Platform"、ASP.NET Core の Middleware を使う "Micro"、Razor テンプレートエンジンまで使う "Full" の構成があり、それぞれの実装を取り上げ、宣伝には Platform での結果が持ち出されているが「他の言語/プラットフォームに比べて速い」と言えるのかどうかといった話など。

Actions: Self-hosted runners now support Windows ARM64 · Issue #616 · github/roadmap

https://github.com/github/roadmap/issues/616#event-7826802074

GitHub Actions の Self-hosted runner が Windows ARM64 環境をサポートした。

Announcing Oracle Support for .NET 7 - Alex Keh - Medium

https://medium.com/@alex.keh/announcing-oracle-support-for-net-7-c011b0dc4558

ODP.NET Core が .NET 7 をサポートした。

NuGet パッケージのバージョン 3.21.80 以降で Oracle Database 11g Release 2 (11.2.0.4) 以降をサポートする。

Visual Studio 2022 version 17.4.1 - Visual Studio 2022 Release Notes | Microsoft Learn

https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes#17.4.1

Visual Studio 2022 version 17.4.1 がリリースされた。

ML.NET Model Builder や統合ターミナルのスクリーンリーダーの問題、Linux での .NET 7 のコアダンプを開いた際にクラッシュする問題などが修正されている。

Multi-repository Support Released! - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/multi-repository-support-released/

Visual Studio 2022 17.4 でリリースされた Git のマルチリポジトリーサポートについての解説記事。

マルチリポジトリーサポートにより一つのソリューションを開いている最中に複数のリポジトリーを扱えるようになる。なお同時に取り扱えるリポジトリの数はパフォーマンスの制約上現時点では10個までと制限されている。

記事では複数リポジトリーを跨いだブランチの管理と変更の追跡、プッシュ、Fetch 時の Prune の有無など Git リポジトリーの設定といった点を紹介している。

Public preview of dev tunnels in Visual Studio for ASP.NET Core projects - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/public-preview-of-dev-tunnels-in-visual-studio-for-asp-net-core-projects/

Visual Studio で ASP.NET Core 開発時に使用できる開発トンネルのパブリックプレビューについての記事。

"dev tunnel" はインターネットからローカル環境へのトンネル(ポートフォワーディング)を提供するサービス。プライベートプレビューからパブリックプレビューとなった。 記事ではトンネルを有効にする方法とデバッグ起動時に使用する設定方法、初期リリースからの変更点について紹介している。

今後のロードマップとして永続 URL やトンネル管理や各種 UI といったものを追加したいとのこと。

Visual Studio 2022 Performance Enhancements 17.4 - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/visual-studio-2022-performance-enhancements-17-4/

Visual Studio 2022 17.4 でのパフォーマンス改善についての紹介記事。

  • フォルダーを指定して検索
  • C++ プロジェクトのインデックス作成の高速化
  • Git ブランチの切り替え中のソリューションのリロードの削減
  • .NET の構成切り替え時の応答性
  • ユニットテスト
    • 並列テスト探索
    • 効率的な並列テスト実行
    • Visual Studio とテストランナープロセスのコミュニケーションの最適化
  • ファイル保存の応答性向上

Release Release v2.50.0 · grpc/grpc-dotnet

https://github.com/grpc/grpc-dotnet/releases/tag/v2.50.0

grpc-dotnet 2.50.0 がリリースされた。

このリリースでは大きな機能変更はなく、主にいくつかの不具合が修正されている。

.NET Framework assembly support added to Azure Logic Apps (Standard) XSLT transformations (Preview)

https://techcommunity.microsoft.com/t5/integrations-on-azure-blog/net-framework-assembly-support-added-to-azure-logic-apps/ba-p/3669120

Azure Logic Apps (Standard) XSLT transformations で .NET Framework のアセンブリーサポートが追加された。

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

.NET 7.0's Performance Improvements with Dynamic PGO are Incredible | Petabridge

https://petabridge.com/blog/dotnet7-pgo-performance-improvements/

Akka.NET での .NET 7 の DynamicPGO のパフォーマンス改善についての記事。

.NET 7で導入されたビルトインコンテナサポートを試してみた - 銀の光と碧い空

https://tech.tanaka733.net/entry/2022/11/builtin-container-support

.NET 7 でのビルトインコンテナーサポート(dotnet publish からコンテナーイメージをビルド)についての記事。

記事では実際に使用する方法や各種設定についてや制限についてなどを説明している。

Writing an OBS plugin with .NET NativeAOT

https://sharovarskyi.com/blog/posts/dotnet-obs-plugin-with-nativeaot/

.NET 7 の NativeAOT で OBS プラグインを書くという記事。

UnmanagedCallersOnly で OBS のプラグイン用の関数をエクスポートし、プラグインとして読み込まれた際にログに出力するといった例を実装している。

Entity Framework CoreとDapperを同一トランザクションで併用する - Qiita

https://qiita.com/jun1s/items/212a95b73e68625a3674

Entity Framework Core と Dapper を併用した際のトランザクションやコネクションの扱いについての記事。

.NETがIBM Powerでサポートされたので試してみる - Qiita

https://qiita.com/tom_m_m/items/9a729f462c0622a5ece3

.NET 7 でサポートされた 64-bit IBM Power (ppc64le) をインストール、実行してみるという記事。

HashSet vs SortedSet in C# - Code Maze

https://code-maze.com/csharp-hashset-vs-sortedset/

HashSet<T>SortedSet<T> の違いと特徴、そのパフォーマンスの差についてまとめている記事。

[Authorize]を使わなくても有効にする方法 - Qiita

https://qiita.com/mkuwan/items/bd5ff882108998d76dca

Authorize 属性をコントローラーやメソッドに指定せず、フォールバック認可ポリシーによって一律に指定する方法についての記事。

A quick comparison of Security Static Code Analyzers for C#

https://dev.to/dbalikhin/a-quick-comparison-of-security-static-code-analyzers-for-c-2l5h

C# の静的コードセキュリティー解析ツールを比較している記事。

記事では CodeQL, SonarCloud, Semgrep, Security Code Scan, Snyk Code といったツールをサンプルコードに対して実行してその結果を比較している。その他に速度や IDE サポート、価格といった面でも比較している。

BlazorBindings.Maui - Preview 10

https://dev.to/dreamescaper/blazorbindingsmaui-preview-10-5c35

MobileBlazorBindings からフォークした MAUI 向けの BlazorBindings.Maui の Preview 10 についての記事。

.NET 7 サポートやナビゲーションの改善、シェルプロパティ、コンポーネントジェネレーターの改善などを紹介している。

Assertion Scopes, the one FluentAssertions feature you didn't know you needed

https://dev.to/this-is-learning/assertion-scopes-the-one-fluentassertions-feature-you-didnt-know-you-needed-4pn

FluentAssertions にある Assertion Scope と呼ばれるアサーションのグループ化の仕組みについての記事。

Assertion Scope 内で失敗したアサートはまとめて報告される(一つ失敗しても後続のアサートも実行される)といったことを実現できる。

How to Draw 2D Graphics in .NET MAUI’s GraphicsView

https://dev.to/syncfusion/how-to-draw-2d-graphics-in-net-mauis-graphicsview-daj

.NET MAUI で 2D グラフィックスを描画するビューを作る方法についての記事。

GraphicsView と Microsoft.Maui.Graphics を使用して図形などを描画することができる。

Intro to LiteDB for .NET Developers. Sample WebApp Included

https://platform.uno/blog/intro-to-litedb-for-net-developers-sample-webapp-included/

.NET の NoSQL データベースである LiteDB の紹介とそれを使った Uno Platform サンプルアプリケーションを実装についての記事。

C# 11 required members - NDepend

https://blog.ndepend.com/c-11-required-members

C# 11 の required (必須)メンバーについての記事。

記事では使用方法や制限事項、どのようなケースで役立つのかといったことを紹介している。

Enable Group Policy Settings with Visual Studio Administrative Templates (ADMX) - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/enable-group-policy-settings-with-visual-studio-administrative-templates-admx/

Visual Studio 管理用テンプレートを使用してグループポリシー設定を有効化することについての記事。

EF Core 7 is here - Welcome typed entity id 🍾

https://dev.to/maxx_don/ef-core-7-is-here-welcome-typed-entity-id-1k3p

Entity Framework Core 7 でカスタムな型 ID をもつエンティティーがサポートされたことについての記事。

ライブラリ、リポジトリ、ツールなど

le-nn/blazor-transition-group: An easy way to perform animations when a Blazor component enters or leaves the DOM

https://github.com/le-nn/blazor-transition-group

Blazor でリストのようなコンポーネントに追加、削除アニメーションを実装するためのライブラリー。

asmichi/ChildProcess: Asmichi.ChildProcess is a .NET library that provides functionality for creating child processes. An alternative to System.Diagnostics.Process.Start.

https://github.com/asmichi/ChildProcess

子プロセスを生成して入出力などの操作を柔軟に行えるライブラリー。

ARM64 版 Windows 11 で動作する dd + gzip 自作ツール (物理ディスクのイメージ化 + リストア、Linux の dd + gzip 互換) の提供 - Qiita

https://qiita.com/dnobori/items/59cc61b7f35449182b98

ARM64 版の Windows で動作する物理ディスクのイメージ化と書き戻しを行うツール。

pythonnet/pythonnet: Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers.

https://github.com/pythonnet/pythonnet

.NET から Python をシームレスに呼び出す (組み込む)、あるいは Python から .NET を呼び出すといったことを実現するライブラリー。

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

Monolithic to Microservice journey for .NET Applications

https://d1.awsstatic.com/developer/Monolith-to-Microservice-Journey-net-framework-application-v1.5.pdf

.NET アプリケーションのためのモノリスからマイクロサービスへのジャーニー (英語)

ツイート

Azure と gRPC JSON Transcoding と .NET Native AOT (サーバー側?) の組み合わせで動いているという話。

PerfView で .NET アプリケーションのパフォーマンスをプロファイリングするという動画。