yotiky Tech Blog

とあるエンジニアの備忘録

.NET

Azure Spatial Anchors の Overview

TL;DR Azure Spatial Anchors の概要をざっくり把握するための覚書 関連する技術、話題の概要 チュートリアルを突破するためのコツ 目次 TL;DR 目次 Azure Spatial Anchors(ASA) とは 保存 データ 参考 有効期限 取得 参考 正確さ 処理時間 認証と承認 価…

ASP.NET Core と Azure App Service のアップロードのサイズ制限

目次 目次 検証環境 ASP.NET Core App Service ホスト リクエスト本文のサイズ制限 IIS Kestrel マルチパート本文のサイズ制限 おまけ (Azure Functions) 参考 検証環境 APS.NET Core 5.0 Web アプリ(MVC) Azure App Service ASP.NET Core APS.NET Core で…

C# - Path を操作する

目次 目次 検証環境 Path を操作する エスケープと逐語的文字列リテラル セパレーター ディレクトリとファイル 連結と結合 使用できない文字 ファイル名の自動生成 絶対パスと相対パス Path クラス Uri クラス Uri クラス 絶対パス 相対パスを使って対象の絶…

Azure SendGrid を使ってメールを送信する

目次 目次 アカウントの作成 SendGrid のセットアップ API Key の作成 実装 参考 アカウントの作成 無料枠を使いたい場合は、SendGridのサイトからアカウントを作成する必要がある。 2021年1月時点*1で、Azure Marketplace から作ろうとした場合に無料プラン…

SendGrid を使ってメールを送信する (Not Azure)

目次 目次 アカウントの作成 SendGrid のセットアップ API Key の作成 実装 参考 アカウントの作成 無料枠を使いたい場合は、SendGridのサイトからアカウントを作成する必要がある。 2021年1月時点*1で、Azure Marketplace から作ろうとした場合に無料プラン…

Azure Functions で Azure Cosmos DB (Table) を操作する

目次 目次 検証環境 実装 テーブル作成 挿入 取得 削除 補足 参考 関連記事 検証環境 Azure Functions v3 Microsoft.Azure.Cosmos.Table v1.0.8 古いライブラリに注意 WindowsAzure.Storage は非推奨 Microsoft.Azure.CosmosDB.Table はまもなく非推奨 実装 …

Azure Functions で Azure Queue Storage を操作する

目次 目次 検証環境 実装 キューの作成 メッセージの追加 メッセージの表示 メッセージの更新 メッセージの受信 メッセージの削除 キューの削除 その他 メッセージのエンコード 関連記事 検証環境 Azure Functions v3 Azure.Storage.Queues v12.6.0 実装 NuG…

Azure Functions で Azure Table Storage を操作する

目次 目次 検証環境 実装 挿入 取得 削除 参考 関連記事 検証環境 Azure Functions v3 Microsoft.Azure.Cosmos.Table v1.0.8 古いライブラリに注意 WindowsAzure.Storage は非推奨 Microsoft.Azure.CosmosDB.Table はまもなく非推奨 実装 NuGet でライブラリ…

Azure Functions で Azure Blob Storage にファイルを保存する

目次 目次 検証環境 実装 関連記事 検証環境 Azure Functions v3 Azure.Storage.Blobs v12.8.0 実装 Azure Functions のプロジェクトに NuGet で「Azure.Storage.Blobs」をインストールする。 using Azure.Storage.Blobs; using Azure.Storage.Blobs.Models;…

Azure Functions で Azure Blob Storage からファイルを取得する

目次 目次 検証環境 実装 関連記事 検証環境 Azure Functions v3 Azure.Storage.Blobs v12.8.0 実装 Azure Functions のプロジェクトに NuGet で「Azure.Storage.Blobs」をインストールする。 using Azure.Storage.Blobs; private static string connectionS…

Azure Functions で MeCab.DotNet を使って形態素解析

目次 目次 概要 インストール サンプル実装 プロジェクト設定 Azure Blob Storage にアップロード 実行 概要 Azure Functions で形態素解析を行うため MeCab.DotNet を使用します。こちらのライブラリはローカルディレクトリから辞書ファイルを読み込むため…

MeCab.DotNet にユーザー辞書を追加する

目次 目次 インストール 辞書の作成 実装 参考 関連記事 インストール 本家 MeCab より Windows 用のバイナリパッケージをダウンロードします。 ダウンロードしたインストーラーを実行します。 今回は辞書の文字コードは「SHIFT-JIS」を選択。 辞書の作成 以…

C# で MeCab.DotNet を使って形態素解析

目次 目次 インストール サンプル実装 関連記事 インストール NuGet で「MeCab.DotNet」をインストールします。 MeCab.DotNet は「MeCab」、「NMeCab」を .NET Core に移植したパッケージです。 github.com 以下パッケージサイトから抜粋。 "MeCab" は、日本…

C# 8.0 の主な新機能

目次 目次 リリース時期 null 許容参照型 機能 有効化/無効化 csproj ファイルにオプションを指定する #nullable enable|disable|restore [warnings|annotations] ! (null 免除) 演算子 フィールドやプロパティでの利用 null 許容値型との違い 建設中 コード…

C# の新機能

目次 C# 4.0 C# 5.0 C# 6.0 C# 7.0 C# 7.1 C# 7.2 C# 7.3 C# 8.0 C# 9.0 Unity の対応表 Unity Runtime version (Equivalent) C# version Compiler 2017 .NET 3.5 C# 4.0 mcs (Mono) .NET 4.6 C# 6.0 mcs (Mono) 2018.1 / 2018.2 .NET 3.5 C# 4.0 mcs (Mono)…

C# 9.0 の主な新機能

目次 目次 リリース時期 init 専用セッター Records トップ レベル ステートメント ターゲットからの new 型推論 ラムダ式の引数を破棄 ローカル関数への属性適用 パターンマッチングの拡張機能 コード置き場 リリース時期 .NET 5 init 専用セッター public …

WPF から Application Insights に Telemetry を送信する

目次 目次 Application Insights 非HTTPアプリケーション向け 検証環境 手順 パッケージのインストール 実装 実行結果 Application Insights Application Insights は Azure Monitor の機能であり、開発者や DevOps プロフェッショナル向けの拡張可能なアプ…

WPF - DesignerProperties

DesignerProperties はデザインモードか判定に使われるクラスですが、手元の環境で上手く機能しなくなっていたので簡単に調査した結果です。 目次 目次 検証環境 内容 使い方 動作確認 WPF (.NET Framework) WPF (.NET Core) 検証環境 Visual Studio 2019 (1…

WPF - CommandLocker

Button にバインディングしたコマンドを共通してロックする機構 CommandLocker。 github.com ロックの種類は、Guidをキーとしたシンプルなロックと、ロックする時に渡した値をアンロックする際にも渡す必要があるトリガーロックの2種類です。 トリガーロック…

C# - 固定サイズのキュー

ラッパークラス 最小限の実装。Queue がラップされるので Queue で必要な機能は全部中継する必要がある。 public class FixedSizeQueue<T> { private ConcurrentQueue<T> queue = new ConcurrentQueue<T>(); private object lockObject = new Object(); public int Si</t></t></t>…

HoloLens2 で MagicOnion v3 を動かす

目次 目次 構築環境 補足 Unity のベース構築 gRPC のコード修正・ビルド Grpc.Core.dll grpc_csharp_ext.dll grpc_csharp_ext_dummy_stubs.c 動作確認 構築環境 MagicOnion.Client.Unity.unitypackage 3.0.12 MessagePack 2.2.60 MagicOnion.Hosting 3.0.13…

HoloLens2 で入力方法として QRコード を使う

前回「HoloLens2 でQRコードのスキャンを実装する」では、QRコードスキャンの実装方法を紹介しました。 QRコードのスキャンが使えると、QRコードを介してアプリに文字列を流し込めるようになります。 試しに、入力フィールドの横にQRコードを読み込むボタン…

WPF - MahApps の覚書

目次 目次 前提 WindowCommands ListBox HamburgerMenu 参考 ボタンとして使用する ToolTipを表示する 前提 MahApps.Metro MahApps.Metro.IconPacks App.xaml でリソースを読み込む。 <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> </resourcedictionary.mergeddictionaries></resourcedictionary></application.resources>

ZXing を使ってQRコードを動的に生成して表示する

ZXing は "zebra crossing" の略らしく、ゼブラクロッシングと読むのが正解っぽい。 検証環境 導入 実装 パラメータ 実行 検証環境 WPF .NET Core 3.0 ZXing.NET 0.16.6 導入 nuget で ZXing.NET をインストールします。 System.Drawing.Common も使うので入…

WPF - FluentWPF の使い方

Fluent Design System に関しては次のページの通り。 docs.microsoft.com FluentWPF の基本的な使い方はREADMEにあります。 github.com 作者のブログも少し古めですが参考になります。 sourcechord.hatenablog.com ただし、現状 MahApps.Metro との併用は Me…

WPF - XAML ほかの覚書

目次 目次 リソースを使う 外部リソースを定義する プリミティブ型の利用 Grid の RowDefinitions / ColumnDefinitions の長さを定義する スタイル 使い方 継承 一般 RelativeSource Parameter などに struct を渡す ショートカットキー Loadedイベントでコ…

Unity - Unityを外部プロセスとしてWPFでホストする(Unity as a Library)(2)

前回の記事で WPF で Unity をホストする実装例を紹介しました。 参考にさせて頂いた記事では、続きに Unity の起動画面がWindow全体に表示されてしまう問題を対処しています。 yotiky.hatenablog.com 手元でも同じように全体に表示されたため、続きのコード…

.NET - 子プロセスを確実に終了させる

実装例 こちらやここのコメント欄などが参考になりそうです。今回はQiitaの記事のコードを使わせて頂きました。 public class JobObject : IDisposable { public static JobObject CreateAsKillOnJobClose() { var job = new JobObject(); var jobInfo = new…

WPF - アプリ終了時に非同期処理を実行して終了する

環境 .NET Core 3.1 実装例 終了のイベントをフックして、非同期な後処理を呼びつつイベント自体はキャンセルし、後処理が終わったらそのままアプリが終了するようにします。 public MainWindow() { Closing += MainWindow_Closing; } private bool isCalled…

Unity - Unityを外部プロセスとしてWPFでホストする(Unity as a Library)

Unity 2019.3以降、「Unity as a Library」というAndroidやiOSのネイティブアプリに、Unityで作成したアプリをライブラリとして埋め込む機能が提供されています。 この中にはWindowsアプリケーションも含まれています。Windows では以下の3つの方法が紹介さ…