C#

C# で Azure 仮想マシンのプロパティを取得する

Azure ポータルの仮想マシンの概要ページに表示されているような情報を、C# で SDK 使って取得してみた。 www.nuget.org www.nuget.org といっても全部取得するのは調査に時間がかかるので、ひとまず必要なやつだけ。ズバッと1回の呼び出しで取得できなかっ…

C# でホスト名から IP アドレスを取得する

Dns クラスを使えばホスト名から IP アドレスを取得できた。だいぶ前に試したときは、遅過ぎて使いものにならなかった記憶があるけど、さて今回はどうか。 using System; using System.Diagnostics; using System.Net; using System.Threading.Tasks; namesp…

C# で VPN ゲートウェイのアドレスプールを変更する

Microsoft Azure の仮想ネットワークに VPN の P2S で繋ぐとき、クライアントのアドレスプールをあらかじめポータルで設定しておくけど、REST API や SDK でもアドレスプールを変更できる。 www.nuget.org ポータルではアドレスプールなのに対し、REST API …

C# で VPN ゲートウェイの P2S 用 VPN クライアントセットアップをダウンロードする

Microsoft Azure の仮想ネットワークに VPN の P2S で繋ぐとき、Azure VPN Client を使うことになる。Azure VPN Client はポータルでダウンロードすれば事足りるけど、REST API や SDK でもダウンロードできる。 www.nuget.org 実際には、Azure VPN Client …

C# でネットワークインタフェースに関連付けるネットワークセキュリティグループを変更する

ネットワークインタフェースに関連付けているネットワークセキュリティグループの付け替えも、Azure.ResourceManager.Network を使えばできた。 www.nuget.org using Azure; using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManage…

C# でネットワークセキュリティグループのセキュリティ規則を CRUD する

C# で Microsoft Azure のネットワークセキュリティグループの操作を行うのは、Azure.ResourceManager.Network を使えばできた。 www.nuget.org ネットワークセキュリティグループのセキュリティ規則を CRUD してみたサンプルは次の通り。 using Azure; usin…

C# でスナップショットからマネージドディスクを作成・削除

C# で Azure.ResourceManager.Compute を使って、スナップショットからマネージドディスクを作成できた。あと列挙・更新・削除も。 www.nuget.org 以下、.NET 6 でのサンプル。 using Azure; using Azure.Core; using Azure.Identity; using Azure.ResourceM…

C# で Microsoft Azure のマネージドディスクのスナップショットを CRUD する

C# で Azure.ResourceManager.Compute を使えば、マネージドディスクからスナップショットを作成・取得・更新・削除できた。 www.nuget.org using Azure; using Azure.Core; using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManage…

C# で Azure 仮想マシンのデータディスクを入れ替える

Azure.ResourceManager.Compute を使って、Azure 仮想マシンのデータディスクもアタッチやデタッチができる。 www.nuget.org OSディスクのときと違って、データディスクは ID の変更ができないので、データディスクのアタッチとでタッチを行うことで、データ…

C# で Azure 仮想マシンの OS ディスクをスワップする

Azure.ResourceManager.Compute を使って、Azure 仮想マシンの OS ディスクをスワップできた。 www.nuget.org using Azure; using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManager.Compute; using Azure.ResourceManager.Compute…

C# で Azure VM の停止・開始・再起動を行う

Azure.ResourceManager.Compute を使えば、C# で仮想マシンの停止・開始・再起動ができる。 www.nuget.org 認証には Azure.Identity を使う。 www.nuget.org アプリに組み込んで使うことを想定しているので、Azure AD でアプリを登録しておく。 Microsoft Az…

Microsoft Authentication Library for .NET でリフレッシュトークンを永続化する

Microsoft Authentication Library for .NET(MSAL.NET) は、リフレッシュトークンを内部でキャッシュしていて、それを使ってアクセストークンを再取得できる。 ただ、キャッシュはメモリ上にしかないので、そのままだとプロセス終了したら失われてしまう。次…

Microsoft Authentication Library for .NET でアクセストークンを再取得して Microsoft Graph を呼び出す

Azure.Identity でアクセストークンを再取得する方法を見つけることができなかったので、Azure.Identity が依存している Microsoft Authentication Library for .NET(MSAL.NET) を試してみた。 using System.Net.Http.Headers; using Microsoft.Graph; using…

NumSharp で 2 層ニューラルネットワーク

「ゼロから作る Deep Learning」を読んで C# でゼロから作ってみる続き。これから先は C# で初挑戦になる。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon NumSharp を使って 2 層ニューラ…

NumSharp でニューラルネットワークに対する勾配

「ゼロから作る Deep Learning」を読んで C# でゼロから作ってみる試みは、NumSharp を使って最初からやり直して、ようやく4章終盤まできた。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazo…

NumSharp で勾配下降法

「ゼロから作る Deep Learning」を C# で粛々と写経中。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon NumSharp を使って、機械学習で使う勾配下降法を実装してみた。 using NumSharp; va…

アクセストークンを指定して Microsoft Graph を呼び出す

Microsoft Graph を使って Microsoft Todo の CRUD ができることは確認したけど、アクセストークンは単独で取得しておきたい。そして、そのアクセストークンを GraphServiceClient で使いたい。 GitHubでソースコードを見たところ、アクセストークンは、Inte…

NumSharp で勾配

「ゼロから作る Deep Learning」を読んで、Python ではなく C# でゼロから作ってみる試みの続き。ちょっと間が空いてしまったな。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon 4章の勾配…

Microsoft Graph で Microsoft Todo の CRUD

プライベートで使っている Todo アプリを、Todoist から Microsoft Todo に移行しようかと検討中。もし移行するとなると、リストやタスクを入力し直すのは面倒だ。移行用にプログラム書きたいところ。 Microsoft Todo なら、Microsoft Graph という RESTful …

NumSharp で損失関数

「ゼロから作る Deep Learning」を読んで、C# でゼロから作ってみる続き。MNIST データセットを使ったニューラルネットの実装は、配布されているパラメーターのファイルが Pickle 形式だったのでスキップ。損失関数に進むことにした。 ゼロから作るDeep Lear…

NumSharp を使って mnist.py を C# に移植

「ゼロから作る Deep Learning」を読んで、Python ではなく C# でゼロから作ってみる試み中。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon 今回は、本書「3.6.1 MNIST データセット」で …

NumSharp で 3 層ニューラルネットワーク

「ゼロから作る Deep Learning」を読んで、Python ではなく C# でゼロから作ってみる続き。今回は 3 層ニューラルネットワークを実装してみた。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAma…

NumSharp で活性化関数とソフトマックス関数

『ゼロから作る Deep Learning』を読んで、Python ではなく C# でゼロから作ってみる続き。リベンジ。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon 今回はニューラルネットワークで使う…

NumSharp でパーセプトロン

以前、「ゼロから作るDeep Learning」を読みながら、C# でゼロから Deep Learning を実装する試みをやっていた。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon 当時、行列の計算には Math…

.NET のクラスライブラリ設計 改訂新版

「.NET のクラスライブラリ設計」が 12 年ぶりに大改訂された。本書は、.NET の BCL 開発チーム直伝、BCL のようなクラスライブラリを設計する際のガイダンス集だ。 自分の場合、仕事ではアプリケーションよりも、内製フレームワークやクラスライブラリを開…

デスクトップアプリで OAuth 2.0 のAuthorization Code Flow に対応する冴えたやりかた

アプリが Web API を呼び出すためのアクセストークンを取得するとき、OAuth 2.0 の Authorization Code Flow に対応することになると思う。 Web アプリなら、普通にリダイレクト先を用意すればいい。モバイルアプリでも、Custom URL Scheme によってアプリを…

DI コンテナに登録済みのサービスを装飾する

調査目的で、ASP.NET Core MVC とかが DI コンテナに登録したサービスに処理を挟み込みたいことがある。そんな時は、下記のようなクラスと拡張メソッドを用意。 internal class Decorator<TService> { public TService Instance { get; set; } public Decorator(TServi</tservice>…

WCF でテレメトリを Azure Application Insights に送信する

Microsoft Azure の仮想マシンで動かしている WCF サービスでも、テレメトリを Azure Application Insights に送りたくて、方法を調べたら次のがヒットした。 github.com ただ、こいつは正式リリースされてないし、そもそも開発終わってだいぶ経過してる。WC…

ASP.NET Core の CORS で許可するオリジンを動的に決定する

例えば REST API を提供していて、ブラウザ上から JavaScript で呼び出せるように、CORS 対応したい。でも、許可するのは登録してもらったオリジンだけにしたい。そんなとき。 Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyProvider を実装したクラ…

Durable Functions で一定時間待機して続きを実行

Durable Functions では、IDurableOrchestrationContext .CreateTimer を使うことで、関数の実行中に任意の時間待機できる。 docs.microsoft.com 大人の事情により、処理の途中で 2 時間待機する必要があったけど、Durable Functions のおかげでシンプルに実…