C#
昨夜 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 モデルが公開されています。セ…
最近は Azure OpenAI Service と Semantic Kernel の盛り上がりに伴い、ワークショップなどで GitHub Codespaces と Azure Functions の組み合わせで開発することが増えてきているので、安定して利用できる C# 開発環境を構築する方法を模索していました。こ…
Visual Studio 2022 17.4 以降に含まれている NuGet 6.4 では、複数プロジェクトでのバージョン管理を一元化出来る Central Package Management が実運用可能なレベルとして提供されています。NuGet などのパッケージマネージャを利用する際の共通の悩みが、…
以下のエントリで書いたように、UWP アプリを Windows App SDK 1.1 に移行したので Microsoft Store で公開したのですが、公開直後からクラッシュレポートが大量に発生してしまいました。今は一通り対応が完了していて、大きな問題は発生していない状態なの…
何故か Windows App SDK を使っても、Windows 10 や 11 で追加された Desktop Acrylic や Mica といったウィンドウ効果は適用できませんでしたが、先日リリースされた 1.1 Preview 3 でようやく対応したようです。Windows App SDK 1.1 Preview 3 is now avai…
GW なので趣味アプリの開発を行っていると、音楽ファイルに保存された曲情報を取得する必要が出てきたので、Windows Property System を使って実現したという話です。曲情報というのは以下のようにファイルのプロパティから確認出来るメタデータのことです。…
これまで P/Invoke 定義はドキュメントやヘッダーファイルから手書きすることが多かったのですが、最近は必要な Win32 API や COM インターフェースが多くなってきたので CsWin32 を使って自動生成しています。CsWin32 自体は win32metadata というプロジェ…
去年リリースされた 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 をリバースプロキシとして使うだけなのですが、割と現実的な落としどこ…
基本的に NuGet に関しては CI でのパッケージのキャッシュがあまり効果的ではないのですが、推奨設定での使い方をちゃんと試しておこうと思ったので残します。GitHub Actions や Azure Pipelines には NuGet 向けのサンプル定義が用意されています。中身は…
App Service のドキュメントには Managed Identity を使って SQL Database を利用するサンプルが載っていますが、ここのサンプルコードは結構いい加減で特に .NET Core 向けでは使う気がしないものでした。サンプルコードがダメなだけで SQL Database の設定…
GitHub で公開してるコードに Pull Request が来た時、思ってた以上にコーディングスタイルがバラバラで困ってたので EditorConfig を追加して CI でチェックするようにしました。C# はみんなが Visual Studio を使っていて、大体は良い感じのコーディングス…
Azure Functions なプロジェクトのビルドで Azure Pipelines を使っていたところ、手元ではビルド出来ていたコードが Azure Pipelines だとビルドエラーになってしまったので、最適な解決策を調べていました。具体的には C# 7.1 以降のコードが Azure Pipeli…
Go や Node.js 向けは見つけられたのですが、C# / .NET Core 向けは探しても見つからなかったので作りました。.NET Standard 2.0 なので .NET Core / .NET Framework の両方で動くはずです。CoreFx の Console ベースで書いていて、Windows / Linux / macOS …
Azure App Service や Azure Functions でアプリケーションを書いている時に、別でホストされている API を叩きたい時にはデプロイされた環境単位で向き先を変える必要がありますが、大抵のケースでは App Settings に入れることになるので設定が面倒になっ…
AppVeyor から Azure Pipelines への移行を見越しつつも、ちゃんと NuGet パッケージの発行周りを検証していなかったので Build と Release のパイプラインを組みました。AppVeyor での自動化については前回書いたエントリを参照してください。やっているこ…
非常に今更感がある内容なのと、Azure Pipelines の方が便利なんじゃないか疑惑もありますが、AppVeyor を使っているプロジェクトが多いので、やっと真面目に対応しました。GitHub 上で新しく Release を作成すると、そのタグ名をバージョンにして NuGet パ…
Swagger / OpenAPI の定義からクライアントを作成するツールがいくつかあって、それぞれ特徴がありそうだったので実際に生成して試してみました。試したのは以下の 3 つです。 Swagger Codegen OpenAPI Generator AutoRest 使った Swagger 定義は公式の Pets…
昔のように高い信頼性を持つオンプレのハードウェア上で動いていたアプリケーションとは異なり、昨今のクラウド上で動いているアプリケーションは障害が発生する前提でコードを書く必要があります。クラウドのハードウェアは毎日どこかで壊れるので、それを…
通常は Visual Studio Installer から .NET Framework の SDK はインストール出来るはずですが、何故か 4.7.2 はまだ落ちてこないので手動でインストールしようとしましたが、何故か入りませんでした。地味にはまったのでメモとして残しておきます。ここから…
ちょっと前に .NET Core のバージョンがよくわからないという話題が Twitter で上がりました。何のVersionを表示しているのか?有識者に聞かないと良くわからん。 pic.twitter.com/1gqVqpASxP— Takekazu Omi (@takekazuomi) 2017年3月8日@shibayan 全然わか…
CI の SaaS はビルドの度にコンテナが生成されて、完了したら破棄されるといったように揮発する性質があるので、キャッシュが効かずに時間がかかりがちです。.NET Core の場合は NuGet パッケージのインストール処理で影響が出やすいです。特に dotnet コマ…
Connect(); // 2015 では ASP.NET 5 (DNX) や .NET Core の RC 1 が出たので、自分なりに整理するために色々と調べて OS X 上で実際に試してみました。RC 1 ではちゃんとインストーラーやドキュメントが用意されているので簡単です。 DNX / ASP.NET 5 http:/…
WinQuickLook で COM インターフェース定義を大量に手書きした時、自分の COM Interop の知識がイマイチなことに気が付いたので、とても分かりやすい IShellLink を使ってまとめます。ちなみに IShellLink はショートカットを作成するためのインターフェース…
最近真面目に作っている WinQuickLook は Win32 API と COM の塊なので、P/Invoke で割とはまりました。特に文字コード周りが致命的だったので、簡単に内容をまとめておきます。 DllImport のデフォルト文字コードは ANSI DllImport をデフォルトのまま使う…