kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

TF ServiceにLightSwitch HTMLクライアントでアクセスする

Tam Foundation ServiceはODataをサポートしています*1Visual Studio 2012 Update2でLightswitch HTMLクライアントが正式に追加され、ODataもサポートされているので、ちょっとやってみましょう。

準備

MSアカウントでのアクセスができないので、ODataでアクセスする前にまずTF Service側のアカウントを設定する必要があります。

account.visualstudio.com にアクセスして、自分のアカウントのMy Profileを表示します。

CREDENTIALSにあるEnable alternate credentialsをクリックして有効にします。

パスワード欄が表示されるので、ここで任意のパスワードを入力してください。個人的にはUser nameのsecondaryもクリックして、別アカウントを指定したほうがいいと思います。これでTF Service側のアカウント準備ができました。

LightSwitchでプロジェクトを作る

LightSwitch HTMLクライアント(C#)を選択してプロジェクトを作成します。

初期画面に「外部データソースにアタッチ」という項目があるので、こちらを選びます。

ODataサービスがあるので、これを選びます。

ODataのエンティティは上記のURLでいいはずです。忘れずにhttpsにしてください。認証は「その他」を選んで、ユーザー名にはTF Serviceのサブドメイン(account.visualstudio.comのaccountの部分)と、Secondaryのユーザー名を指定します。
account\secondary username
パスワードには先ほど設定したパスワードを指定します。データソース名をTFSDataProjectにして、「次へ」を押すと、使用可能なデータが表示されます。
そうそう、念のため「このデータソースに読み取り専用としてアタッチする」のチェックを付けておくと読み込みしかできないので、不意に壊すこともありません。

ここでは簡単なProjectsテーブルを選びましょう。これで終了です。

画面を作る

次は画面を作ります。HTMLClientを選択して、右クリックから「画面を追加」します。

画面名にTFSProjectと指定して「データの参照画面」を選びます。画面データには先ほどOData外部データソース「TFSDataProject」を選べば追加完了です。これでF5キーを押してみましょう。

現在自分のアカウントで作っているTF Serviceのプロジェクト一覧が表示されました!完全ノンコーディングでとりあえずここまで。

プロジェクトはこんな感じですね。もっとできると思います。ほんとはWorkitemでやりたかったんですが、パラメータ指定しないとInvalid Dateと表示されました…。

余談

HTMLクライアントが新しく追加されましたが、Silverlightもまだ残っています。同じプロジェクトにSilverlight版の画面を選ぶこともできます。

標準画面テンプレートはSilverlightのほうが多いですね。これは拡張もできるので、興味のある人は作ってもいいのではないでしょうか。

また、Silverlightらしく画面遷移もサポートされています。HTML版ではこの設定がありません。そのうちサポートするのでしょうか?

注意点

ここまで書いて、勘のいい人は気づいていると思いますが、ODataのセキュリティ情報をサーバー側のweb.configにハードコーディングしています。自分一人のクライアントだったら別にこれでもいいのですが、実際は認証画面を用意してあげたほうがいいでしょう。
サーバー側のソースを見ると、login/logout用のaspxファイルがプロジェクトに追加されているので、これをうまく使ってやるか、LightSwitch側がうまく面倒見る必要があるかな?HTMLクライアントのプロジェクトテンプレートはもうちょっと頑張れ。

*1:オンプレミス版TFSもサポートしていますが、追加ソフトが必要です