トピックス
.NET 7 is Available Today - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-dotnet-7/
.NET 7 がリリースされた。記事では .NET 7 の様々な新機能や変更点について改めてまとめて紹介している。
- 統合
- One BCL (一つのベースクラスライブラリー)
- 新しい TFM
- ARM64 のネイティブサポート
- Linux 上での .NET サポートの強化
- 64-bit IBM Power プラットフォームのサポート
- モダン
- 引き続きのパフォーマンス改善
- コンテナーファーストワークフローのような開発生産性の向上
- 同じコードベースからのモバイルとデスクトップアプリの構築
- クラウドネイティブアプリのための .NET
- 分散したクラウドネイティブアプリのビルドとデプロイを簡単に
- Day 0 での Azure サポート
- ビルトインのコンテナーサポート
- Orleans 7
- Observability
- 分散したクラウドネイティブアプリのビルドとデプロイを簡単に
- シンプル
- C# 11 でシンプルで少ないコードを記述
- Generic Math
- Raw String Literals
- .NET ライブラリー
- クラウドネイティブアプリのための HTTP/3 と Minimal API の改善
- C# 11 でシンプルで少ないコードを記述
- パフォーマンス
- 沢山のパフォーマンスの改善
- On Stack Replacement
- Profile-Guided Optimization
- Native AOT
- 沢山のパフォーマンスの改善
.NET 7 は Standard Term Support (標準期間サポート) のためリリースから18か月間のサポートとなる。
Announcing ASP.NET Core in .NET 7 - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-asp-net-core-in-dotnet-7/
.NET 7 の ASP.NET Core に関するアナウンス記事。
記事では新しい機能や変更点について過去の記事へのリンクをまとめて紹介している。
What's new in Windows Forms in .NET 7.0 - .NET Blog
https://devblogs.microsoft.com/dotnet/winforms-enhancements-in-dotnet-7/
.NET 7 の Windows Forms の新しい機能や変更点についての記事。
- アクセシビリティの改善と修正
- 高 DPI とスケーリングの改善
- データバインディングの改善
- COM ラッパーと Native AOT
- その他変更点
Announcing .NET MAUI for .NET 7 General Availability - .NET Blog
https://devblogs.microsoft.com/dotnet/dotnet-maui-dotnet-7/
.NET 7 の .NET MAUI がリリースされた。
このリリースでは Map コントロールやモバイルでのレンダリングパフォーマンスの改善、デスクトップでの様々な強化といったものが行われている。
What's new for WPF in .NET 7 - .NET Blog
https://devblogs.microsoft.com/dotnet/wpf-on-dotnet-7/
.NET 7 の WPF の新しい機能や変更点についての記事。
- パフォーマンス
- Box 化/Box 化解除
- アロケーション
- その他
- アクセシビリティ
- 不具合の修正
- 基盤のアップグレード
Entity Framework Core 7 (EF7) is available today - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-ef7/
Entity Framework Core 7 (EF7) がリリースされた。
記事では Entity Framework Core 7 での新機能や変更点について改めて紹介している。
- JSON カラム
- JSON 問い合わせに LINQ を使用
- SaveChanges を使用した JSON の更新
- その他 JSON カラムについて
- バルク更新と削除
- 単一行の更新と削除
- 高速な SaveChanges
- 不要なトランザクションの削除
- 複数行の挿入
- Table-per-concrete-type (TPC) 継承マッピング
- カスタムデータベースファーストテンプレート
- 生成されるエンティティ型のカスタマイズ
- カスタムモデル構築規則
- 規則の削除
- 規則の追加
- 追加、更新、削除のストアドプロシージャーのマッピング
- 新しいまたは改善されたインターセプターとイベント
- マテリアル化インターセプション
- 接続文字列の遅延初期化
- 様々な小さな改善
Entity Framework Core 7 は .NET 6 をターゲットとしており、.NET 6 (LTS) または .NET 7 で利用可能。
Announcing F# 7 - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-fsharp-7/
.NET 7 で利用可能となった F# 7 についてのアナウンス。記事では次の機能を紹介している。
- インターフェースの static abstract members のサポート
- SRTP をより使いやすく
- 必須プロパティーチェック
- init スコープと init-only プロパティー
- リファレンスアセンブリーサポート
- F# self-contained デプロイメントと Native AOT
Welcome to C# 11 - .NET Blog
https://devblogs.microsoft.com/dotnet/welcome-to-csharp-11/
.NET 7 で利用可能となった C# 11 についてのアナウンス。記事では次の機能を紹介している。
- UTF-8 文字列リテラル
- 生文字列リテラル
- 静的メンバー上の抽象化
- リストパターン
- 必須メンバー
Announcing NuGet 6.4 - Signed, Central, Delivered - The NuGet Blog
https://devblogs.microsoft.com/nuget/announcing-nuget-6-4-signed-central-delivered/
NuGet 6.4 がリリースされた。
NuGet 6.4 は Visual Studio 2022 と .NET 7 に含まれ、単体の実行ファイルとしてもダウンロード可能。
記事ではこのリリースに含まれる次の点について紹介している。
- Central Package Management が運用利用可能に
- GlobalPackageReference で一つの PackageReference をどこでも使用
- GlobalPackageReference を定義することですべてのプロジェクトにパッケージを追加できる
- Visual Studio のすべてのタブでのパッケージ読み込みのパフォーマンス改善
- NuGet 署名パッケージ検証
- Visual Studio での認証の改善
- NuGet.exe ローカライズ
Visual Studio 2022 17.4 is now available! - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-4/
Visual Studio 2022 version 17.4 がリリースされた。
- .NET 7
- C++
- Arm64
- ロールバック
- エンタープライズサポート
- LTSC サポート
- Windows Updaet for Business からのセキュリティーアップデート
- Visual Studio 管理テンプレートによる管理ポリシー
- サポート外のコンポーネントの削除
- コラボレーションとチーム
- Git ツーリング
- マルチリポジトリサポートのリリース
- Microsoft Teams Toolkit
- エコシステム
- Arm64 の拡張と VisualStudio.Extensibility 拡張モデル
- 生産性
- 選択マッチハイライティング
- オーディオキュー
- データテーブルビジュアライザー
- コールスタックウィンドウ内での例外スタックフレーム
- テストエクスプローラーでのテスト結果のクリアとフィルター
- パフォーマンス
- Git ブランチ切り替え
- ファイル保存のレスポンス改善
- C++ インデックス
- ファイル内の検索と置き換え
- 言語サービス設定切り替え最適化
- ユニットテストパフォーマンス改善
- テスト検索の並列化
- テストの実行の効果的な並列化
- Visual Studio とテストランナープロセス間の通信の最適化
Arm64 対応と Windows Update for Business での更新、Visual Studio のロールバックについては下記の詳細な記事を参照のこと。
- Arm64 Visual Studio is officially here! - Visual Studio Blog
- Deploy Visual Studio updates to devices enrolled in Windows Update for Business - Visual Studio Blog
- Introducing Visual Studio Rollback! - Visual Studio Blog
最後に次期バージョンのプレビューである Visual Studio 2022 17.5 Preview 1 も利用可能となったことも案内している。
- Azure Container Registry や Azure Container Apps のサポート
- SQL Server 2022 のサポート
- Markdown のより深いサポート
- 正規表現によるタブの色設定
- 新しい Quick Add Item 体験
- Web プロジェクトでの F5 ターゲットとしての統合ターミナル
- サインインの改善のための Windows Authentication Broker との統合
- SDK スタイルプロジェクトのためのインプロセス VSIX サポート
Visual Studio for Mac 17.4 is now available - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/visual-studio-17-4-is-now-available/
Visual Studio 2022 for Mac v17.4 がリリースされた。
このリリースではドッキングウィンドウ、フォントや行間の設定のようなユーザーインターフェースの改善、デバッガーの UI の改善、MAUI や .NET 7 と C# 11 のサポートといったものが含まれている。
また Visual Studio 2022 for Mac v17.5 Preview 1 も利用可能となり、ランタイムの .NET 7 への更新やフォントサポートの改善が行われていることが案内されている。
Announcing ML.NET 2.0 - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-ml-net-2-0/
ML.NET 2.0 と新しいバージョンの Model Builder がリリースされた。
- Model Builder でのテキスト分類シナリオ
- センテンス類似性 API
- トークナイザーサポート
- AutoML 改善
- Model Builder の高度な設定
What's new in Orleans 7.0 - .NET Blog
https://devblogs.microsoft.com/dotnet/whats-new-in-orleans-7/
Orleans 7.0 がリリースされた。
Orleans チームは .NET チームの一部となり、.NET 7 と共に改善を進めた結果150%以上のパフォーマンス改善が持たされたとのこと。記事ではパフォーマンスの改善について、開発エクスペリエンスの向上について、Grain と Stream の識別の簡素化についてなどを紹介している。
.NET Conf 2022 - YouTube
https://www.youtube.com/playlist?list=PLdo4fOcmZ0oVlqu_V8EXUDDnPsYwemxjn
.NET 7 のリリース発表を含む .NET Conf 2022 のセッションビデオのプレイリスト。
.NET Information Disclosure Vulnerability - GHSA-8g2p-5pqh-5jmc - GitHub Advisory Database
https://github.com/advisories/GHSA-8g2p-5pqh-5jmc
Microsoft.Data.SqlClient の 1.1.3 以下と 2.0.0 から 2.1.1 以下、System.Data.SqlClient の 4.8.4 以下に情報漏洩の脆弱性が見つかった。
高負荷時にタイムアウトが発生した際に、非同期で実行されたクエリーに誤った結果を返してしまうことがあるという脆弱性がある。
Microsoft.Data.SqlClient の 1.1.4 または 2.1.2、System.Data.SqlClient の 4.8.5 で修正されており、当該パッケージを利用している場合には更新が必要となる。
.NET Framework November 2022 Security and Quality Rollup Updates - .NET Blog
.NET Framework の2022年11月のセキュリティーと品質累積アップデートがリリースされた。
このリリースでは Microsoft.Data.SqlClient に関する脆弱性 (上記) の修正と WPF とランタイムに関するいくつかの不具合が修正されている。
.NET November 2022 Updates – .NET 6.0.11 and .NET Core 3.1.31 - .NET Blog
https://devblogs.microsoft.com/dotnet/november-2022-updates/
.NET 6.0.11 と .NET Core 3.1.31 がリリースされた。
いくつかの不具合や改善が含まれている。また、記事では .NET Core 3.1 が今年の12月13日にサポート終了 (EOL) を迎えるため、.NET 6 へのアップデートをあらためて推奨している。
Release 2.2.0 · mysql-net/MySqlConnector
https://github.com/mysql-net/MySqlConnector/releases/tag/2.2.0
Async MySqlConnector 2.2.0 がリリースされた。
このリリースでは .NET 7 のサポートと .NET 4.5 のサポート削除、その他いくつかの改善が含まれている。
Cake v3.0.0 released
https://cakebuildnet.medium.com/cake-v3-0-0-released-b5555129a0f5
Cake v3.0.0 がリリースされた。
このリリースでは .NET 7 と C# 11 のサポート、TaskOf<T>
、マルチターゲットサポート、ビルドプロバイダーの改善、アドインが依存する Cake.Core のバージョンを 3.0 推奨するように、その他いくつかの改善と修正が行われている。
Cake v3.0.0 released - .NET 7 & C# 11 support, TaskOf<T>, Multiple target support, Improved build providers, and more🎉https://t.co/LdsIidL9TK#dotnet #devops #csharp
— Cake Build (@cakebuildnet) November 8, 2022
NuGet Central Package Management Comes To JetBrains Rider | The .NET Tools Blog
Rider で NuGet の Central Package Management をサポートするというアナウンス。
現在 Rider 2022.3 EAP と NuGet 6.2 以降をサポートする SDK があることで試すことができる。記事ではその設定方法と Central Package Management でのいくつかの Tips を紹介している。
Windows Community Toolkit Labs Experiments are Here! - #ifdef Windows
https://devblogs.microsoft.com/ifdef-windows/windows-community-toolkit-labs-experiments-are-here/
Windows Community Toolkit Labs についての記事。
Windows Community Toolkit Labs は Windows Community Toolkit に含まれる前の試験的な実装のライブラリー。記事では Rive プレイヤーや設定カードと設定エキスパンダーといったコントロール、WCT Labs の使用方法について紹介している。
Release v7.0.0 · npgsql/npgsql
https://github.com/npgsql/npgsql/releases/tag/v7.0.0
Npgsql 7.0.0 がリリースされた。
- DbDataSource を実装する NpgsqlDataSource
- Microsoft.Extensions.Logging によるロギングの改善
- 論理レプリケーションプロトコル version 3 のサポート
- いくつかの破壊的変更
Generally available: Azure Static Web Apps now fully supports .NET 7 | Azure updates | Microsoft Azure
Azure Static Web Apps で .NET 7 がサポートされた。
これにより .NET 7 Blazor WebAssembly アプリケーションをデプロイすることや .NET 7 による Azure Functions のビルドなどが可能となった。
Announcing the .NET 7 for Azure functions isolated worker process is generally available - Microsoft Community Hub
Azure Functions の 分離ワーカープロセスで .NET 7 がサポートされた。
.NET 7 GA available on App Service - Azure App Service
https://azure.github.io/AppService/2022/11/08/dotnet7_ga.html
Azure App Service で .NET 7 がサポートされた。
JetBrains .NET Days + GameDev Day Online 2022 – Session Recordings Available | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2022/11/10/dotnet-days-gamedev-day-online-2022-recordings/
10月下旬に行われた JetBrains による .NET とゲーム開発のオンラインイベントのセッション録画が公開となった。
アーティクル、スライドなど
C#のカレンダー | Advent Calendar 2022 - Qiita
https://qiita.com/advent-calendar/2022/csharplang
Qiita での2022年の C# Advent Calendar。
新しいバージョンの .NET SDK と Visual Studio の更新 - tech.guitarrapc.cóm
https://tech.guitarrapc.com/entry/2022/11/10/004625
Visual Studio を更新した場合の .NET SDK の取り扱いについての記事。
.NET 7 で WPF を Linux ビルドする - tech.guitarrapc.cóm
https://tech.guitarrapc.com/entry/2022/11/11/031555
Linux 環境で .NET 7 SDK を使用して WPF アプリケーションをビルドすることについての記事。
Visual Studio 2022 17.4 以降で Microsoft.CodeAnalysis.Analyzers の警告が出る
https://zenn.dev/mayuki/articles/c4728ae9cdef8e
Visual Studio 2022 17.4 以降で Microsoft.CodeAnalysis.Analyzers の警告が表示される問題の原因と対処方法。
How to Use DALL-E API With C#.NET
画像生成の DALL-E の API を .NET から呼び出してみるという記事。
Build a stock update notification bot for Microsoft Teams using C# and Teams Toolkit for Visual Studio
Teams Toolkit for Visual Studio を使用して株式アップデート情報を通知するボットを C# で実装する手順の記事。
Redis as a Database with Redis OM
https://medium.com/@marius.munteann/redis-as-a-database-with-redis-om-2601a48b5c04
Redis OM を使用して Redis をデータベースのように扱う方法についての記事。
ASP.NET Core Web APIのバージョン管理 - Qiita
https://qiita.com/gushwell/items/663538393baef926c4c4
Microsoft.AspNetCore.Mvc.Versioning を使用して API のバージョニング (例: /v1/api, /v2/api など) を行う方法についての記事。
AWS Lambdaで.NET Core 3.1から.NET 6に移行したときにやったこと - Qiita
https://qiita.com/kaz-matsubara/items/7c3284dd6b38fe4489fb
AWS Lambda 向けの .NET Core 3.1 アプリケーションを .NET 6 に移行する際に行ったことをまとめた記事。
What's New in .NET 7 for Authentication and Authorization
https://auth0.com/blog/whats-new-in-dotnet-7-for-authentication-and-authorization/
.NET 7 での認証と認可に関する変更と新機能についてまとめて紹介している記事。
Avoid WebDeploy Locking Errors to IIS with Shadow Copy for ASP.NET Core Apps
IIS で動作する ASP.NET Core アプリケーションを WebDeploy でデプロイする際にファイルロックのエラーが発生する問題を回避する方法についての記事。
記事では .NET 6 以降実験的に利用可能となったシャドウコピーを有効にする方法と WebDeploy の方法について解説している。
ライブラリ、リポジトリ、ツールなど
mk3008/SqModel: Select query builder
https://github.com/mk3008/SqModel
SQL 文をパースし、加工したりして再構築するライブラリー。
サイト、ドキュメントなど
ツイート
.NET の公式サイトがリデザインされたという話。
💜 Wow, I'm loving the redesigned https://t.co/3tITGtOex3 site! It's absolutely BEAUTIFUL 🤩
— David Pine 🇺🇦 (@davidpine7) November 8, 2022
Congrats on that @mairacw, it's awesome! Also, I'm seeing .NET 7 @nuget packages.
🔥 #dotNETConf #developerCommunity pic.twitter.com/kAXgVGGFOE
なお
.NET のサイトがリニューアルして最近っぽくなってるけど、残念感が凄い・・・ pic.twitter.com/bAbT5JdO3n
— Tatsuro Shibamura (@shibayan) November 8, 2022
.NET でグリーンスレッドの実験的実装で Kestrel が動いているという話。
Got the .NET green thread (virtual thread/goroutine) experiment running with Kestrel. This stuff is hard to show but this call stack made me very happy 😅 #dotnet pic.twitter.com/4Xy8kHGiHU
— David Fowler 🇧🇧🇺🇸 (@davidfowl) November 8, 2022
Paint.NET v5.0 を .NET 7 に移行するのは WinForms の nullable アノテーションで幾つかコンパイルエラーがあったものの5分でできたという話。
Paint.NET v5.0 is on .NET 7! Total conversion time was about 5 minutes. Had some compile errors because WinForms added some new nullable annotations. Also I got a (non-spam) phone call in the middle of it all. pic.twitter.com/1jCMJA4uBD
— Rick Brewster (@rickbrewPDN) November 8, 2022
ASP.NET Core のフレームワークのスタック図。
I love this slide #dotnet #aspnetcore pic.twitter.com/TLDMAdwmAD
— David Fowler 🇧🇧🇺🇸 (@davidfowl) November 9, 2022
Akka.NET を .NET 7 (PGO 有効) でベンチマークを取った速くなったという話。
Yesterday, I observed a 33% out-of-the-box performance improvement in @AkkaDotNET 's single remote connection end-to-end benchmark using .NET 7.0 with PGO enabled. Very impressive.
— Aaron Stannard (@Aaronontheweb) November 12, 2022
Today I ran our in-memory benchmarks w/ PGO and the results are even more interesting! #dotnet https://t.co/ekmCYllddy
Some .NET 7.0 performance benchmarks for @AkkaDotNET over a single Akka.Remote connection
— Aaron Stannard (@Aaronontheweb) November 11, 2022
looks like things are ~10% faster on .NET 7. Take every free lunch you can find ;) pic.twitter.com/JEVyD5xx8C
.NET 7 で文字列を特定の区切り文字で結合するのに一番速いのは何かという話。
Simple string concatenation in .NET 7 👇🏻#dotnet #csharp pic.twitter.com/wy5BVIEmnN
— Dave Callan (@DaveCallanIE) November 13, 2022