LightSwitch で OData
-
Upload
yoshitaka-seo -
Category
Technology
-
view
4.985 -
download
1
description
Transcript of LightSwitch で OData
![Page 1: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/1.jpg)
LightSwitch で OData
Community Open Day 2012
瀬尾 佳隆 (MVP for Visual C#)
技術ひろば.net
![Page 2: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/2.jpg)
自己紹介/コミュニティー紹介
瀬尾 佳隆 (せお よしたか)
MVP for Visual C# (Jan 2009 – Dec 2012)
“LightSwitch” 推し
総選挙でもあろうものなら投票します
が、今イチ人気がなくて選抜メンバー入りは難しい・・・
技術ひろば.net
オフライン勉強会を“緩く”開催
2007年6月9日に第1回の勉強会、実は今日が誕生日
![Page 3: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/3.jpg)
今日のテーマ
LightSwitch とは? OData とは?
OData のメリットと業務アプリとの相性
LightSwitch で OData Producer を開発する際のポイント
LightSwitch は優秀な OData 開発ツール
http://www.odata.org/
![Page 4: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/4.jpg)
LightSwitch とは? 最も簡単な“業務アプリ開発ツール”
テーブル 定義
画面 デザイン
カスタマイズ
繰り返し 最後にデプロイ
![Page 5: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/5.jpg)
LightSwitch とは? 最も簡単な“業務アプリ開発ツール”
テーブル 定義
画面 デザイン
カスタマイズ
繰り返し 最後にデプロイ
ビジネスロジック以外のコーディングが少ない =本質ではない部分のバグが少ない
![Page 6: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/6.jpg)
OData とは?
The Open Data Protocol (OData) is
a Web protocol
for querying and updating data
that provides a way to unlock your data and free it from silos that exist in applications today.
データの問い合わせと更新のためのプロトコル
出典:http://www.odata.org/
![Page 7: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/7.jpg)
OData とは?
The Open Data Protocol (OData) is
a Web protocol
for querying and updating data
that provides a way to unlock your data and free it from silos that exist in applications today.
データの問い合わせと更新のためのプロトコル
Web 標準
問い合わせも更新も
相互に自由な 接続
![Page 8: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/8.jpg)
デモ LightSwitch と OData との簡単な紹介
![Page 9: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/9.jpg)
OData のメリット サーバーとクライアントとの組み合わせの自由度が高い
http://www.odata.org/libraries
![Page 10: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/10.jpg)
OData のメリット サーバーとクライアントとの組み合わせの自由度が高い
http://www.odata.org/libraries
マルチプラットフォーム マルチデバイス
![Page 11: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/11.jpg)
業務アプリと OData との相性
単一のサービスで異なるクライアントに対応できる
クライアントは個別のデータ構造に対応する必要がない
業務アプリもマルチデバイス対応が必要な時代
OData Producer
![Page 12: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/12.jpg)
業務アプリと OData との相性
単一のサービスで異なるクライアントを対象にできる
クライアントは個別のデータ構造に対応する必要がない
業務アプリもマルチデバイス対応が必要な時代
http://msdn.microsoft.com/ ja-jp/windows/
OData Producer
![Page 13: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/13.jpg)
LightSwitch と OData
LightSwitch は特別な設定/コーディングを追加しなくても OData Producer になっている
普通に LightSwitch アプリケーションを開発するだけ
Runtime / フレームワークがプロトコルの面倒を見てくれる
例えば、WCF Data Services だとインターフェイスや サービスコントラクトなどの明示的な定義も必要
LightSwitch を OData Producer 開発ツールとして使う
![Page 14: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/14.jpg)
業務アプリで OData を利用する際のポイント
認証
業務アプリはデータを世界中に公開したい わけではない
アクセス許可
全社員がすべてのデータを操作していい わけではない
認証とアクセス許可設定の考慮が大事
データの暗号化も重要だが、「SSL を使いましょう」 という話なので 今回は省略
![Page 15: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/15.jpg)
業務アプリで OData を利用する際のポイント
認証
業務アプリはデータを世界中に公開したい わけではない
アクセス許可
全社員がすべてのデータを操作していい わけではない
認証とアクセス許可設定の考慮が大事
LightSwitch はこれらの実装も簡単
![Page 16: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/16.jpg)
LightSwitch の認証
“フォーム認証” / “Windows 認証” の使用を選択するだけ
ASP.NET の Membership API が組み込まれている
プロパティページで “認証を有効にする”
![Page 17: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/17.jpg)
フォーム認証するユーザーの登録
発行後に “SecurityAdministration” 権限を持つユーザーで アプリ実行
組み込みのユーザー編集画面が利用できる
Membership API でユーザー一括登録も(技術的には)可能
LightSwitch 組み込みのユーザー編集画面
![Page 18: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/18.jpg)
デモ フォーム認証
![Page 19: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/19.jpg)
アクセス許可の手順
プロパティページで “アクセス許可” を定義
テーブル単位でアクセス権を付与
発行後、役割とユーザーを登録
役割にアクセス許可を付与
ユーザーに役割を付与
役割
ユーザー
• 役割には複数のアクセス許可を 付与できる
• 役割は複数のユーザーに 付与できる
![Page 20: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/20.jpg)
アクセス許可設定
「XXXを参照する権利」、「XXXを更新する権利」の単位で定義
役割には複数のアクセス許可を付与できる
アクセスレベルの最小単位を定義する
※ “デバッグに使用する” の文言は気にしない
![Page 21: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/21.jpg)
テーブルのアクセス許可
テーブルごとに
<テーブル名>_CanRead ・・・ テーブルを参照する権利
<テーブル名>_CanInsert ・・・ レコードを新規作成する権利
<テーブル名>_CanUpdate ・・・ レコードを変更する権利
<テーブル名>_CanDelete ・・・ レコードを削除する権利
(参考) 画面ごとに
<画面名>_CanRun ・・・画面を起動する権利
<テーブル名>_CanXXX と User.HasPermission を使う
![Page 22: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/22.jpg)
User.HasPermission の引数 ユーザーが “アクセス許可設定値” のアクセス許可を持っているか
![Page 23: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/23.jpg)
レコード単位のアクセス許可
ユーザーごとに見せるレコードをフィルタリングできる
<テーブル名>_filter メソッド
テーブルのアクセス権だけでは不十分なこともある
![Page 24: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/24.jpg)
デモ アクセス許可
![Page 25: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/25.jpg)
まとめ
LightSwitch は優秀な OData 開発ツール
OData はマルチプラットフォーム/マルチデバイスに適する
Producer 開発では “認証” と “アクセス許可” を考慮する
LightSwitch で OData 開発を
![Page 26: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/26.jpg)
おまけ(1) クライアントでは DataServiceCollection<T> を使う
![Page 27: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/27.jpg)
おまけ(2-1)
サービス (OData Producer) のみの発行が可能になった
開発環境自身が Producer 開発ツールであることを意識
Visual Studio 2012 RC での変更点 ~ アプリケーション種類の追加
Visual Studio 11 Beta Visual Studio 2012 RC
![Page 28: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/28.jpg)
おまけ(2-2)
デフォルトシェルが “標準シェル” から “Cosmopolitan シェル” に変更
Visual Studio 2012 RC での変更点 ~ デフォルトシェルの変更
Visual Studio 11 Beta Visual Studio 2012 RC
![Page 29: LightSwitch で OData](https://reader033.fdocuments.us/reader033/viewer/2022051112/5593b9031a28ab550d8b47ad/html5/thumbnails/29.jpg)