GUIのアーキテクチャ
GUIのアーキテクチャ
        猪股 健太郎
 猪股   健太郎
 日本ユニシス
 MSMVP for Visual C#
 Silverlightを囲む会@東京
 @ITで連載中
「Application Architecture Guideの概要」



自己紹介
 Martin  Fowler
    “GUI Architectures”
   http://martinfowler.com/eaaDev/uiArchs.html




元ネタ
Form1.cs

            画面レイアウトと
           イベントハンドラ登録

           イベントハンドラ1
      DBアクセスして業務処理して画面更新

        イベントハンドラ2
  入力データを加工してDBアクセスして画面更新

            イベントハンドラ3
                    3
 関心の分離
 依存関係の整理
 テストしやすさの向上
 再利用性
(UI部品を交換しても
ロジックを修正せず使える)


やりたいこと
ユーザー入力の
      受け付け

                        業務処理&
                        データ管理


      画面表示


Model-View-
Model-View-Controller
Controller
    ユーザー入力の
      受け付け
                        Model
                        業務処理&
                        業務データ
       View
      画面表示


Model-View-
Model-View-Controller
Controller
  ユーザー入力の      プログレスバーの
    受け付け          進捗
                Model
               業務処理&
               タブの選択状況
               業務データ
    View        フォントの色
   画面表示


そんなことをいっても……
そんなことをいっても……
View
 画面表示


        Presentation Model
              画面データ
        プログレスバーの
           進捗
                    Model
        タブの選択状況    業務処理&
        フォントの色
                   業務データ
解決策1
解決策1
Presenter
  ViewとModelの
      仲介
                Model
                業務処理&
                業務データ
    View
    画面表示


解決策2
解決策2
 FormはViewに徹する
 Visual
      Studioと上手に付き合う
 GUIのフレームワーク
  • Composite Application Guidance
  • Smart Client Composite UI Application
    Block
  • 各種MVVMフレームワーク@CodePlex



まとめ

GUIのアーキテクチャ

  • 1.
  • 2.
     猪股 健太郎  日本ユニシス  MSMVP for Visual C#  Silverlightを囲む会@東京  @ITで連載中 「Application Architecture Guideの概要」 自己紹介
  • 3.
     Martin Fowler “GUI Architectures”  http://martinfowler.com/eaaDev/uiArchs.html 元ネタ
  • 7.
    Form1.cs 画面レイアウトと イベントハンドラ登録 イベントハンドラ1 DBアクセスして業務処理して画面更新 イベントハンドラ2 入力データを加工してDBアクセスして画面更新 イベントハンドラ3 3
  • 8.
     関心の分離  依存関係の整理 テストしやすさの向上  再利用性 (UI部品を交換しても ロジックを修正せず使える) やりたいこと
  • 9.
    ユーザー入力の 受け付け 業務処理& データ管理 画面表示 Model-View- Model-View-Controller
  • 10.
    Controller ユーザー入力の 受け付け Model 業務処理& 業務データ View 画面表示 Model-View- Model-View-Controller
  • 11.
    Controller ユーザー入力の プログレスバーの 受け付け 進捗 Model 業務処理& タブの選択状況 業務データ View フォントの色 画面表示 そんなことをいっても…… そんなことをいっても……
  • 12.
    View 画面表示 Presentation Model 画面データ プログレスバーの 進捗 Model タブの選択状況 業務処理& フォントの色 業務データ 解決策1 解決策1
  • 13.
    Presenter ViewとModelの 仲介 Model 業務処理& 業務データ View 画面表示 解決策2 解決策2
  • 14.
     FormはViewに徹する  Visual Studioと上手に付き合う  GUIのフレームワーク • Composite Application Guidance • Smart Client Composite UI Application Block • 各種MVVMフレームワーク@CodePlex まとめ