「Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
リッチクライアントの場合のポイント
リッチクライアントでは、以下の画面遷移が可能である。
UserControl?切り換える、Webページライクなウィンドウ内の画面遷移
画面間インターフェイスとして以下を使用できる。
グローバル変数のハッシュを使用する場合は(WebアプリケーションのSessionのようにタイムアウトも存在しないので、特に常時起動し続けるようなアプリケーションでは)、メモリの冗長な消費ないように、使用済みのハッシュ・エントリを削除するように管理する必要がある。また、画面を複数起動する場合、画面インスタンス毎にハッシュ・エントリを分割するなどの工夫が必要になる。
画面のプロパティを使用する場合は、画面間でデータを受け渡す場合、(親画面などの)受け取り側が画面インスタンスへの参照を保持している必要があるので、特にモードレス画面間の情報受け渡しにおいて実装方法の工夫が必要になる。画面を複数起動する場合、画面インスタンスの保持と解放(画面のCloseイベントなどを検知してメンバ変数などに保持している画面参照を破棄するなど。)
大量の入力フィールドを区分毎に分割する場合に使用する。
MDIを使用して分割する。
複数の小ウィンドウ(同一画面クラスの複数インスタンス)を、
1つの親ウィンドウの管理下で表示させる場合に使用する。
※ WPFでは標準コントロールではMDIをサポートしないので注意する。
リッチクライアントにおいて高い操作性の要件に対応して、イベントによって状態変更を行うプログラムを記述した場合、
Webアプリケーションと比べ、イベントチェーンの発生によって予期せぬ状態(動作)に陥ることが多い。
このため、TextChanged?、CheckedChanged?、Selected Index Changedイベントなどでの状態変更は行わず、
メインの関数(ボタンのクリックイベントのイベントハンドラ等)から呼び出す「状態変更関数」と「状態フラグ」を状態毎に用意して状態変更を行う方式が良い。