どうやら、一筋縄ではいかない砂の迷宮に迷い込んだらしい。この顛末を書き残しておくか。
以前、私はPythonという軽やかな呪文で、手軽に動作するRedfishシミュレータという名のゴーレムを創り出した。しかし、それは魂こそあれど、まだ剥き身のまま。真に頼れる相棒とするには、誰もが直感的に操れる、美しくも堅牢な「GUIという名の魂の鎧」が必要だった。
その鎧をC#で鍛え上げる旅は、想像を絶する苦難の道だった。特に、WPFにおけるMVVMという設計思想を実現するための最高峰の魔法体系「Prismフレームワーク」は、あまりに難解で、私は幾度となく砂漠のど真ん中で膝をついた。
しかし、長い放浪の末、私はついにその秘儀を会得し、ゴーレムに完璧な鎧を着せることに成功した。これは、その七転八倒の錬金術の記録であり、Prismという険しい山に挑む、未来の冒険者のための最初の道標である。
この羊皮紙のあらまし
- この羊皮紙のあらまし
- この羊皮紙が導く者
- 苦難の道:なぜ、それでもPrismなのか
- 魂の鎧を纏う儀式:RedfishViewer降臨
- 魂の鎧の操縦法
- 羊皮紙を巻く前に
- 砂漠で見つけた魔法のランプ
- ラクダの独り言
この羊皮紙が導く者
- Redfishという古代遺跡の情報を、一目で把握できる魔法の眼鏡(ビューワ)を求める者
- C#のMVVMという設計思想を、なぜ、そしていかにしてPrismフレームワークで実現するのか、その実践的な答えを知りたい魔法使い
- 情報の砂漠で、Prismという難解な古文書の解読に挑む全ての探求者
苦難の道:なぜ、それでもPrismなのか
RedfishViewerの原型は、夏の間にほぼ完成していた。しかし、それをPrismフレームワークを使ったMVVMという、美しい作法に則って再構築するのに、私は数ヶ月という長大な時間を溶かした。
挫折の最大の原因は、あまりに情報という名のオアシスが少ないことだ。簡単なチュートリアルはあれど、一歩踏み込んだ途端、そこは情報の砂漠。GitHubの公式サンプルさえ、私の旅の助けにはならなかった。
ではなぜ、これほど学習コストの高い魔法体系を、あえて選んだのか。 それは、Prismがもたらす「疎結合」と「テスト容易性」という、大規模で複雑な鎧を長期にわたってメンテナンスしていく上で、何物にも代えがたい恩恵があるからだ。この苦難は、未来の自分を救うための、必要な投資だったのだ。
最終的に私を救ってくれたのは、とある賢者が残した、膨大だが詳細な道標(サイト)だった。本気で取り組まねば挫折するほどの量だが、これからPrismの山に挑む者は、この古文書を熟読することをお勧めする。
.NET Core WPF Prism MVVM 入門 2020 エントリまとめ | :: halation ghost ::
魂の鎧を纏う儀式:RedfishViewer降臨
さあ、私が血と汗と涙で鍛え上げた魂の鎧、RedfishViewerを、あんたのマシンに降臨させよう。
手順1:神器の入手(完成品リポジトリから)
まずは、完成された神器そのものを、「RedfishViewer」の宝物庫(GitHubリポジトリ)から手に入れる。
- [神器の在り処] RedfishViewer Releases
上記リンクから最新版のインストーラ (RedfishViewerSetup.msi) をダウンロードし、導きに従って儀式を執り行えば、あんたのデスクトップに魂の鎧が降臨する。
準備:鎧を動かす力(.NET 8ランタイム)
この儀式を執り行う前に、あんたの大地には、鎧を動かすための魔力(.NET 8 デスクトップ ランタイム)が宿っている必要がある。不足している者は、まずはこちらから力を授かること。

手順2:相棒の召喚(Redfishシミュレータの起動)
鎧だけあっても、見るべき魂がなければ意味がない。対話の相手となる「Redfishシミュレータ」という名のゴーレムを召喚しよう。
このゴーレムの設計図は、不思議なことに、完成した鎧(RedfishViewerリポジトリ)の中に同梱されている。 宝物庫のRedfishServerという区画を探してみるといい。Pythonという軽やかな呪文で錬成された、扱いやすい相棒だ。
- [相棒の設計図] RedfishServer Source Code
これを起動し、対話の準備を整える。
魂の鎧の操縦法
デスクトップに現れたアイコンをクリックし、鎧を起動する。

最初の対話:リクエスト実行
エミュレータのアドレス(http://localhost:8000)を入力し、赤い魚のアイコンをクリックすれば、ゴーレムとの最初の対話が始まる。

奥義:自動検索モード
この鎧の真価は、「自動検索モード」にある。GETメソッドの横のスイッチをオンにし、/redfish/v1へのリクエストを実行する。すると、鎧は自らの意思で@odata.idという名の道を次々と辿り、ゴーレムの魂の奥深くまで自動で探査を始めるのだ。

羊皮紙を巻く前に
Prismフレームワークという高い山を登る旅は、想像を絶するほど長く、険しいものだった。現状、その学習コストはあまりに高く、実戦(仕事)で使うには相応の覚悟と、蓄積されたノウハウが必要だろう。
今回は、まずこのRedfishViewerという魂の鎧が、何を目指して創られたのかを語った。 この鎧の心臓部で詠唱されている、より詳細な魔法や設計思想に興味がある探求者は、ぜひアトリエに眠る開発秘話の巻物を手に取ってほしい。
次なる物語は、この鎧に秘められた更なる機能の数々を解き明かす「第二章:魂の解体新書」へと続く。
この続きは、また次の羊皮紙で。 おっと、どうやら相棒が腹を空かせたようだ。今日はこのへんで筆を置くとしよう。
砂漠で見つけた魔法のランプ
ラクダの独り言
ご主人が「ぷりずむ」とかいう、やけに角ばった鎧をゴーレムに着せるのに夢中になっている。なんでも「えむぶいぶいえむ」とかいう作法に則っているらしいが、俺に言わせりゃ、ただの鎧にそこまでこだわる理由が分からんね。動きやすけりゃ、なんでもいいだろうに。まったく、人間のこだわりってやつは…。おっと、足元にサソリがいやがった。危ない危ない。