2023-12-24: .NET Aspire Preview 2, OpenSilver 2.0, WCF 8.0

Published on Sunday, 24 December 2023

トピックス

Announcing .NET Aspire Preview 2 - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-dotnet-aspire-preview-2/

.NET Aspire Preview 2 がリリースされた。

Dashboard の各種ビューの改善やコンテナー実行時の構成カスタマイズ性の向上、MySQL や MongoDB といったコンポーネントの追加など様々な改善が含まれている。

Introducing OpenSilver 2.0 - OpenSilver

https://opensilver.net/announcements/2-0/

OpenSilver 2.0 がリリースされた。

このリリースでは Visual Basic .NET のサポート、Blazor や React, Angular との統合、デザインタイムライブ XAML プレビュー、拡張レイアウトシステムのサポート、WebView ベースのより高速なシミュレーター、様々なパフォーマンス改善といったものが含まれている。

Release WCF 8.0 · dotnet/wcf

https://github.com/dotnet/wcf/releases/tag/v8.0.0-rtm

WCF Client 8.0 がリリースされた。

このリリースでは構成名を受け取る API が削除された以外の大きな変更はないものの、クライアントサポートポリシーとしてリリースから3年(2026年まで)のサポートが提供される。前バージョンの WCF Client 6.0 のサポート終了は2024年11月までとなっている。

Release 2.3.3 · mysql-net/MySqlConnector

https://github.com/mysql-net/MySqlConnector/releases/tag/2.3.3

MySQL Connector for .NET 2.3.3/2.3.2 がリリースされた。

このリリースではスキーマのサポート強化やいくつかの不具合の修正が含まれている。

ReSharper and Rider 2023.3.2 – Bug Fixes Have Landed! | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/12/20/resharper-and-rider-2023-3-2-bug-fix/

ReSharper / Rider 2023.3.2 がリリースされた。

このリリースでは ReSharper と Rider ともに 2023.3 リリース以降の様々な不具合が修正されている。

WPFUI collaboration for Win11 Theming · dotnet/wpf · Discussion #8533 · GitHub

https://github.com/dotnet/wpf/discussions/8533

WPF に Windows 11 の Fluent UI テーマを持ち込むため、WPFUI とのコラボレーションを行うというアナウンス。

What's New in Our Code Coverage Tooling? - .NET Blog

https://devblogs.microsoft.com/dotnet/whats-new-in-our-code-coverage-tooling/

コードカバレッジツール (Microsoft.CodeCoverage) の新機能について。

静的インストルメンテーションでのすべてのプラットフォームのサポート、新しいレポート形式のサポート、 dotnet-coverage コマンドの導入、ソリューションの自動マージ、パフォーマンスの改善など。

Advent Calendar 2023

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

actix-webでBlazor WebAssemblyをホストする - Qiita

https://qiita.com/TellMin/items/9e7f1e576a195103aa92

Rust の actix-web フレームワークで Blazor WebAssembly アプリケーションをホストする方法について。

.NET Aspireを試してみた - Qiita

https://qiita.com/hydrangeas/items/b87bd39843eee0633cb0

.NET Aspire のプロジェクトを作成し、構成やロギングなどを触ってみた記録。

.NET 8のプロセス間通信には、gRPCのパイプ通信が優秀なようです - Qiita

https://qiita.com/spc_ksudoh/items/760a41a73c825eb70e70

プロセス間通信の方法として名前付きパイプによる gRPC を使用するメリットとその実装方法について。

String Interning - To Use or Not to Use? A Performance Question

https://sergeyteplyakov.github.io/Blog/benchmarking/2023/12/10/Intern_or_Not_Intern.html

String.Intern のパフォーマンスについて。記事では NativeAOT で実行した場合との差についても触れている。

A Year in Recap: Celebrating this years milestones

https://avaloniaui.net/Blog/a-year-in-recap-celebrating-this-years-milestones

Avalonia の2023年の振り返り記事。

Semantic Kernelのプロンプトをファイルに書く

https://zenn.dev/tomokusaba/articles/379d39dc225b88

Semantic Kernel で使用するプロンプトを外部ファイルに記述しておき、呼び出す方法について。

【C#】初心者におすすめ!コードアナライザーを使おう!【.NET】

https://zenn.dev/inuinu/articles/c60abf13d5f47a

アナライザーの使用方法についての解説。組み込みのアナライザーの紹介やアナライザーの抑制方法、Roslynator などのサードパーティーアナライザーの紹介など。

Announcing the HackTogether: The Great .NET 8 Hack Winners - .NET Blog

https://devblogs.microsoft.com/dotnet/great-dotnet-8-hack-winners/

The Great .NET 8 Hack イベントの受賞者の発表。

Semantic Kernelのプロンプトのテンプレート化

https://zenn.dev/tomokusaba/articles/a403d9ec250ec8

Semantic Kernel でプロンプトをテンプレート関数化して呼び出す方法について。

GitHub Codespaces Semantic Kernel v1.0.1 handson

https://zenn.dev/ymd65536/articles/semantic_kernel_v101_handson

Semantic Kernel v1.0.1 を GitHub Codespace と Azure OpenAI で実行するためのセットアップ手順。

Updates to the StronglyTypedId library - simplification, templating, and CodeFixes: Using strongly-typed entity IDs to avoid primitive obsession - Part 8

https://andrewlock.net/updates-to-the-stronglytypedid-library/

StronglyTypedId ライブラリを再設計し、テンプレート化などの対応を行ったことについて。

.NET 8.0 を WSL2 Ubuntu にインストールする

https://zenn.dev/yukiko_bass/articles/e6f9f22da5f15e

WSL2 の Ubuntu 22.04 に .NET 8 をインストールする手順について。

Naming Made Easy: AI-Powered Rename Suggestions - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/ai-powered-rename-suggestions/

Visual Studio Preview でサポートされた GitHub Copilot を使用した識別子のリネームサジェスト機能の紹介。

.NET 8 の Blazor Web App で MudBlazor を使う

https://zenn.dev/tetr4lab/articles/74bd50585434ab

.NET 8 の Blazor Web App で .NET 8 正式対応前の MudBlazor を利用する手順について。

Integrating OpenAI Image Generation into a .NET Application

https://weblog.west-wind.com/posts/2023/Dec/21/Integrating-OpenAI-image-generation-into-your-NET-Application

OpenAI の画像生成 API を .NET から利用する方法やその簡単なラッパーライブラリーの紹介。

Revisiting WASM for F#

https://dev.to/tunaxor/revisiting-wasm-for-f-38c1

F# を Blazor WebAssembly で使用する上でのライブラリーや JavaScript との相互運用について。

Semantic KernelのFunctionを自動的に選択して回答を返すSemantic Kernel1.0.1正式版

https://zenn.dev/tomokusaba/articles/e667217a2045cc

Semantic Kernel でカスタムの Function を自動的に選択する実装方法について。

Unlocking the Secrets of Managed Memory: Dive into Event Handler Leak Insights! - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/unlocking-the-secrets-of-managed-memory-dive-into-event-handler-leak-insights/

Visual Studio 17.9 Preview 1 で導入された新しいメモリー分析機能の紹介。

この機能によってイベントハンドラーのオブジェクトリークを素早く見つけることが可能となるとのこと。

.NET CoreでWindowsとLinuxでTimeZoneのIDが異なる

https://zenn.dev/ynug/articles/dot-net-time-zone

Windows と Linux などプラットフォームごとにタイムゾーンの ID が異なることその対処について。

.NET 8からはLibraryImportAttributeで使うSafeHandle型のコンストラクタをpublicにしよう - プログラム系統備忘録ブログ

https://tan.hatenadiary.jp/entry/2023/11/23/015139

.NET 8 では LibraryImportAttribute で宣言された外部ライブラリーの呼び出しに使用している SafeHandle 型はコンストラクターを public にする必要がある変更について。

記事ではどのように生成されるコードが変更され、必要となった理由と経緯などにも触れている。

Fukuoka.NET Conf 2023 - connpass

https://fukuten.connpass.com/event/303390/

福岡での .NET Conf 2023 ローカルイベント。2024年2月3日(土)に開催。

HttpContext Issues with Azure SignalR Service

https://dev.to/1kevgriff/httpcontext-issues-with-azure-signalr-service-21d0

Azure SignalR Service では HttpContext を利用できないという固有の特性があり、問題となる場合があることについて。

NUnit4の新しい非同期アサートを試してみる

https://zenn.dev/tomokusaba/articles/890091dd520f08

NUnit 4 での非同期アサートについての紹介。

Azure OpenAI Service の JSON モードと tools を .NET SDK で使ってみよう

https://zenn.dev/microsoft/articles/aoai-tools-jsonmode-in-dotnet

Azure OpenAI Service の JSON モードと tools プロパティーを .NET 向けの SDK から利用する方法について。

最新の React-TypeScript SPA テンプレートを .NET 8 で試してみよう | ドクセル

https://www.docswell.com/s/shosuz/Z4QRL8-2023-11-25-172313

.NET 8 で新しくなった React と ASP.NET Core を組み合わせる SPA テンプレートについての紹介。

お客様、そこは秘孔です!突かないでください! HTTP/2 Rapid reset の概要と対策

https://speakerdeck.com/murachiakira/2-rapid-reset-nogai-yao-todui-ce

HTTP/2 Rapid Reset 攻撃についての解説。

.NET 8世代のBlazorについて

https://speakerdeck.com/tomokusaba/dot-net-8shi-dai-noblazornituite

.NET 8 の Blazor のホスティングモデルの変更点などの簡単な解説。

C# ではじめる OpenTelemetry

https://speakerdeck.com/nenonaninu/c-number-dehazimeru-opentelemetry

OpenTelmetry についての紹介から、ASP.NET でのサポートと使い方、SignalR でのトレースなど。

.NET Conf Recap Japan/Night Party

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

GitHub - SwissLife-OSS/snapshooter: Snapshooter is a snapshot testing tool for .NET Core and .NET Framework

https://github.com/SwissLife-OSS/snapshooter

.NET でのスナップショットテストを行うためのライブラリー。

GitHub - sator-imaging/docfx-pages: Deploy docfx API Reference to GitHub Pages with only 1 Action

https://github.com/sator-imaging/docfx-pages

docfx を使用して API リファレンスを GitHub Pages にパブリッシュする GitHub Action。

GitHub - timonkrebs/MemoizR: Declarative Structured Concurrency for C#

https://github.com/timonkrebs/MemoizR

Sekiban - Event Sourcing and CQRS Framework - Home

https://www.sekiban.dev/

Azure Cosmos DB や AWS Dynamo DB を使用する C# によるイベントソーシングフレームワーク。

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

ツイート

ターゲット型によるコレクションリテラルで生成されるコードの違い。

async/await の歴史のはなし。

DebuggerDisplay 属性の Name プロパティーを使うことでインデックスの代わりにキーを表示できるという話。

NativeAOT 上で Mono のインタープリターを動かす試み。