2024-06-07: MSTest 3.4, OpenAI for .NET 2.0.0-beta.1, Serilog 4.0.0, Windows App SDK 1.6.0-experimental1

Published on Friday, 07 June 2024

トピックス

MSTest 3.4 is here with WinUI support and new analyzers! - .NET Blog

https://devblogs.microsoft.com/dotnet/introducing-mstest-34/

MSTest 3.4 がリリースされた。

このリリースでは MSTest.Analyzer の様々な改善とバグ修正、STA スレッドのサポート、フィクスチャーメソッドのタイムアウトサポート、MSTest.Sdk での Playwright や Aspire のサポート、MSTest.Runner の WinUI のサポートといった改善が行われている。

Announcing the official OpenAI library for .NET - .NET Blog

https://devblogs.microsoft.com/dotnet/openai-dotnet-library/

OpenAI の公式クライアントの最初のベータ版である 2.0.0-beta.1 がリリースされた。

このライブラリーでは OpenAI の API のほとんどをカバーし、GPT-4o や IAsyncEnumerable といったものへの対応などが含まれ、今後も最新の機能に合わせて改善が続けられる。

記事ではこれまでの OpenAI v1.x NuGet パッケージやその他パッケージのコミュニティーについても触れている。

Release v4.0.0 · serilog/serilog

https://github.com/serilog/serilog/releases/tag/v4.0.0

Serilog 4.0.0 がリリースされた。

このリリースではバッチ処理を簡単に実装できる仕組みがサポートされたほか、実験的なドット付き名前キャプチャーのサポートなどが追加されている。

またこのリリースから 2.0.0.0 に固定されていたアセンブリバージョンがパッケージのバージョンと一致するようになったため .NET Framework で使用する場合にアセンブリリダイレクトが必要になる場合があるとのこと。

バージョン 1.6 試験的 (1.6.0-experimental1) - Windows アプリ SDK の最新の試験段階チャネル リリース ノート - Windows apps | Microsoft Learn

https://learn.microsoft.com/ja-jp/windows/apps/windows-app-sdk/experimental-channel#version-16-experimental-160-experimental1

Windows App SDK 1.6.0-experimental1 がリリースされた。

このリリースでは NativeAOT のサポートの追加、TabView の改善、新しい TitleBar コントロール、その他いくつかの改善と新しい API の追加が行われている。

Introducing the Revamped Visual Studio Resource Explorer - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/introducing-the-revamped-visual-studio-resource-explorer/

Visual Studio 2022 17.11 Preview 2 で導入された新しくなったリソースエクスプローラーの紹介。

新しくなったリソースエクスプローラーではソリューション全体でのビューやダークモード、検索とフィルターといった操作をサポートし、リソースの取り扱いが容易になっている。

現時点では CSV でのインポート、エクスポートには未対応とのこと。

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

Thoughts about primary constructors: 3 pros and 5 cons

https://andrewlock.net/thoughts-about-primary-constructors-3-pros-and-5-cons/

C# 12 のプライマリーコンストラクターの良いところ3つと落とし穴や微妙なところ5つを紹介している。

ASP.NET MVC CoreのActionFilterAttributeにDIする3つの方法(+アクションフィルタ内でHttpClientを使う) - Qiita

https://qiita.com/jun1s/items/c000763f31e6a42bdd3b

ASP.NET Core MVC のアクションフィルターで DI コンテナーからサービスを取り出して使用するための方法について。ServiceFilter, TypeFilter, IFilterFactory を紹介している。

Giving our Azure marketplace images a makeover - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/giving-our-visual-studio-azure-marketplace-images-a-makeover/

Azure Marketplace での Visual Studio のインストールされた新しいイメージの追加と非推奨となったオファーについて。

How to Read/Write from Credential Manager in .NET 8

https://dev.to/issamboutissante/how-to-readwrite-from-credential-manager-in-net-8-1ag

Windows の資格マネージャーを読み書きする方法について。記事では Meziantou.Framework.Win32 パッケージを使用して読み書きを行う方法を紹介している。

Rider 2024.2 Roadmap | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2024/06/05/rider-2024-2-roadmap/

Rider 2024.2 のロードマップ。

  • パフォーマンス
  • ユーザーエクスペリエンス
    • ナビゲーションバーの刷新
  • デバッガー
    • タスクビューとタスクの依存関係グラフ
  • ゲーム開発
    • Unity の IL2CPP バックエンド使用時のデバッグの改善やコレクションビジュアライザーの改善、シェーダーバリアント
    • Unreal Engine のデバッグ改善
    • Godot のデバッグを含む GDScript のサポート
  • フレームワークとテクノロジー
  • フルラインコード補完

A beginner's guide to mapping arrays in EF Core 8 - .NET Blog

https://devblogs.microsoft.com/dotnet/array-mapping-in-ef-core-8/

Entiy Framework Core 8 での配列マッピングについての解説。

記事では PostgreSQL の配列型やそれ以外のデータベースでの JSON を使用した配列、型付き配列、それらがどのように展開されるのかといったことを開設している。

Get Hands-On with Visual Studio and Azure: Live at Microsoft HQ this August! - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/get-hands-on-with-visual-studio-and-azure-live-at-microsoft-hq-this-august/

8月5日から9日にかけて Microsoft 本社にて行われる Visual Studio LIVE! イベントの告知。

記事では Visual Studio LIVE! イベントの概要や早期特別割引の案内を紹介している。

Creating Shell Extensions in .NET 8 with SharpShell

https://dev.to/issamboutissante/creating-shell-extensions-in-net-8-with-sharpshell-2ioe

.NET 8 と SharpShell を使用してコンテキストメニューのシェル拡張を実装する方法について。

.NET 8 での Blazor で ErrorBoundary を使ったエラーハンドリングの注意点

https://zenn.dev/microsoft/articles/aspnetcore-blazor-dotnet8-errorboundary

.NET 8 の Blazor における ErrorBoundary を使用してエラーをハンドリングする方法と注意すべき点について。

State Machines, Light Switches, and Space Travel with Stateless and .NET 8

https://khalidabuhakmeh.com/state-machines-light-switches-and-space-travel-with-stateless-and-dotnet-8

Stateless を使用したステートマシンの実装方法の紹介。記事では UmlDotGraph を使用したグラフの出力などについても触れている。

Understanding the Exception.HResult property in C#

https://blog.elmah.io/understanding-the-exception-hresult-property-in-c/

Exception の HResult プロパティーについての解説。

記事では HResult はどのような役割でどのようなルールで値が設定されるのか、その読み方と調べ方について振れている。

Microsoft Photos: Migrating from UWP to Windows App SDK

https://blogs.windows.com/windowsdeveloper/2024/06/03/microsoft-photos-migrating-from-uwp-to-windows-app-sdk/

Windows のフォトアプリを UWP から Windows App SDK へ移行した事例についての説明。

記事ではプロセスモデルが変わったこと、WebView2 を使用できるようになったこと、メンテナンス性の向上、ASTA から STA にかわったことや AutoPlay といった技術的なチャレンジといった点を解説している。

C# と ONNX Runtime Generative AI (DirectML) を使って Phi-3 をローカルで動かす - しばやん雑記

https://blog.shibayan.jp/entry/20240604/1717465930

ONNX Runtime Generative AI (DirectML) を使用して Phi-3 モデルをローカル環境で動かしてみる解説。

Why you should batch message processing and how to do it with .NET AsyncEnumerable - Event-Driven.io

https://event-driven.io/en/batching_async_enumerable/

AsyncEnumerable を使用しつつメッセージをバッチ処理する方法について。

記事では Open.ChannelExtensions ライブラリーを使用して Channel を元に AsyncEnumerable を作成する方法を紹介している。

Primitive vs strongly typed dictionary keys (feat. frozen collections and BenchmarkDotNet)

https://blog.codingmilitia.com/2024/04/13/primitive-vs-strongly-typed-dictionary-keys-feat-frozen-collections-and-benchmarkdotnet/

Weakly and strongly typed values in .NET

https://yoh.dev/weakly-and-strongly-typed-values-in-dotnet

プリミティブ(弱い型)とそれをラップした強い型を使用した FrozenDictionary の参照パフォーマンスについて。

COM の解放について (C#、Excel) - Qiita

https://qiita.com/nnkanegon/items/1715b0da782e3dd713c9

COM オブジェクトの解放に関する問題と、解放漏れによるリークを調査する方法について。

Microsoft IME の変換候補だけ欲しい - Qiita

https://qiita.com/Fom/items/d9e421bae516be85d675

IME による変換候補を取得するライブラリーとその利用方法についての簡単な紹介。

Refactor your code using alias any type - .NET Blog

https://devblogs.microsoft.com/dotnet/refactor-your-code-using-alias-any-type/

C# 12 の任意の型のエイリアスを使用してリファクタリングしよう、という記事。

Using Keycloak in .NET Aspire projects

https://nikiforovall.github.io/dotnet/keycloak/2024/06/02/aspire-support-for-keycloak.html

.NETでPlaywrightのテスト環境を構築しよう

https://zenn.dev/zead/articles/vscode_playwright

Playwright を使用したブラウザーテストの環境構築について。