この前、C#での画面遷移処理を簡単にするには、どうすればよいかについて考えていた。私の悪い頭じゃ何も思いつかなかったので、インターネットの力を借りて色々調べてみたら、素晴らしいライブラリを公開している方が居たので紹介。
該当する記事の紹介
Usa*Usa日記さんのところのまたしてもWindowsアプリでの画面遷移フレームワークについて フォーム間での変数の受け渡しの基礎についてもチョットで公開されている。関連するページをばらつかせて投稿されている様なので、以下にまとめておく。
関連記事
- Smart.Windows.Mvc 0.3.1リリース
ライブラリの最新版を公開されている記事。
- Smart.Windows.Mvc補足
使用するまでの設定と、基本的な使い方。
- Smart.Windows.Mvc補足(2)
発展的な利用法など。発展的とは言っても、この内容を活用できなければ真の便利さは得られないだろう。
私の使用感
業務系のソフトウェアだと、ボタンを押したときに画面全体が遷移するという機能を持たせたい場合が多い。そんな時、C#だとどのように実装するかというわけなのだが。王道というか、今までの妥協策としては、同じ場所にぴったり同じサイズでPanelを設置した状態で、必要に応じてVisibleを切り替えるという手法だ。ご察しの通り、これは保守性が悪いどころの騒ぎではない。だからといって、TabControlを使うのは、どうにもユーザビリティが心配。
それらの問題点を全て改善してくれる。ボタンを押すたびに新しいウィンドウが出てくるようなシステムは、私はもう作りたくなかった。使ってみた結果、非常に使いやすく、かつ強力な機能が搭載されていると感じた。これひとつを導入することで、保守性が格段に上昇すると考えられる。
その他のシステム
大規模なシステムになってくると、Microsoftが提供している「User Interface Process Application Block」という仕組みがかなり効いてくるらしいが、その技術を習得するには多大な時間と労力がかかるということで、どうしても手を出す勇気が沸かなかった。
これは、画面遷移情報を別ファイルにまとめて記述してしまおうというものらしい。概念自体は理解できたが、その恩恵にあずかるには、余りにも適用する私のプロジェクトが貧弱過ぎた。
……文献が英語だったorz←主な理由
最後に
公開されている方の記事が、非常に丁寧に書いてくださっているため、ここでは紹介することはしないでおく。
画面遷移をC#で実装しようと考えている方は、ぜひ使ってみて欲しいライブラリである。