29
LightSwitch で OData Community Open Day 2012 瀬尾 佳隆 (MVP for Visual C#) 技術ひろば.net

LightSwitch で OData

Embed Size (px)

DESCRIPTION

Community Open Day 2012 (6月9日開催) C-2 セッション

Citation preview

Page 1: LightSwitch で OData

LightSwitch で OData

Community Open Day 2012

瀬尾 佳隆 (MVP for Visual C#)

技術ひろば.net

Page 2: LightSwitch で OData

自己紹介/コミュニティー紹介

瀬尾 佳隆 (せお よしたか)

MVP for Visual C# (Jan 2009 – Dec 2012)

“LightSwitch” 推し

総選挙でもあろうものなら投票します

が、今イチ人気がなくて選抜メンバー入りは難しい・・・

技術ひろば.net

オフライン勉強会を“緩く”開催

2007年6月9日に第1回の勉強会、実は今日が誕生日

Page 3: LightSwitch で OData

今日のテーマ

LightSwitch とは? OData とは?

OData のメリットと業務アプリとの相性

LightSwitch で OData Producer を開発する際のポイント

LightSwitch は優秀な OData 開発ツール

http://www.odata.org/

Page 4: LightSwitch で OData

LightSwitch とは? 最も簡単な“業務アプリ開発ツール”

テーブル 定義

画面 デザイン

カスタマイズ

繰り返し 最後にデプロイ

Page 5: LightSwitch で OData

LightSwitch とは? 最も簡単な“業務アプリ開発ツール”

テーブル 定義

画面 デザイン

カスタマイズ

繰り返し 最後にデプロイ

ビジネスロジック以外のコーディングが少ない =本質ではない部分のバグが少ない

Page 6: LightSwitch で OData

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

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

デモ LightSwitch と OData との簡単な紹介

Page 9: LightSwitch で OData

OData のメリット サーバーとクライアントとの組み合わせの自由度が高い

http://www.odata.org/libraries

Page 10: LightSwitch で OData

OData のメリット サーバーとクライアントとの組み合わせの自由度が高い

http://www.odata.org/libraries

マルチプラットフォーム マルチデバイス

Page 11: LightSwitch で OData

業務アプリと OData との相性

単一のサービスで異なるクライアントに対応できる

クライアントは個別のデータ構造に対応する必要がない

業務アプリもマルチデバイス対応が必要な時代

OData Producer

Page 12: LightSwitch で OData

業務アプリと OData との相性

単一のサービスで異なるクライアントを対象にできる

クライアントは個別のデータ構造に対応する必要がない

業務アプリもマルチデバイス対応が必要な時代

http://msdn.microsoft.com/ ja-jp/windows/

OData Producer

Page 13: LightSwitch で OData

LightSwitch と OData

LightSwitch は特別な設定/コーディングを追加しなくても OData Producer になっている

普通に LightSwitch アプリケーションを開発するだけ

Runtime / フレームワークがプロトコルの面倒を見てくれる

例えば、WCF Data Services だとインターフェイスや サービスコントラクトなどの明示的な定義も必要

LightSwitch を OData Producer 開発ツールとして使う

Page 14: LightSwitch で OData

業務アプリで OData を利用する際のポイント

認証

業務アプリはデータを世界中に公開したい わけではない

アクセス許可

全社員がすべてのデータを操作していい わけではない

認証とアクセス許可設定の考慮が大事

データの暗号化も重要だが、「SSL を使いましょう」 という話なので 今回は省略

Page 15: LightSwitch で OData

業務アプリで OData を利用する際のポイント

認証

業務アプリはデータを世界中に公開したい わけではない

アクセス許可

全社員がすべてのデータを操作していい わけではない

認証とアクセス許可設定の考慮が大事

LightSwitch はこれらの実装も簡単

Page 16: LightSwitch で OData

LightSwitch の認証

“フォーム認証” / “Windows 認証” の使用を選択するだけ

ASP.NET の Membership API が組み込まれている

プロパティページで “認証を有効にする”

Page 17: LightSwitch で OData

フォーム認証するユーザーの登録

発行後に “SecurityAdministration” 権限を持つユーザーで アプリ実行

組み込みのユーザー編集画面が利用できる

Membership API でユーザー一括登録も(技術的には)可能

LightSwitch 組み込みのユーザー編集画面

Page 18: LightSwitch で OData

デモ フォーム認証

Page 19: LightSwitch で OData

アクセス許可の手順

プロパティページで “アクセス許可” を定義

テーブル単位でアクセス権を付与

発行後、役割とユーザーを登録

役割にアクセス許可を付与

ユーザーに役割を付与

役割

ユーザー

• 役割には複数のアクセス許可を 付与できる

• 役割は複数のユーザーに 付与できる

Page 20: LightSwitch で OData

アクセス許可設定

「XXXを参照する権利」、「XXXを更新する権利」の単位で定義

役割には複数のアクセス許可を付与できる

アクセスレベルの最小単位を定義する

※ “デバッグに使用する” の文言は気にしない

Page 21: LightSwitch で OData

テーブルのアクセス許可

テーブルごとに

<テーブル名>_CanRead ・・・ テーブルを参照する権利

<テーブル名>_CanInsert ・・・ レコードを新規作成する権利

<テーブル名>_CanUpdate ・・・ レコードを変更する権利

<テーブル名>_CanDelete ・・・ レコードを削除する権利

(参考) 画面ごとに

<画面名>_CanRun ・・・画面を起動する権利

<テーブル名>_CanXXX と User.HasPermission を使う

Page 22: LightSwitch で OData

User.HasPermission の引数 ユーザーが “アクセス許可設定値” のアクセス許可を持っているか

Page 23: LightSwitch で OData

レコード単位のアクセス許可

ユーザーごとに見せるレコードをフィルタリングできる

<テーブル名>_filter メソッド

テーブルのアクセス権だけでは不十分なこともある

Page 24: LightSwitch で OData

デモ アクセス許可

Page 25: LightSwitch で OData

まとめ

LightSwitch は優秀な OData 開発ツール

OData はマルチプラットフォーム/マルチデバイスに適する

Producer 開発では “認証” と “アクセス許可” を考慮する

LightSwitch で OData 開発を

Page 26: LightSwitch で OData

おまけ(1) クライアントでは DataServiceCollection<T> を使う

Page 27: LightSwitch で OData

おまけ(2-1)

サービス (OData Producer) のみの発行が可能になった

開発環境自身が Producer 開発ツールであることを意識

Visual Studio 2012 RC での変更点 ~ アプリケーション種類の追加

Visual Studio 11 Beta Visual Studio 2012 RC

Page 28: LightSwitch で OData

おまけ(2-2)

デフォルトシェルが “標準シェル” から “Cosmopolitan シェル” に変更

Visual Studio 2012 RC での変更点 ~ デフォルトシェルの変更

Visual Studio 11 Beta Visual Studio 2012 RC

Page 29: LightSwitch で OData