記事一覧 - 新しもの好きプログラマの耳より情報ブログ

新しもの好きプログラマの耳より情報ブログ

仕事でもあるプログラミングについて役に立ちそうな情報を発信していこうというブログです。役に立たなそうな情報はfacebookで。

Windows App SDKをWPF等に入れた場合のランタイム配布について、ポイントを調べてまとめました

概要 Windows App SDKをWPFなどに組み込んで従来通りのインストーラで配布しようとすると、ランタイムを配布する必要があります。これが意外と気をつけるべき点が多くて調べるのに手間取ったので、調べたことをまとめます。 最初に結論まとめ VC++ランタイム…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう2年以上続けています。 参加…

SteamのゲームURLを貼った時に、英語ではなく日本語でプレビューする方法

Steamのゲームが気に入った、紹介したい!という事は結構あると思います。ありますよね? この時にSlackなどのプレビューできる機能があるところへURLを貼ると、英語のプレビューになってしまいます。次のような感じです。 https://store.steampowered.com/a…

C#のEventWaitHandle待ちをTaskに変換して混在を解決する方法(Taskの中で単に待つと問題が起きます)

概要 TaskとWaitEventHandleが混在している場合に、Taskに揃えようとして手軽に「Task.Run()の中でWaitEventHandle.Wait()」という実装にしてしまうと、問題が起きます。ぱっと見ではそんなに問題がありそうなコードには見えないので、意外と引っかかりがち…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう2年以上続けています。 今日…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう2年以上続けています。 今日…

コンソールアプリにGenericHostを入れて便利に最新機能を使う(コード例を紹介)

概要 私の記事でも何度か触れていますが、GenericHost(WebHost)はとても便利な共通インフラなので、慣れると常に使っていきたくなります。しかし、さすがにコンソールアプリでは使えない・・・と思うかもしれませんが、使えます。コンソールアプリへのGene…

WPFにGenericHostを入れて便利に最新機能を使うための、最小限の組み込み方法

概要 .NETの最近の新機能を入れようとすると、サンプルで当たり前のようにDI(Dependency Injection)やGenericHost用のExtensionsが出てきます。しかしWPFのテンプレートは真っ白で、そんな物は影も形もありません。 GenericHostを組み込んでしまえばそうした…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう1年以上続けています。 私は…

TaskFactory.StartNewをWaitする場合に、うっかりTask<Task>を待つとすぐ通過してしまうので注意(気付きづらいうっかりミスの紹介)

概要 タイトル通りうっかりミスでTaskの完了を待てていなかったという話なんですが、見た目に分かりづらくかなり恐ろしいなと思ったので、紹介します。皆さん同じ落とし穴に気をつけてください。 最初に結論まとめ 次のコード、じつはawait task;でTaskの完…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう1年以上続けています。 今日…

C#のUnitTestで、ILogger<T>のモックを簡単に作る方法(GenericHostで使える)

概要 UnitTest、書いてますか? GenericHostやWebHostを使っている場合、テストコードを書くためには、必ずILogger<T>のモックが必要になると思います。これを手軽に作成する方法を書きます。 最初に結論まとめ こんな感じの共通クラスでCreateLogger<T>メソッドを</t></t>…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう1年以上続けています。 今日…

MS365のOutlook(Web)では、ドラッグするだけで添付ではなくOneDriveリンクでファイルを手軽に送信できる(ただし注意点1つあり)

概要 PPAPはもちろん、メールにファイルを添付するということ自体も、だいぶ古い作法扱いになってきたと思います。全てメールサーバーが上手いことやってくれるような大規模システムを使っているところはともかく、普通くらいの運用だと、会社で契約している…

VRもくもく会を今週もやりました(かろうじて)

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう1年以上続けています。 とい…

C#のTaskの同時実行数を制限したい場合、TaskSchedulerをちょっと拡張すれば実現できます

概要 C#のTaskの同時実行つまりTaskSchedulerは、スレッドプールを使って環境や状況に合わせた同時実行数を自動で決めて効率よく実行してくれます。とはいえ、「この処理は負荷を下げたいので、最大2つの同時実行にしたい」など手動で細かい制御をしたい場合…

Teams会議の背景カスタムは、Webアプリ版でもOBSと組み合わせればできる

概要 Teams会議の背景に独自の画像を使う機能、使っている人もいると思います。しかし、Webアプリ版ではこの機能が使えないようです。デスクトップアプリ版をインストールせずに使いたい場合は困るところです。 OBS Studio(以下OBS)とそのプラグインを組み…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう1年以上続けています。 とい…

WPFの多重起動の処理は、自作しなくてもWindows App SDKで簡単にできる

概要 Windowsでデスクトップアプリを作ると、必ずついて回るのが「多重起動されたらどうするか」です。エディタなどの自由度の高いアプリを除けば、たいていはユーザーの混乱を避けるために多重起動禁止、できれば多重起動時に「すでに起動しているウインド…

WPFでもWin11っぽいUIを作れるFluentテーマを使う(ただし.NET 9以降)

概要 今年春のBuildでWPFとWin UI 3の併用の方針がはっきりと打ち出されたためか、Win UI 3前提だった機能がWPFでも使えるようになってきています。(最新の体験を実装したいならWinUI、既存資産を生かすならWPF、という使い分け方針が語られていました) そ…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう1年以上続けています。 私は…

Entity Framework CoreのマイグレーションがWindows SDKバージョン指定プロジェクトでエラーになる問題の解決方法

概要 Entity Framework Coreを使う場合に、Windows向けのプロジェクトでマイグレーションがエラーになるという問題にぶつかったので、その解決方法です。 解決方法 プロジェクトのターゲットに、次のようにWindowsSDKのバージョン指定が入っている場合に発生…

proxmox(VMWare)のWindowsでのUSBリダイレクトは、最新版のvert-viewerでは動かないので注意(2024/10/19時点)

概要 proxmox(VMWare)では、2024/10/19現在、SPICEを使うことでWindowsVMでのUSBリダイレクトも可能となっています。しかし、実際に手順通りに最新版をダウンロードして動かすと上手く行きません。解決方法が分かったので、まとめます。 最初に結論まとめ 解…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう1年以上続けています。 私は…

Entity Framework Coreで、同じプロジェクトに複数のDBContextを入れる場合のマイグレーションの使い分け方

概要 Entity Framework CoreのCode Firstでは、DBContextを継承した型でDBのテーブルを定義すると、コマンドでDBのマイグレーションをしたりそのためのSQL文を出力できます。しかし、1つのプロジェクトで複数のDBを扱いたい場合は、複数のDBContext派生型を…

Taskを返すeventをawaitで待ってはいけない(気付きづらいうっかりミスの紹介)

概要 C#のeventは割と基本的な機能なので、気軽に使っていると思います。しかしawaitと組み合わせたら、意外なところで罠にはまったので、気をつけましょうという事で紹介です。 最初に結論まとめ Taskを返すタイプのeventをawaitで待った場合、eventに登録…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう1年以上続けています。 今日…

FS050WにAndroidアプリ(公式の設定アプリ)から接続できない&eSIM登録できない問題の解決方法

FS050WというモバイルWiFiルーターを買いました。評判も良いようですし、軽く使ってみた範囲では不満も無く満足しています。 ただ、購入して初期設定のために最初にAndroidアプリ(公式の設定アプリ)を使う、という導入の時点で引っかかりがちな、厄介な挙…

C#のMoqで拡張メソッドをモック化して、IServiceProviderのモックを作る方法

概要 NUnitなどでUnitTestを書く場合に、インターフェース部分にモックを与えるためにMoqを使っている人は多いと思います。これの意外な弱点として、拡張メソッドをモック化することができません。すると、GenericHost(DI)の使い方次第では頻出となるIServ…

保守性(変更の容易さ):メソッドの外からすべてをコントロールするのをやめよう

概要 コードの保守性を良くするための内部設計というか、コードの書き方のテクニックを一つ紹介します。ここで言う保守性は、変更の容易さや影響の少なさです。 そういう話については、体系的かつ汎用的な法則としてまとめてある本は良著がいくつもあります…