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

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

2024-01-01から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…

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

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

最小限のタスク分担管理をMicrosoft Plannerでやる使い方

概要 ちょっとした短期の作業を複数人でやる。標準のプロジェクト管理ツールを使うほどじゃないが、タスクの見える化と分担はしたい。それくらいのニーズをMicrosoft 365のPlannerで満たすための最低限の使い方を紹介します。Plannerを本格的に使う場合にで…

C# 12のCollection Expressionsでbyte[]の初期化がちょっと楽になった

C# 12 から導入されたCollection Expressionsは左辺の変数の型を考慮してくれるようなので、byteを宣言・初期化する時にとても便利だという話です。 次のような書き方はコンパイルエラーになります。これは、右辺の型がintと仮定されて、それをbyte[]へ代入…

WPFのタブオーダーを、Panel単位で並べ替える方法

概要 WPFでPanelがいくつも並ぶ画面を作った場合に、Panel単位でタブオーダーを並べ替えたいという状況はよくあると思います。とはいえ、全てのコントロールにタブオーダー指定をするのは避けたい。WPFではそれを実現できるタブオーダー指定の方法があり、上…

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

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

GenericHostのILoggerでDebug以下のログを出す時に引っかかりがちなポイント

概要 .NET 8のテンプレートでWindowsサービスを作成した場合に(つまりテンプレートでGenericHostを使った場合に)、ILoggerでDebug,Traceなどの詳細レベルのログを出そうとすると、デフォルトでOFFになっている上にフィルタの階層が複数あるので、意外なと…

.NET 8でのWindowsサービスの作り方

概要 .NET(Core)になってから、Windowsサービスの作り方は.NET Frameworkの時とはだいぶ違うものになりました。ASP.NETをベースにしたGenericHostを使用するのが基本になりましたし、インストール方法も.NET Framework以前のものに戻っています。 Windowsサ…

スレッドセーフ等が付いたキューとして使えるSystem.Threading.Channels (2)応用の紹介編

概要 前回の記事で、排他などもできる便利なキューとしてSystem.Threading.Channelsを使うという切り口で、基本的な使い方の紹介をしました。今回は、ちょっとした応用の使い方を書こうと思います。 デリゲートを入れて、処理の待ち行列にもできる 「キュー…

PowerToysのAdvanced Pasteが便利!これでMS 365とMarkdownが繋がるのでは?

概要 今回のMicrosoft Buildでは、地味ながら開発環境が便利になる話がけっこう出ていました。 中でもPowerToysのAdvanced Pasteが、MS 365との組み合わせで「使える!」と思いました。 Markdownのテキストファイルと、Word等のMS 365のファイルが混在してい…

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

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

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

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

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

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

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

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

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

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