トピックス
Announcing .NET 8 Preview 6 - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-6/
.NET 8 Preview 6 がリリースされた。
- System.Text.Json の改善
JsonStringEnumConverter<TEnum>
- JsonConverter.Type
- ストリームベースの ZipFile.CreateFromDirectory と ExtractToDirectory メソッドオーバーロード
- MetricCollector メトリクス API
- Options validation Source Generator
- 機能強化のための LoggerMessageAttribute コンストラクターオーバーロードの拡張
- Configuration バインディング Source Generator の改善
- Source Generator による COM 相互運用
- HTTPS プロキシーサポート
- System.Security: SHA-3 サポート
- SDK: コンテナーの発行パフォーマンスと互換性
- WASM での HybridGlobalization モード
- iOS プラットフォームをターゲットとする NativeAOT のサポート
- CodeGen
- JIT の改善
- AVX-512 サポート
- Arm64 の改善
Announcing .NET MAUI in .NET 8 Preview 6: Hello VS Code & VS for Mac - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-dotnet-maui-in-dotnet-8-preview-6/
.NET 8 Preview 6 での .NET MAUI のアップデートについて。
このリリースでは Visual Studio Preview に加えて、Visual Studio Code 向けの拡張がプレビューリリースとなった。また Visual Studio for Mac においてもプレビュー機能として利用可能となった。
Announcing the .NET MAUI extension for Visual Studio Code - Visual Studio Blog
Visual Studio Code 向けの .NET MAUI 拡張がプレビューリリースされた。
この拡張は Windows, macOS, Linux における .NET MAUI 開発で、異なるデバイスやエミュレーターといった任意のターゲットでの開発、デバッグのサポートを提供する。ライセンスは C# Dev Kit と同様に Visual Studio のライセンスとなる。
ASP.NET Core updates in .NET 8 Preview 6 - .NET Blog
https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-6/
.NET 8 Preview 6 での ASP.NET Core のアップデートについて。
- スタートアップデバッグ体験の向上
- Blazor
- サーバーサイドレンダリングのフォームモデルバインディングと検証
- ページナビゲーションとフォームハンドリングの強化
- ストリーミングレンダリングでの既存の DOM 要素の維持
- 呼び出し元でのコンポーネントレンダリングモードの指定
- Blazor WebAssembly インタラクティブレンダリング
- セクションの改善
- Blazor コンポーネントへのクエリーストリングのカスケード
- サーバーインタラクティブ性の Blazor Web App テンプレートのオプション
- Blazor テンプレートの統合
- Metrics
- ASP.NET Core アプリのテストメトリクス
- 新規、改善、リネームされたカウンター
- API オーサリング
- Minimal API での複雑なフォームバインディングサポート
- サーバーとミドルウェア
- HTTP.sys カーネルレスポンスバッファリング
- Redis ベースの出力キャッシュ
New C# 12 preview features - .NET Blog
https://devblogs.microsoft.com/dotnet/new-csharp-12-preview-features/
新しい C# 12 のプレビュー機能の紹介。
nameof
によるインターフェースメンバーへのアクセス- Inline arrays
- Interceptors
- Source Generator 向けの既存のメソッド呼び出しに介入できるような仕組み
- 実験的機能としての実装のため独自のスイッチによる有効化が必要
.NET July 2023 Updates – .NET 7.0.9, .NET 6.0.20 - .NET Blog
https://devblogs.microsoft.com/dotnet/july-2023-updates/
.NET 7.0.9 および 6.0.20 がリリースされた。
このリリースではいくつかのセキュリティー修正と改善が含まれている。
- CVE-2023-33127 – .NET リモートコード実行の脆弱性
- .NET 診断サーバーでの特権昇格とコード実行
- CVE-2023-33170 – .NET セキュリティ機能のバイパスの脆弱性
- ASP.NET Core でのアカウントロックアウト最大試行回数が更新されない問題
.NET Framework July 2023 Security and Quality Rollup Updates - .NET Blog
.NET Framework の2023年7月のセキュリティーと品質の累積アップデートがリリースされた。
Introducing System.Web Adapters v1.2 with new APIs and scenarios - .NET Blog
https://devblogs.microsoft.com/dotnet/systemweb-adapters-1_2/
System.Web Adapters v1.2 がリリースされた。
このリリースでは ASP.NET Core での HttpApplication を含む IHttpModule のサポートとエミュレーション、カスタムセッションキーシリアライザー、IHtmlString サポート、その他 API の追加が行われている。
記事ではインクリメンタルに移行するためのガイダンスも紹介している。
Extended C# Support in ReSharper and Rider 2023.2 EAP 9 | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2023/07/14/rsrp-rider-2023-2-eap9/
ReSharper と Rider 2023 EAP 9 がリリースされた。
このリリースではプライマリーコンストラクターなど C# 12 プレビューサポートの向上、IAsyncDisposable のサポート、よりよい discard _
サポートといった改善が行われている。
Get the most from Visual Studio with Microsoft Dev Box-now generally available - Visual Studio Blog
Microsoft Dev Box が一般提供開始となった。
アーティクル、スライドなど
ReSharper 2023.2 EAP 8: Comparing Assemblies in ReSharper and dotPeek, Plus More C++ Features | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2023/07/10/resharper-2023-2-eap-8/
ReSharper 2023.2 EAP 8 での新機能の紹介。
ReSharper および dotPeek でアセンブリーの比較差分を確認できる機能が追加された。
Integration Test Postgres with testcontainers-dotnet
https://dev.to/kashifsoofi/integration-test-postgres-with-testcontainers-dotnet-1gkn
testcontainers-dotnet で PostgreSQL を使用した統合テストを行う方法について。
Silverlight Just Won't Die: 'XAML for Blazor' Arrives -- Visual Studio Magazine
https://visualstudiomagazine.com/articles/2023/07/13/xaml-blazor.aspx
Userware が提供している Blazor で XAML を使用できるようにする XAML for Blazor についての紹介。
How to prevent the screen turn off after a while in Blazor
https://dev.to/this-is-learning/how-to-prevent-the-screen-turn-off-after-a-while-in-blazor-4b29
Blazor で Screen Wake Lock API を使用して画面のスリープを防ぐ方法について。
How small is the smallest .NET Hello World binary?
https://blog.washi.dev/posts/tinysharp/
Hello World を表示する .NET アプリケーションを極限まで小さくするという試み。
記事では様々なテクニックを駆使して4.6KBの実行ファイルを最終的に834バイトまで縮めることに成功している。
The minimal API AOT compilation template: Exploring the .NET 8 preview - Part 2
https://andrewlock.net/exploring-the-dotnet-8-preview-the-minimal-api-aot-template/
.NET 8 Preview の Minimal API 向け AOT のテンプレートの解説。
I finally found a use for Logging in .NET!
https://martinjt.me/2023/07/14/i-finally-found-a-use-for-logging-in-net/
OpenTelemetry へのトレーシングの構成を間違えた際のエラーログを取得するための手法について。
エクスポーターはバックグラウンドで動作するため、エラーが発生しても表には出てこないため EventListener でイベントを取得する。
「.NET + Lambda のパフォーマンスを最適化する方法」というテーマのビデオセッションで話しました #devio2023 | DevelopersIO
https://dev.classmethod.jp/articles/devio2023-video-57-dotnet/
.NET を AWS Lambda で使用する際に NativeAOT を使用してコールドスタートのパフォーマンスを改善することについて。
Exploring Blazor Changes in .NET 8 - Server Side Rendering (SSR)
https://jonhilton.net/blazor-ssr/
.NET 8 での Blazor の Server Side Rendering についての簡単な解説。
What does Azure AD renamed Microsoft Entra ID mean for .NET developers? - .NET Blog
https://devblogs.microsoft.com/dotnet/azure-ad-microsoft-entra/
Azure Active Directory (Azure AD) が Entra ID にリブランドしたことによる .NET 開発者への影響について。
ライブラリーや URL といったものは変更されないため既存のコードに対しての影響はないとしている。
Debug Source Generators in JetBrains Rider | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2023/07/13/debug-source-generators-in-jetbrains-rider/
Rider での Source Generator のデバッグについての紹介。
記事では Source Generator で生成されたコードのデバッグや Source Generator 自体のデバッグ、Roslyn テンプレートについて触れている。
Titlebars and Themes: A WinUI Adventure
https://inthehand.com/2023/07/11/titlebars-and-themes-a-winui-adventure/
WinUI でのタイトルバーのウィンドウボタンとタスクバープレビューでのアイコンが Windows の見た目に合わせるための Tips。
C#の単体テストにおいてILoggerのログをテスト出力に表示する方法
https://zenn.dev/jtechjapan/articles/d10e9e9c0d5bbe
ユニットテストで Microsoft.Extensions.Logging の ILogger を経由してテスト出力にする方法について。
記事では MartinCostello.Logging.XUnit パッケージを使用する方法を紹介している。
dotTrace comes to BenchmarkDotNet | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2023/07/11/dottrace-comes-to-benchmarkdotnet/
BenchmarkDotNet 0.13.6 で導入された dotTrace の統合について。
DotTraceDiagnoser を使用することでベンチマーク中のプロファイリングが可能となる。なおスナップショットを開くには dotTrace のライセンスが必要となる。
Comparing WebApplication.CreateBuilder() to the new CreateSlimBuilder() method: Exploring the .NET 8 preview - Part 3
.NET 8 の ASP.NET Core で導入される WebApplication.CreateSlimBuilder
について。
AOT 向けに機能制限された構成で起動するためのビルダーについて詳しく説明している。
Milestone: 2 million downloads for VideoLAN .NET NuGet packages
https://dev.to/mfkl/milestone-2-million-downloads-for-videolan-net-nuget-packages-k1e
VideoLAN .NET NuGet パッケージアカウントの合計ダウンロード数が200万ダウンロードを超えたことと、今後の開発について。
LibVLC 4 のサポート、Unity や Uno Platform、コマーシャルライセンスといった点に触れている。
Windows と Visual Studio と .NET のサポート状況について (2023.07) - Qiita
https://qiita.com/mmake/items/946aea0d9a195aa5e3d4
Windows と Visual Studio、.NET および .NET Framework のサポート期限と対応 OS の組み合わせのまとめ。
Cake v3.1.0 released
https://cakebuildnet.medium.com/cake-v3-1-0-released-c42728359d25
Cake v3.1.0 がリリースされた。
このリリースではいくつかの改善が含まれている。
Build 2023 で発表されて Windows 11 Insider Preview で利用可能になった Dev Drive を試した - しばやん雑記
https://blog.shibayan.jp/entry/20230710/1688920344
Windows 11 Insider Preview で利用可能となった開発向けのボリューム Dev Drive を試用してみたことについて。
実際に .NET でビルドした結果や Copy-on-Write を活用する方法についても触れている。
Let's Learn .NET - Web 開発 (日本語) - YouTube
https://www.youtube.com/watch?v=YbYwWaJsbwM
Visual Studio Code を使用して HTML/CSS、ASP.NET Core Razor Pages といったもので .NET 開発を学ぶ動画。
ブラウザベース版の #VSCode を使用し、HTML/CSS でアクセス可能な Web ページを作成することで、Web 開発の基礎を学びます。 次に、#ASPNETCore で #Razor を使用して最初の Web ページを構築します。 このライブ配信で、一緒に学びましょう!https://t.co/1EmDERmDws pic.twitter.com/oqhsAArEUR
— The ASP.NET Team (@aspnet) July 11, 2023
ライブラリ、リポジトリ、ツールなど
MSBuild Editor - Visual Studio Marketplace
https://marketplace.visualstudio.com/items?itemName=mhutch.MSBuildEditor
Visual Studio で MSBuild ファイルを編集するための拡張。
🎉 It's been an 8-year labor of love but I finally published a preview of my open-source MSBuild Editor extension to the VS Marketplace! https://t.co/FoT2IixJ5T
— Mikayla H (@mjhutchinson) July 12, 2023
IntelliSense, Quick Info, validation, navigation, code fixes, and refactorings, all driven by a type system 😄 pic.twitter.com/dF7QxxUPyT
サイト、ドキュメントなど
ツイート
OK here's another performance challenge for ya'll (yes I'm writing code on vacaton!). You get an array of messages (defined below) and it gets JSON serialized as a single base64 encoded, comma separated string. This is also on the hot path. How can we optimize this one? #dotnet https://t.co/vDm7gxhd03 pic.twitter.com/4Gta4rumDn
— David Fowler (@davidfowl) July 12, 2023
https://t.co/PZN8Xi5OGt
— ++C++; // 管理人: 岩永 (@ufcpp) July 12, 2023
今週どこかで配信するか。
個人的にはどこにもアナウンスないけども UnsafeAccessor にときめいてる。
Here's some code that is on the hot path on your application and you want to optimize it. This is what a typical C# developer would write (actually copilot wrote this). It's pretty clear, but suboptimal. How could you go about improving it? #dotnet #csharp pic.twitter.com/NBFuhz27WG
— David Fowler (@davidfowl) July 11, 2023