トピックス
Visual Studio 2022 17.3 is now available! - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-3-is-now-available/
Visual Studio 2022 version 17.3 がリリースされた。
記事では 17.3 で更新された次の機能について触れている。
- .NET MAUI サポート
- Microsoft Teams 向けアプリケーション開発サポート
- C++ のサポートの改善
- 低優先度ビルド
- インデクシングの高速化
- 統合ターミナルでのリモート SSH 接続のサポート
- Azure Container Apps サポート
- Live Unit Testing の改善
- What's New ページ
- Git ラインステージング
- タブの複数行表示
- IEnumerable ビジュアライザー
- 閉じたドキュメントの再オープン
また、次のバージョンとなる 17.4 のプレビューもリリースされ、17.4 は Arm64 ネイティブのリリースバージョンとなること LTSC (長期サポートチャンネル) バージョンとなるとのこと。
Productivity comes to .NET MAUI in Visual Studio 2022 - .NET Blog
https://devblogs.microsoft.com/dotnet/dotnet-maui-visualstudio-2022-release/
Visual Studio 2022 17.3 で .NET MAUI のサポートがプレビューからリリースとなったアナウンス。
.NET MAUI 自体の GA はすでに行われていたが、ツールサポートは今までプレビューとなっていたが 17.3 のリリースでリリースとなり一般に利用できるようになった。これには XAML のライブプレビューやホットリロードといったものが含まれる。
Visual Studio for Mac での .NET MAUI サポートは 17.4 Preview ではプレビューとなっており、今年後半にリリースとなる予定とのこと。
Announcing .NET 7 Preview 7 - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-7/
.NET 7 Preview 7 がリリースされた。開発環境としては Windows, macOS 共に Visual Studio 2022 17.4 プレビューの使用が推奨されている。
記事では Preview 7 でのアップデートについて紹介している。
- シンプルな LINQ
Order
,OrderDescending
(キーセレクター不要のOrderBy
/OrderByDescending
)
- Unix ファイルモードサポート
- 低レベルな
struct
の改善:ref
フィールド LibraryImport
P/Invoke ソースジェネレーターDllImport
に代わるネイティブライブラリー呼び出しのマーシャリングコード生成
- ClientWebSocket アップグレードレスポンスの詳細
- ClientWebSocket がアップグレードの応答に関する詳細(ステータスコード等)を取得できるように
- コード生成の改善
また、破壊的変更として次のものがあげられている。
- トリミングと NativeAOT: すべてのアセンブリがデフォルトでトリミングされる
- コンソールアプリケーションで
PublishTrimmed
を指定した場合、ライブラリープロジェクトがIsTrimmable
の有無にかかわらずトリミングされる。この挙動を変更するにはTrimMode
を指定することで以前のバージョンと同等に戻すことが可能。また Windows, Android, iOS, WASM, ASP.NET Core といったプレーンではない .NET アプリケーションは影響を受けない
- コンソールアプリケーションで
ASP.NET Core updates in .NET 7 Preview 7 - .NET Blog
https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-7/
.NET 7 Preview 7 での ASP.NET Core のアップデートについての記事。
- 新しい Blazor WebAssembly のローディングページ
- Blazor データバインディングの get/set/after 修飾子
- Blazor 仮想化の改善
- NavigationManager を使用したステート渡し
- WebAssembly における System.Security.Cryptography サポートの更なる追加
- Angular と React のテンプレートの更新
- gRPC JSON トランスコーディングパフォーマンス
- 認証で単一スキームを
DefaultScheme
として扱う - Minimal API での認証済みリクエストでの
IFormFile
/IFormFileCollection
のサポート - 問題の詳細サービス
- RFC 7807: Problem Details for HTTP APIs をサポートするサービス
- 診断ミドルウェアのアップデート
- 新しい
HttpResults
インターフェースIFileHttpResult
やIValueHttpResult<TValue>
といったIResult
の型
Announcing Entity Framework 7 Preview 7: Interceptors! - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-ef7-preview7/
Entity Framework 7 Preview 7 がリリースされた。
記事では Entity Framework 7 で強化される Interceptor について紹介している。
- エンティティー作成時のシンプルなアクション (マテリアライゼーション)
- LINQ 式ツリーのインターセプト
- オプティミスティック同時実行制御インターセプト
Announcing .NET Framework 4.8.1 - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-dotnet-framework-481/
.NET Framework 4.8.1 がリリースされた。
.NET Framework 4.8.1 では Arm64 のネイティブサポート、 WCAG2.1 準拠のアクセシブルなツールチップ、Windows Forms でのアクセシビリティーの向上といった新機能が導入される。
対応 OS は Windows 10 Version 20H2 と Windows Server 2022 以降が対象となる。
Visual Studio for Mac 17.3 is now available - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/visual-studio-for-mac-17-3-is-now-available/
Visual Studio 2022 for Mac 17.3 がリリースされた。
User Secrets のサポート、新しいコードフィックスの追加や StringSyntaxAttribute
の対応、タスクウィンドウと正規表現ダイアログのネイティブ UI 化、Apple Developer アカウントサポートが行われている。
また次期バージョンのプレビューである Visual Studio 2022 for Mac v17.4 もリリースされているとのこと。
.NET August 2022 Updates – .NET 6.0.8 and .NET Core 3.1.28 - .NET Blog
https://devblogs.microsoft.com/dotnet/august-2022-updates/
.NET 6.0.8 と .NET Core 3.1.28 がリリースされた。
.NET 6 および .NET Core 3.1 の特権情報の不正アクセスによる情報漏洩のセキュリティー修正が含まれている。
.NET Framework August 2022 Security and Quality Rollup Updates - .NET Blog
.NET Framework の2022年8月のセキュリティーと累積アップデートがリリースされた。
TLS 1.3 でクライアント証明書を使用している場合にネゴシエーションでハングアップする問題や、WPF の同期に関する問題の修正が含まれる。
Announcing NuGet 6.3 - Transitive Dependencies, Floating Versions, and Re-enabling Signed Package Verification - The NuGet Blog
NuGet 6.3 がリリースされた。
NuGet 6.3 は Visual Studio 2022 や .NET 6 に含まれるほか、独立した実行ファイルとしてダウンロードも可能。
このバージョンでは次の新機能や改善が含まれている。
- PackageReference のパッケージから pdb を使用する
- Visual Studio での推移的な依存関係の表示 (実験的な機能)
PackageReference
,PackageVersion
またはPackageDownload
の重複が見つかった場合の新しい警告- Visual Studio でのカスタム浮動バージョンのインストール
- UI 上から
1.*
のような形でバージョンを指定できるようになった
- UI 上から
- Linux での署名されたパッケージの検証のデフォルトでの再有効化
- HTTPS everywhere.
- HTTP (非暗号化) 利用時の警告 NU1803 の追加、2023年11月以降には HTTP はエラーとなる (オプトアウト可)、2024年11月以降はエラーのオプトアウトも無効化される予定
- HTTPS everywhere - The NuGet Blog
VisualStudio.Extensibility: A New Way to Write Extensions - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/visualstudio-extensibility/
Visual Studio の拡張性 (VisualStudio.Extensibility) の Phase 2 についての記事。
Phase 2 で利用できるようになった次の新機能について紹介している。
- リモート UI フレームワーク
- Out-of-Process モデルでの UI サポート
- ツールウィンドウ
- 新しいエディタ API の追加
- 新しい言語コンテンツタイプの定義
- ドキュメントセレクターを使用した拡張機能の適用可能性の指定
- 新しいコマンド
- ツールチップの表示
- カスタムイメージの表示
- タスク進捗状況通知
- インプロセス API によるスムーズな移行
Announcing SynapseML for .NET - Large Scale ML with a Simple API - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-synapseml-for-dotnet/
SynapseML v0.10 のリリースの一部として .NET バインディングが利用できるようになったというアナウンス。
アーティクル、スライドなど
Announcing the .NET MAUI Beautiful UI Challenge - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-dotnet-maui-beautiful-ui-challenge/
Xamarin と .NET MAUI のきれいなデザインを集める Snppts と NET MAUI Good Look UI リポジトリーにデザインを共有することでステッカーをもらえるというキャンペーンのアナウンス。
Microsoft Authentication Library for .NET でリフレッシュトークンを永続化する - present
https://tnakamura.hatenablog.com/entry/2022/08/08/microsoft-identity-client-extensions-msal
Microsoft Authentication Library for .NET を使用して取得したリフレッシュトークンはインメモリのみの保持のため、永続化してプロセス終了後も利用できるようにする方法についての記事。
Trying out Native AOT in .NET 7 Preview 7 - Soundar Anbu Code's
https://code.soundaranbu.com/trying-out-native-aot-in-net-7-preview-7/
.NET 7 Preview 7 での NativeAOT を試してみたという記事。最終的にどの程度のファイルサイズになるかといった部分に触れている。
.NET 7 Preview 7 で、C# 11 の機能が一通りそろったみたい | ++C++; // 未確認飛行 C ブログ
https://ufcpp.net/blog/2022/8/net7p7/
.NET 7 Preview 7 の時点で C# 11 が Preview からデフォルトになり、リリースに向けて機能が確定したという話。
どのバージョンのC#としてビルドされているかを調べるC#コード - Qiita
https://qiita.com/chocolamint/items/1c8635a34e6aa0adbc6d
C# 言語バージョンごとの文法を含むコードを用意することで、コンパイラーがどのバージョンの C# でコンパイルしているか判断できる(どこでエラーが出るかで判断できる)のではないかという記事。
Virtual Formatter – Fixing Tabs versus Spaces and other Problems | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2022/08/11/virtual-formatter-in-resharper-2022-2/
ReSharper 2022.2 の新機能 Virtual Formatter について紹介している記事。
Virtual Formatter は表示上でのみフォーマットを適用する機能で、アクセシビリティーや既存のコードのフォーマット、企業でのコーディングスタイルとの不一致といったシーンでのメリットを紹介している。
Exploring .NET WebAssembly with WASI and Wasmtime
https://dev.to/azure/exploring-net-webassembly-with-wasi-and-wasmtime-41l5
WASI を実装する Wasmtime で .NET WebAssembly を Dev Container を使用してビルド、動かす方法についての記事。
Lessons learned from optimizing performance in multi-layered .NET projects
多層化(データベース、アプリケーション、ネットワーク等)された .NET プロジェクトでのパフォーマンス最適化で得られた教訓についての記事。
Handling concurrent merges to master in multi-stage Azure DevOps pipelines
https://andrewlock.net/handling-concurrent-merges-to-master-in-multi-stage-azure-devops-pipelines/
Datadog .NET APM Tracer のような複数のステージを持つ Azure Pipelines のビルドで、 Pull request によるマージコミットでビルドしている場合にステージ進行中に master が更新されるとマージコミットが変更されてしまう問題に対する対処についての記事。
Discover the New ASP.NET Core Features in .NET 7! - Dotnetsafer Blog
https://blog.dotnetsafer.com/discover-the-new-asp-net-core-features-in-net-7/
.NET 7 の ASP.NET Core の新機能についての記事。Minimal API や SignalR のソースジェネレーターといったものを紹介している。
Migrating from ASP.NET to ASP.NET Core in Visual Studio - .NET Blog
https://devblogs.microsoft.com/dotnet/introducing-project-migrations-visual-studio-extension/
Visual Studio に実装された ASP.NET から ASP.NET Core に移行するツールを使用する方法についての記事。
.NET Annotated Monthly | August 2022 | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2022/08/08/net-annotated-monthly-august-2022/
JetBrains による .NET まとめの2022年8月号。
Heap Sort in C# - Code Maze
https://code-maze.com/csharp-heap-sort/
C# でのヒープソートを実装する記事。
Running a .NET application on a local Kubernetes cluster
https://medium.com/@TheLe0/running-a-net-application-on-a-local-kubernetes-cluster-1aff3537f755
.NET アプリケーションを Kind のローカル Kubernetes クラスターで動かす方法についての記事。
LINQ explained with sketches
https://steven-giesel.com/blogPost/d65c5411-a69b-489f-b73f-18ce0ed8678d
LINQ オペレーターの動きを絵で表す、という記事。
【.NET Community Toolkit】ソースジェネレータのファイルサイズ調査 - Qiita
https://qiita.com/myoga/items/79e64ad7d358b281f6da
.NET Community Toolkit の MVVM Source Generator でコード生成した場合に継承ベースの実装とバイナリサイズを比較している記事。
ライブラリ、リポジトリ、ツールなど
microsoft/fluentui-emoji: Fluent Emoji are a collection of familiar, friendly, and modern emoji from Microsoft.
https://github.com/microsoft/fluentui-emoji
Fluent UI の絵文字。
Windows の Fluent UI 絵文字で使用されているものと同じデザインの絵文字画像。 MIT ライセンスで公開されている。
bruce-dunwiddie/tsql-parser: Library Written in C# For Parsing SQL Server T-SQL Scripts in .Net
https://github.com/bruce-dunwiddie/tsql-parser
Transact-SQL を解析するライブラリー。
サイト、ドキュメントなど
Enterprise Application Patterns Using .NET MAUI | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/architecture/maui/
.NET MAUI のアプリケーションパターンの E-book。
My book Enterprise Application Patterns using .NET MAUI is now available! Lots of info to help you start building apps on the right path.
— Michael Stonis (@MichaelStonis) August 11, 2022
It can be dowloaded from https://t.co/AYumrTFUhc
The best part is that it comes at the low, low price of FREE!#dotnet #MAUI #dotNETMAUI
ツイート
Released version 7.0.0-preview.7 of #npgsql and the #efcore provider for #PostgreSQL, with some exciting aggregate support (https://t.co/QvLCYfL09O) and various other stuff!
— Shay Rojansky (@shayrojansky) August 9, 2022
Npgsql と Entity Framework の 7.0.0-preview.7 で PostgreSQL の集計処理を利用できるようになったという話。
One lesson I've learned hard over the last few years is the approach for CI must be different between large and jumbo projects.
— Jared Parsons (@jaredpar) August 12, 2022
In terms of the odd incentives of testing at jumbo scale, consider the case of List<T>.Count for .NET. For a large / medium project you'd run unit tests for core collections on every PR. At jumbo scale though this actually a measurable negative.
— Jared Parsons (@jaredpar) August 12, 2022
中/大規模と超大規模のプロジェクトにおける CI とテストでの違いの話。
Deep Dive
Port Windows/MSDTC distributed transactions support by roji · Pull Request #72051 · dotnet/runtime
https://github.com/dotnet/runtime/pull/72051
MSDTC による分散トランザクションのサポートの PR。