LightSwitch
~結局何ができるの?~

   瀬尾 佳隆 (@seosoft)


     わんくま同盟 東京勉強会 #65
自己紹介

• 瀬尾 佳隆 (せお よしたか)
 – 技術ひろば.net 管理人
 – MVP for Visual C# (Jan 2009 - Dec 2011)

 – 好きなもの
   • LightSwitch
   • ミュージカル
   • AKB48




                   わんくま同盟 東京勉強会 #65
今日の目標




     皆さんの中の
LightSwitch のスイッチを
   入れていただくこと
        これが結構難しいんですが・・・




   わんくま同盟 東京勉強会 #65
今日の内容

•   シンプルな LS アプリの内部を見てみる
•   アーキテクチャから LS を見てみる
•   画面デザイナーから LS を見てみる
•   データデザイナーから LS を見てみる
•   LS には “出来ない” ことを見てみる
•   (おまけ) エクステンションを見てみる

    アーキテクチャを起点に
    「LightSwitchで出来ること」を見てみます
             わんくま同盟 東京勉強会 #65
LightSwitch アプリ開発の大きな流れ




モデル            画面          カスタマイズ
定義            デザイン         (コード追加)



               繰り返し
                           最後にデプロイ

            わんくま同盟 東京勉強会 #65
シンプルな LightSwitch アプリの内部を見てみる

  「テーブル定義と画面定義だけ」の場合
    (コード追加をしていない状態)



                      画面




   テーブル




          わんくま同盟 東京勉強会 #65
ApplicationDefinition.lsml




    わんくま同盟 東京勉強会 #65
デザイナーでの操作は ApplicationDefinition.lsml に




             わんくま同盟 東京勉強会 #65
LightSwitch アプリケーションのアーキテクチャ




http://blogs.msdn.com/b/lightswitch/archive/2010/08/09/
the-anatomy-of-a-lightswitch-application-series-part-2-the-presentation-tier.aspx


                              わんくま同盟 東京勉強会 #65
カスタマイズの対象と方法
                                        ※この通りに区分
                                        できないものもある

              画面デザイナーで定義+画面クラスコード

変更不可
                         画面クラス      データクラス
                          コード        コード




                    画面デザイナーで     データデザイナーで
 (エクステンション)            定義           定義




                 わんくま同盟 東京勉強会 #65
コードが生成される場所
                              ※この通りに区分
                              できないものもある
     Client
    プロジェクト


                 自作の          Server
                汎用クラス        プロジェクト




 Data     バリデーション   Common      更新の検知
フォルダー               プロジェクト



    わんくま同盟 東京勉強会 #65
プロジェクト間の呼び出し

     Client
    プロジェクト


                 自作の          Server
                汎用クラス        プロジェクト




 Data     バリデーション   Common      更新の検知
フォルダー               プロジェクト



    わんくま同盟 東京勉強会 #65
画面デザイナーの構成




 わんくま同盟 東京勉強会 #65
[データ項目の追加] ダイアログボックス




     わんくま同盟 東京勉強会 #65
クエリパラメーターとパラメーターバインド




     わんくま同盟 東京勉強会 #65
データデザイナーで出来ること




   わんくま同盟 東京勉強会 #65
LightSwitch には “出来ない” こと




             ユーザーの操作の検知
          (コントロールのイベントハンドラ)
              が “出来ない” !




      わんくま同盟 東京勉強会 #65
LightSwitch に “出来る” ことの例




クエリの追加
                                     メソッドの追加




                   ボタンの追加




 クエリの作成                         計算されたプロパティ


                わんくま同盟 東京勉強会 #65
(おまけ) エクステンションを見てみる
                        ※完全に分割できる
                        わけではない




      データソース




     わんくま同盟 東京勉強会 #65
ソリューションを見てみる




 わんくま同盟 東京勉強会 #65
“Design” = プロパティウィンドウ は 2種類必要




      “.Design”           “.Client.Design”
アプリ開発時のプロパティウィンドウ   デバッグ実行時のプロパティウィンドウ
    WPF でデザイン           Silverlight でデザイン




              わんくま同盟 東京勉強会 #65
まとめ

• アーキテクチャを起点にすると
  LightSwitchで出来ることが見えてきます




                   ご清聴ありがとうございました
          わんくま同盟 東京勉強会 #65

LightSwitch 結局何ができるの