2024-10-04: Official OpenAI library for .NET, Windows App SDK 1.6.1

Published on Friday, 04 October 2024

トピックス

Announcing the stable release of the official OpenAI library for .NET - .NET Blog

https://devblogs.microsoft.com/dotnet/announcing-the-stable-release-of-the-official-open-ai-library-for-dotnet/

.NET 向けの公式 OpenAI ライブラリーがリリースされた。

このライブラリーは OpenAI および Azure OpenAI サービスをサポートするクライアントライブラリーとなっている。

  • 完全な OpenAI REST API サポート: v2 やチャット補完など柔軟なインタラクションを実現できる
  • 最新のモデルのサポート: GPT-4o, GPT-4o mini, o1-preview, o1-mini などのモデルのサポート
  • 拡張性
  • 同期と非同期 API
  • ストリーミング補完: IAsyncEnumerable によるストリーミング補完
  • Quality-of-life の向上
  • .NET Standard 2.0 の互換性

Release Windows App SDK 1.6.1 (1.6.240923002) · microsoft/WindowsAppSDK

https://github.com/microsoft/WindowsAppSDK/releases/tag/v1.6.1

Windows App SDK 1.6.1 がリリースされた。

このリリースではいくつかのクラッシュやバグといった不具合の修正が行われている。

Visual Studio 2022 - Recent performance enhancements - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/visual-studio-2022-recent-performance-enhancements/

Visual Studio 2022 17.11 でのパフォーマンス改善についての紹介記事。

C# に関連する部分でのパフォーマンス改善としてコードのインデックス作成に関する挙動の改善、Source Generator の .NET 8 以降と実行タイミングの変更とその設定がある。

その他 C++ での条件付きブレークポイントのパフォーマンス改善や C++ シンボル検索の最適化といった改善があるとのこと。

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

LibGit2Sharpを使用してGitリポジトリを操作する方法

https://zenn.dev/nuits_jp/articles/2024-10-04-use-libgit2sharp-git-operations

LibGit2Sharp を使用した Git リポジトリの操作についての簡単な説明。

SIMD並列化ライブラリSmartVectorDotNet開発の知見まとめ(1) IEEE754浮動小数型の低レベル操作

https://zenn.dev/aka_nse/articles/34740bb2088576

SIMD を使用した並列化ライブラリで各種演算を実装する際の知見についてのまとめ。

Discover Hidden Insights with Profiler's External Code Decompilation - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/discover-hidden-insights-with-profilers-external-code-decompilation/

Visual Studio でプロファイリングした際、ソースコードを持たない部分を解析するために自動で逆コンパイルする機能についての紹介。

【C#】ML.NETでレビューに含まれる感情を分析してみた - Qiita

https://qiita.com/KM_20005/items/2019cd99ba91cc8aeaeb

ML.NET を使用して感情を分析するモデルと実装する手順の紹介。

Major updates to NetEscapades.​AspNetCore.​SecurityHeaders

https://andrewlock.net/major-updates-to-netescapades-aspnetcore-security-headers/

セキュリティー関連のヘッダーを出力するミドルウェア NetEscapades.​AspNetCore.​SecurityHeaders のアップデートについて。

記事ではアップデートに際して、削除や変更のあったヘッダーやカスタマイズについてなどを詳しく解説している。

Implement a Geo-distance search using .NET Aspire, Elasticsearch and ASP.NET Core

https://damienbod.com/2024/09/23/implement-a-geo-distance-search-using-net-aspire-elasticsearch-and-asp-net-core/

ASP.NET Core アプリケーションで Elasticsearch の Geo-distance 検索を呼び出す方法について。

(C#) OnnxRuntimeを通してResNetによる画像分類を試す - Qiita

https://qiita.com/Kujiro/items/7b2e75494e05a2c803dd

OnnxRuntime と ResNet を使用した画像分類を実装する方法について。

記事では画像を読み込んで推論する手順や GPU を使用する場合について触れている。

csbindgenを使ってみる - Qiita

https://qiita.com/aiueo-1234/items/df61c6a4ce2695904e5a

C 言語や Rust のバインディングを生成する csbindgen の使用方法についての解説。

Visual Studio & .NET - ソースコードを持っていないアセンブリ内にブレークポイントを設置してデバッグしたい

https://zenn.dev/j_sakamoto/articles/f333eecd0949dc

Visual Studio でソースコードのない外部アセンブリに対してデバッグ実行時に逆コンパイルしてステップインする方法について。

ASP.NET Core 9 and IAsyncEnumerable - Async Streaming JSON and NDJSON From Blazor WebAssembly

https://www.tpeczek.com/2024/09/aspnet-core-9-and-iasyncenumerable.html

.NET 9 の Blazor WebAssembly で対応されたストリーミングアップロードを使用して、 JSON および NDJSON のストリーミングアップロードを実装する方法について。

Effortless Instrumentation profiling with Persistent Target Selection - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/effortless-instrumentation-profiling-with-persistent-target-selection/

Visual Studio 2022 でプロファイリングのターゲット選択を保持する改善についての紹介。

繰り返しプロファイリングをセッションを実行する場合にその都度選択する必要がなくなる。

An Efficient Dictionary for IPAddress Tracking using .NET 9 with AlternateLookup and IAlternateEqualityComparer - Steve Gordon - Code with Steve

https://www.stevejgordon.co.uk/efficient-dictionary-for-ipaddress-tracking-using-net-9-with-alternatelookup-and-ialternateequalitycomparer

IP アドレスをキーにした Dictionary で .NET 9 の Dictionary の AlternateLookup を使用して ReadOnlySpan で検索できるようにする方法について。

Disabling Recording of an Activity (span) in .NET OpenTelemetry Instrumentation - Steve Gordon - Code with Steve

https://www.stevejgordon.co.uk/disabling-recording-of-an-activity-span-in-dotnet-opentelemetry-instrumentation

OpenTelemetry での計測時に、Activity (Span) による記録を無効にする方法について。

特定の無効なリクエストはトレースに含めたくないといったケースでの対応方法。

Unity Tools Case Study The Qodana Blog

https://blog.jetbrains.com/ja/qodana/2024/08/unity-tools-qodana/

JetBrains Qodana を使用して CI/CD で Unity アプリケーションのコードの品質をチェックする方法について。

Spectre.Console helpers

https://dev.to/karenpayneoregon/spectreconsole-helpers-3ml3

Spectre.Console の使い方デモを兼ねたヘルパーコードの実装と紹介。

[WPF] 次の画面再描画時に処理を実行する - Qiita

https://qiita.com/habakino094/items/285ed1f899a6e3dd6ddc

WPF で再描画時に呼び出される CompositionTarget.Rendering について。

Receiving Push Notifications from Firebase in Android MAUI

https://dev.to/laura_puckoriute/receiving-push-notifications-from-firebase-in-android-maui-1ho

.NET MAUI の Android 向けアプリケーション実装で、Firebase を使用した通知をハンドリングする方法について。

OSSの認証サービス Keycloak を.NETから使ってみた-Aspireとコンテナで使える簡単IDaaS

https://speakerdeck.com/tomohisa/ossnoren-zheng-sabisu-keycloak-wo-dot-netkarashi-tutemita-aspiretokontenadeshi-erujian-dan-idaas

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

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

ツイート

Visual Studio で return ステートメントで返す値をインラインで表示/確認できるようになる、という話。

最新の Rider のプレビューでも .slnx 形式のサポートが追加されたという話。

C# 13 のコレクション式の要素のより良い変換が 17.13 (Preview 3) にマージされた。

Deep Dive

Add initial design document for parsing net10 by terrajobst · Pull Request #322 · dotnet/designs

https://github.com/dotnet/designs/pull/322

.NET 10 に向け TargetFramework を net10 どう扱うかについて。net10 そのままでは .NET Framework 1.0 と区別がつかない問題がある。