Smart.Windows.Mvc 0.3.1リリース

バグ報告があったので対応版をリリースしました(・ω・)ノ
http://usaxusa.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28548

バグ

  • 最初のビューでViewContextAttributeが動作しない問題

改善

  • Controller.Pop()にパラメータありのものを追加


ちなみに、ViewParameter、ViewContext、遷移時のパラメータの使い分けについてですが、自分は以下のように考えています。


まず、ある機能の画面間で使用する作業領域のデータについてはViewContextで定義します。
また、各画面はコンテキストのデータのみを意識するようにし、画面間の関係に依存しない作りになるようにします。


次に、入力画面1、入力画面2のようにシーケンスに遷移していく所や、1対1関係の親子画面のようなものについては、ViewParameterを使ってパラメータを引き継ぎます。
OnViewOpen()内のみで処理が完了するなら遷移時のパラメータでも良いですが、メンバ変数に値の設定までしてくれるViewParameterの方が、後で使うことを考えた場合に便利なので(´∀`)


最後に、遷移時のパラメータについてですが、自分はあまり使っていません(´д`;)
理由としては、パラメータがobject配列で渡されるので型付けが弱いのと、複数画面から異なる内容のパラメータが渡されてくる場合、遷移元画面によって処理を切り分ける必要があったりするためです。
なお、遷移元と遷移先画面のN対1関係で、パラメータの内容が遷移元画面によらず遷移先画面で同一になる設計で、かつ、パラメータの数が多くてそれらを個別にViewParameterで定義するのもどうかと思うような時は、遷移時のパラメータを使用するで良いと思います。*1
まあ、パラメータクラスを1つ用意して、それをViewParameterで受け渡しても良いんですけど(・ω・)


基本は、画面間の依存が発生しないように注意するって話ですね(`・ω・´)

*1:Webのイメージで言うと、検索結果画面にGETでパラメータを渡して、検索結果画面の表示処理でそのパラメータを処理するようなケースというか。