プログラミング
C++でPOCOフレームワークを使う際のロギング機能(Poco::Logger)の実装方法を、具体的なコードと設定ファイルのサンプル付きで徹底解説します。`Poco::Util::Application`を継承したクラスでの初期化方法、`printf`形式のフォーマット指定で陥りがちな罠、そ…
Python(FastAPI)で作成したRedfishシミュレータを、C++とPOCOフレームワークで再実装する過程を解説。VS Codeを中心としたモダンな開発環境なら、C++でも手軽にWebサーバーを構築できることを示します。POCOの基本構造、CMakeを使ったビルド、スマートポイン…
OpenSSLの`enc`コマンドで生成した暗号文を、C#/.NET 8で複合化、またその逆を行いたい開発者向けの技術ガイドです。本記事では、AES-256-CBC方式において、PBKDF2+SHA256(現行)とMD5(旧式)の両方の鍵導出方法に対応したC#コードを詳細に解説。OpenSSLコ…
Redfish APIのテストや開発に使える、精巧なシミュレータ(モックサーバー)をPythonとFastAPIで簡単に構築する方法を解説します。WSL2/Ubuntu環境でFastAPIをセットアップし、Redfishの各エンドポイントに対応するAPIを定義する手順を紹介。さらに、C#の再…
.NET 6のコンソールアプリからWin32 APIを呼び出し、プログラムでディスプレイの解像度を変更する方法を解説します。`DllImport`属性を使ったAPI関数の定義、`StructLayout`での構造体マーシャリング、そしてコンソールアプリでWinFormsライブラリを参照して…
.NET 6環境のC#からWin32 APIを呼び出す方法を、Windowsタスクバーの表示/非表示を切り替えるサンプルを通じて解説します。`DllImport`属性を使ったAPI関数の定義、`StructLayout`での構造体マーシャリング、そして`SHAppBarMessage`関数で実際にタスクバー…
Redfish APIの複雑な入れ子構造を、C#とRestSharpを使って効率的に全件取得・マージする方法を解説します。前回のファイルベースの実装を改良し、`@odata.id`を再帰的に辿ってREST APIをクロールする実践的なコードを紹介。自己署名証明書を扱う際の注意点も…
Redfish APIなどで見られる、`@odata.id`によってリンクされた複雑な入れ子構造のJSONを、一枚の巨大なJSONにマージする方法を解説します。C#とNewtonsoft.Jsonを使い、再帰呼び出しによってリンクを自動的に辿り、全ての情報を統合するアルゴリズムを具体的…
REST APIのモックを手軽に作成したい開発者向けに、`json-server`を使った簡単セットアップ術を解説します。WSL2/Ubuntu環境でNode.jsのインストールから始め、`json-server`の導入、データ定義用のJSONファイル作成、そしてサーバー起動までの全手順を網羅…
.NET 6を使い、WSL2/Ubuntu上にgRPCサーバーを構築し、Windows上のクライアントから接続する手順を解説します。`dotnet new grpc`コマンドでのプロジェクト作成から、外部アクセスを許可するための`launchSettings.json`の手動設定、そしてWSL2のIPアドレス…
.NET 6でWCFの後継となるgRPCを始めるための実践ガイドです。Visual Studioのテンプレートを使い、gRPCサーバーとクライアントを作成。最も重要なポイントである、サーバーをlocalhost以外(0.0.0.0)で待ち受けるための`launchSettings.json`の設定変更や、…
JavaScriptの`window.open()`でポップアップから更に別のポップアップを開こうとすると、元のウィンドウが上書きされてしまう問題に悩んでいませんか?この記事では、その原因が第三引数(options)の指定漏れにあることを解説し、`menubar=no`などを加える…
EdgeのIEモードで動作するレガシーシステムで、Unicode入力の文字化けに悩んでいませんか?この記事では、JavaScriptライブラリ「encoding.js」を使い、サロゲートペア(𠮷など)を含むUnicode文字列がShift-JISに変換可能か事前にチェックする方法を解説し…
.NET 6のWPF開発でMVVMパターンを導入する際、どのフレームワークを選ぶべきか?本記事では、MVCとMVVMの違いを解説しつつ、主要なMVVMフレームワークである「Prism」と「Livet」を比較検討します。歴史、情報量、他ライブラリとの連携性から、なぜ「Prism」…
C#の自己参照クラス(連結リストなど)をJSONにシリアライズするとどうなるか、実験を通して解説します。片方向の参照は美しい入れ子構造になりますが、双方向の参照は「循環参照エラー」を引き起こします。この記事では、エラーが発生する理由と、`[JsonIgn…
EF Coreを使ったデータベース比較の後編。本記事では、.NET 6環境でSQL ServerとOracleという2大データベースに接続する方法を解説します。Dockerを使った複雑な環境構築手順から、`IDENTITY_INSERT`エラーといった各DB特有の注意点、EF Coreで生成されるDDL…
ntity Framework Coreは様々なデータベースに対応しますが、実際にどのような違いがあるのでしょうか?この記事では、.NET 6環境でSQLite, PostgreSQL, MySQLの3つのデータベースにEF Coreを使って接続し、`EnsureCreatedAsync`で生成されるDDL(テーブル定…
.NET 6のMinimal APIへの移行で、`Startup.cs`や`Main()`メソッドが廃止されたことに戸惑っている開発者向けに、NLog、JSNLog、PostgreSQL (EF Core) といった既存のライブラリを、新しい`Program.cs`にどのように設定・統合するかをステップバイステップで…
.NETの真価であるクロスプラットフォーム開発を手軽に体験しませんか?この記事では、Windowsで開発したNLogを含む.NETコンソールアプリを、WSL2/Ubuntu環境へコピー&ペーストし、`dotnet run`コマンドだけで実行する簡単な手順を解説します。さらに、Linux…
C#開発で多用される`Console.WriteLine`でのデバッグに限界を感じていませんか?本記事では、なぜ熟練開発者がロギングライブラリ「NLog」を選ぶのか、その理由を解説します。Visual Studioでの導入から、設定ファイル(NLog.config)によるファイル・コンソー…
NLogやLog4Netのログをリアルタイムで表示できる便利ツール「Log2Console」ですが、日本語が文字化けする致命的な問題がありました。本記事では、この文字化けを解決した修正版の導入方法と、その効果を解説します。修正済みの実行ファイルはGitHubで公開中…