ピースペース

knockout.jsを学習する動機

leave a comment »

単純に、MVVMを使ってClient側のコードをすっきりさせたい!は、もちろんある。
それで、silverlight(MVVM)に投資した時間もいくらかは回収できるし…
もっと大きな動機は、売上伝票モデルの編集パターンを確立したい!だ。

売上明細をプロパティにもつ売上伝票(いわゆるMasterDetail)モデルの編集は、
オラには、振り返ると、ずっと、いつも、もっとも重要なテーマであった。
Accessでアプリケーションを作成し始めたときも、
開発ツールをDelphiにしたときも、
forスマートクライアントのado.netなDataSetサービスを作成したときも、
Silverlight&RIA Servicesでも。
そのプラットフォームでのMasterDetailの更新パターンをある程度すっきり整理できれば、
(同時実行制御を考慮した伝票更新トランザクション処理を整理できれば)
ひと区切りできたことになる。のかな。

で、asp.net MVC。
でちょっと前に作成したある伝票の編集処理があまりに酷くて;;; 見直しせねばなるまい!
てことで、どうしたいのか?を考えてみた。を整理して、結論は、
明細配列プロパティを持つ複合モデルだろうが、明細行のない単純なモデルだろうが、
モデルはモデル。同じように扱いたい。
ようするに、複合モデルの複雑さをControllerに持ち込まない!ということ。
言い換えれば、スキャフォールディングが作成するControllerのコードはほぼそのままのまま、
売上伝票保存で、売上明細の追加・修正もちゃんと保存されるようにしたい!てことになる。

それはどうゆうことかというと、売上明細に関わる、
UIまわりの追加事項は、ViewとScriptに、
DB更新まわりの追加事項は、リポジトリ(または他のコマンダー)に、
閉じ込めて完結させるということになる。

自然、Client側のScriptコードは増える。
が、明細行追加をAjax更新するにしてもそれは同様、むしろ、
その際の余分なClient-Server間通信を不要とするのは、後からコードを追うときに随分助かるようになるはず。
(ClientコードとServerコードの相互の依存度が下がる)
でもって、そのClient側コードをさらにシェイプアップする。のをknockoutする。と言おう!

てことで、やっとknockoutの動機がはっきりしました。
なにかを始めるときに、いちいちその動機までさかのぼって整理してかかる必要があるのは、オヤジの悪い癖;;
でもまあ、それで踏み出せるなら…

Written by nasu38yen

2013年8月19日 @ 10:41 AM

カテゴリー: 未分類

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。