.NET
Azure Functions の .NET Isolated はビルド時に内部プロジェクトを作成し、必要なファイルを生成する仕組みになっているため、SDK として NuGet パッケージ Microsoft.Azure.Functions.Worker.Sdk が必要になっていますが、少し前に新しく MSBuild SDK ベー…
少し前に GA したこともあり、そろそろ Agent Framework をちゃんと触っておかないといけなくなったので、基本的に最小コードで動くようなものをベースに検証することにしました。公式のサンプルやドキュメントは古いバージョンのコードが混ざっていることが…
これまで OpenAPI 定義から C# 向けのクライアントが必要な場合は OpenAPI Generator や AutoGen、あるいは NSwag といったツールを使ってきたのですが、それぞれのツールに癖があり割と妥協して使うことが多かったです。個人的には OpenAPI 定義だけ置いて…
Ignite のタイミングで Flex Consumption が GA したこともあり、そろそろ .NET Isolated 向けの Durable Functions を使いたい気持ちが高まってきたのでしっかりと確認しておくことにしました。以前調べたときは対応していない機能も多かった気がするのです…
先週開催された .NET Conf 2024 で .NET 9 が正式リリースされましたが、同じタイミングで App Service と Azure Functions についても .NET 9 GA 版への対応が行われたため、現時点では Flex Consumption 以外で利用可能になっています。Azure Functions チ…
今年の Microsoft Build で突然 Seth が発表した Prompty ですが、これまで扱いが悩ましかったシステムプロンプト周りを上手く外部ファイルとして扱えるのと、VS Code 拡張を使うとファイルを直接 OpenAI で実行できるのでプロンプトの開発段階から、アプリ…
前回試してみた Microsoft.Extensions.AI (MEAI) は OpenAI や Azure AI Inference 向けにはライブラリが用意されているので、非常に簡単に Generative AI の機能を利用出来るようになっています。抽象化されたインターフェースにより、OpenAI や Azure AI I…
昨夜 C# 向けの新しい拡張ライブラリとして Microsoft Extensions.AI のプレビューが公開されました。突然出てきた感が凄いですが、個人的には Microsoft.Extensions 名前空間に用意されたライブラリは有用なものが多いので気に入っています。今回は AI 向け…
そろそろ NPU を使うとどのくらいの性能が出るのか気になっていたのですが、DirectML の Snapdragon X Elite の NPU 対応は自分の手元では全然動作しなかったので、ひとまずは Qualcomm AI Engine Direct SDK (QNN SDK) を使って NPU を使ってみることにしま…
以前に ONNX Runtime Generative AI に対応した Phi-3 mini / medium のモデルを利用して、ローカルマシンの DirectML アクセラレーションが効く形で動かしてみました。本命と考えている NPU に最適化された Phi-Silica はまだ利用可能になっていないので、…
公式ブログで予告されてからかなり時間がかかっていましたが、ようやく Azure Functions の .NET In-Process Model での .NET 8 対応がリリースされました。大々的なリリースは行われておらず、GitHub の Issue とドキュメント更新に留まっているのは開発チ…
Build 2024 では Windows などローカルのリソースを使って Generative AI を動かすという話が非常に多かったように、Keynote でも度々取り上げられた Phi-3 についても AWQ で 4-bit 量子化された DirectML で利用可能な ONNX モデルが公開されています。セ…
数年前から WinQuickLook という Windows アプリケーションを趣味で開発しているのですが、内部実装をガラッと変えた新バージョンの開発進捗が著しく悪いことに悩んでいました。現在 V4 というソリューションで絶賛開発中となっていますが、リリース日は未定…
Visual Studio 2022 17.4 以降に含まれている NuGet 6.4 では、複数プロジェクトでのバージョン管理を一元化出来る Central Package Management が実運用可能なレベルとして提供されています。NuGet などのパッケージマネージャを利用する際の共通の悩みが、…
GW なので趣味アプリの開発を行っていると、音楽ファイルに保存された曲情報を取得する必要が出てきたので、Windows Property System を使って実現したという話です。曲情報というのは以下のようにファイルのプロパティから確認出来るメタデータのことです。…
これまで P/Invoke 定義はドキュメントやヘッダーファイルから手書きすることが多かったのですが、最近は必要な Win32 API や COM インターフェースが多くなってきたので CsWin32 を使って自動生成しています。CsWin32 自体は win32metadata というプロジェ…
.NET Core 3.0 からビルド時に Tier 0 のネイティブコードを生成する ReadyToRun が利用可能になっています。実行時に Tier 0 のコード生成を行わない分、スタートアップの高速化が期待できる機能です。.NET 6.0 は Windows x64 環境なら全てのクロスコンパ…
去年リリースされた Cosmos DB SDK v3.18.0 から Point Read のような API で複数項目を 1 回のメソッド呼び出しで行える ReadMany API が追加されています。Point Read のような API デザインなので Id と対応した PartitionKey 両方の指定が必要です。API …
CodePlex に置いてあった .NET Framework 3.0 時代に書かれたアプリケーションを、GitHub に移行しつつ .NET 5 で動くように 2 週間ぐらい頑張った話を書きます。正直なところ 12 年前に書かれたコードを何とかするのはめっちゃ大変でした。今回コードの改善…
恐らく Azure AD B2C を使っている人全員が待ち望んでいたカスタムドメイン対応ですが、Front Door と組み合わせる形にはなりますが Preview として公開されました。単純に Front Door をリバースプロキシとして使うだけなのですが、割と現実的な落としどこ…
.NET 5.0 で Win Forms は ARM64 の Windows に対応しましたが、WPF は 2021 年に先送りになっていて非常に残念でしたが、最近リリースされた .NET 6.0 Preview の Nightly Build でついに対応しました。GitHub の Issue ではマイルストーンが 5.0.0 になっ…
基本的に NuGet に関しては CI でのパッケージのキャッシュがあまり効果的ではないのですが、推奨設定での使い方をちゃんと試しておこうと思ったので残します。GitHub Actions や Azure Pipelines には NuGet 向けのサンプル定義が用意されています。中身は…
App Service のドキュメントには Managed Identity を使って SQL Database を利用するサンプルが載っていますが、ここのサンプルコードは結構いい加減で特に .NET Core 向けでは使う気がしないものでした。サンプルコードがダメなだけで SQL Database の設定…
普段は App Service の Easy Auth を使ってサクッと済ませるのですが、ちょいちょい MSAL を使った Azure AD や Azure AD B2C へのログイン処理をアプリケーションに組み込むことがあります。特にネイティブアプリケーションの場合が多いので、.NET Core の …
.NET Conf 2020 で .NET 5 が正式リリースされましたが、同じタイミングで App Service での .NET 5 Early Access 機能が発表され、多少の制約はありますがリリースとほぼ同時に利用可能になりました。App Service Teams のブログと GitHub にドキュメントが…
最近は Azure DevOps で開発していたアプリケーションを GitHub に移行しつつ、ビルドとデプロイ周りを Azure Pipelines から GitHub Actions に切り替えていたのですが、アプリケーションのビルドに時間がかかっていたので短縮するために色々と作業をしまし…
WPF アプリケーションを書いていて、ユーザーからは閉じることが出来ない Window を作る必要があったのですぐ出来ると調べていたら、思った以上にはまったのでメモとして残します。Windows では Window を閉じるための方法がいくつか存在していますが、以下…
GitHub で公開してるコードに Pull Request が来た時、思ってた以上にコーディングスタイルがバラバラで困ってたので EditorConfig を追加して CI でチェックするようにしました。C# はみんなが Visual Studio を使っていて、大体は良い感じのコーディングス…
.NET Core 3.0 では WPF や WinForms が使えるようになっていて、配布時には大体 Self-contained かつ Single-file executables としてパッケージングするのが一般的になるはずです。Desktop Bridge を使って APPX / MSIX を作るのに近い形ですが、よりカジ…
Azure Functions なプロジェクトのビルドで Azure Pipelines を使っていたところ、手元ではビルド出来ていたコードが Azure Pipelines だとビルドエラーになってしまったので、最適な解決策を調べていました。具体的には C# 7.1 以降のコードが Azure Pipeli…