C#

MAUI の CollectionView でツリー表示

MAUI に標準で TreeView が無いので CollectionView で頑張ってみた。iOS だと UITableView でツリーを表現しているアプリあるし、MAUI の CollectionView でも出来るのでは、と。 using System.Collections.ObjectModel; using CommunityToolkit.Maui.Marku…

Moq で internal なクラスとインタフェースをモック可能にする

InternalsVisibleToAttribute で DynamicProxyGenAssembly2 を指定したら、internal なクラスとインタフェースをモックできた。 // Moq で internal なクラスとインタフェースをモック可能にする [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]

KubernetesClient を使って AKS で動くPod のログを取得する

そのものズバリ KubernetesClient. ReadNamespacedPodLogAsync メソッドで、Pod が標準出力に出力したログを取得できた。 using k8s; using k8s.Models; var config = KubernetesClientConfiguration.BuildDefaultConfig(); // AKS が HTTP/2 をサポートして…

証明書ストアにインストールされている証明書を WCF の TLS over TCP で使う

証明書ストアにインストールされているサーバー証明書を使って、WCF で TLS over TCP を構成するサンプル。 using System; using System.Security.Cryptography.X509Certificates; using System.ServiceModel; namespace WcfCertStoreSample { class Program…

C# で証明書を証明書ストアにインストールする

.pfx ファイルとパスワードを指定して、証明書ストアにインストールするサンプル。 using System; using System.Security.Cryptography.X509Certificates; namespace InstallCertSample { class Program { static void Main(string[] args) { if (args.Lengt…

アクセストークンを URLクエリパラメーターでも渡せるようにする

アクセストークンを Authorize ヘッダーではなく、URL クエリパラメーターで渡したい。 認証では Microsoft.AspNetCore.Authentication.JwtBearer を使っていて、何か方法があるのではと調べてみたら、案外簡単に実現できた。 var builder = WebApplication.…

Container Insights で収集されたAKS のコンテナログを検索する

AKS で動かしている Windows コンテナ内では、一応アプリが標準出力にカスタムログを書き込んでいる。 AKS のクラスタを作成したら Container Insights が有効になっていたので、保存場所になっている Log Analytics ワークスペースを見てみたら、ContainerL…

Azure RBAC を使用した Azure AD Authentication を有効にした Azure Kubernetes Service のクラスタを C# で操作する

C# で KubernetesClient を使って AKS のクラスタを操作するとき、認証情報はローカルに保存されたものを使っていたけど、本番ではそうはいかない。 AKS では認可に Azure RBAC が使えるので、例えば Azure AD でアプリを登録し、Azure RBAC で AKS のクラス…

Container Insights が収集した AKS のコンテナのメトリックを取得

Azure SDK for .NET の Azure.Monitor.Query 使えば、Container Insights が収集した AKS のコンテナのメトリックを取得できた。 www.nuget.org LogsQueryClient で Log Analytics ワークスペースに対して Kusto クエリを実行。 using Azure.Identity; using…

C# で Azure SQL Server のファイアウォール規則を操作する

Azure.ResourceManager.Sql を使って、Azure SQL Server のファイアウォール規則を操作できた。 www.nuget.org using Azure; using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManager.Sql; const string SubscriptionId = "<サブス…

C# で Microsoft Azure のリソースのメトリック取得

Microsoft Azure のリソースのメトリックを取得したかった。Azure SQL Database のとか。 Azure SDK for .NET の Azure.Monitor.Query 使えば、任意のリソースのメトリックを取得できた。 www.nuget.org using Azure.Identity; using Azure.Monitor.Query; u…

Azure Kubernetes Service の Kubernetes クラスタを C# から操作する

はじめに Azure Kubernetes Service(AKS) をプログラムから操作する必要があり、 KubernetesClient を使えばリソースの作成や更新ができそうだったので試してみた。 www.nuget.org github.com 認証情報を取得 操作対象は AKS なので、まずは認証情報を取得し…

C# で Affine/Softmax レイヤの実装

C# で「ゼロから作るDeep Learning」に挑戦中。5 章も 5.6 節まで来た。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon 今回も Affine レイヤと Softmax-with-Loss レイヤを C# で写経する…

C# で Azure 仮想ネットワークゲートウェイのポイント対サイトで使うルート証明書を追加する

Microsoft Azure 仮想ネットワークゲートウェイのポイント対サイトで使うルート証明書を、 C# で Azure SDK を使って登録してみた。 www.nuget.org 公開証明書データを渡すときに使う BinaryData が曲者だった。 公開証明書データの文字列中の改行文字を削除…

Numpy.NET で Sigmoid レイヤー

C# で「ゼロから作るDeep Learning」に挑戦中。現在地点は 5.5.2。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon 今回は Sigmoid レイヤーを写経するだけ。 using Numpy; public class Si…

C# でPsPing もどき

Azure で運用している Web サービスに手元のマシンからアクセスできないとき、まず ping を試したいところだけど、Azure は ping を通さない。そのため TCP 版 ping とも言える PsPing を使うことになる。 PsPing っぽいことを C# のプログラムでも行ないた…

Numpy.NET で ReLU レイヤー

C# で「ゼロから作るDeep Learning」に挑戦中。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon 今までは Numpy の .NET 移植版である NumSharp を使っていたけど、開発は停滞してるっぽい…

NumSharp で加算レイヤー

C# で「ゼロから作るDeep Learning」に挑戦する続き。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon 今回は加算レイヤーを追加し、乗算レイヤーと組み合わせてみた。 using NumSharp; NDA…

NumSharp で乗算レイヤー

C# で「ゼロから作るDeep Learning」に挑戦する続きは 5 章に入った。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon NumSharp を使って、乗算レイヤを実装してみた。 using NumSharp; NDA…

C# で自己署名証明書を生成する

.NET 6 で試したら、標準ライブラリだけで自己署名証明書を生成できた。 using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; var ecdsa = ECDsa.Create(); var request = new CertificateRequest( subjectName: "cn…

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…