LinuxのEclipseからVisual Studio Onlineに接続!

またもや無更新の日々が続いております<(_ _)>

早速ですが、タイトルの内容に??と思われた方いらっしゃると思います。
EclipseからTeam Foundation Server/Visual Studio Online(VSO)に接続するには、Team Explorer Everywhere(TEE)があり、TEEはWindows以外のOSでも動作しますので、Linuxからでも接続できるのです。

しかし、実際に接続しようとすると、なぜかLinux(自分の場合はCent OS 6.3)からVSOに接続するときだけ、認証画面で止まっていました。
(WindowsのEclipseからはちゃんと接続できますし、LinuxのEclipse+TEEからオンプレミスのTFSに接続したり、FireFoxで直接VSOのチームプロジェクトサイトには接続できるのにです。)

一部の噂では、追加ライブラリを入れれば動作するらしいのですが、Linux力が全くない私ではどうすることもできず、あきらめていました。(;´Д`)

ところが、忘れていたころにConnectから「直したよ~ん」とのメールが。
早速最新版を入れてみたところ、ちゃんと接続できるようになっていました!!

これが証拠写真(大げさw)です。
○接続先を指定

001

○VSOへのサインイン画面。前はこの画面のままか、真っ白な画面の状態で止まってました

002

○アカウント画面が表示されました!!

003

○チームプロジェクトがちゃんと参照できています

004

○チームエクスプローラーもちゃんと参照できてます

005

○項目(これはProduct Backlog)も日本語で参照できてます

006

最新版のダウンロードはこちらから。

おそらく(自分を含め)、LinuxからTEEでVSOを使う方はほとんどいらっしゃらないと思いますが、これで本当に「Everywhere」になりました。

TFServiceでのビルド中に外部プログラムを実行する

ネット上でこんな話が出ていたので、ちょっと確認してみました。

せっかくTFServiceのBuildサービスでWindowsストアアプリのビルドができるようになったので、ストアアプリのプロジェクト(WinStorApp01)を作成。
TFService上でチームプロジェクト(StoreAppTest1)を作成し、とりあえずチェックインします。
外部プログラム格納用フォルダとして「Utils」フォルダを作成し、引数に指定された文字列をファイルに出力するバッチファイル(TestWrite.bat)を追加します。
フォルダ構成はこんな感じ。

101

プロジェクトのビルド時に外部プログラムを実行する場合、一番簡単なのはプロジェクトのプロパティで、「ビルドイベント」に実行したいプログラムを指定しておくことです。

102

今回は、ビルド後に作成したバッチファイルを実行させてみます。
実際にビルドを実行すると、出力結果フォルダにファイルが作成され、「"The End!"」が出力されています。

103

※今回はビルド定義でステージング場所を「Drops」にしています。

104

ここで注意点が3つあります。

1つ目は、フォルダ構成の指定を勘違いしないことです。(自分がボケてただけですが)
編集画面でフォルダの位置などを「マクロ」で指定することができます。
ビルドサービスではどのフォルダで実行されるか不定ですので、相対パスで記述するためにマクロで記述するほうがいいのですが、自分が勘違いしていたのが「$(SolutionDir)」の扱いです。
「$(SolutionDir)」はVSのソリューションフォルダのことですが、TFSのチームプロジェクトフォルダは「$(SolutionDir)」の親になりますので、「StoreAppTest1\Utils」を参照するためには、「$(SolutionDir)Utils」ではなく「$(SolutionDir)..\Utils」(←「..\」を追加)と指定する必要があります。

チームプロジェクト内にVSのソリューションが1つだけなら、ソリューションフォルダ配下においてもいいのですが、チームプロジェクト内に複数のVSソリューションが存在する場合はソリューションごとに配置する必要が無いので、今回のようにチームプロジェクトフォルダ配下に置いたほうがいいかなと思います。

2つ目は「日本語が通らない」ことです。
引数の「"The End!"」を「"終わった"」と指定してみたのですが、出力結果が「"?????"」といった感じで化けてしまいました。

3つ目は、ビルド定義の作業フォルダに、「Utils」を追加するのを忘れないことです。
(自分は追加し忘れてて「パスが見つからない」と怒られました^ ^;)

105

インストーラーでインストールしなくても実行できるプログラムであれば、こんな感じで動かせるようになります。

EclipseからTFServiceに接続できない

[問題が修正されたことを2013/05/17に追記しました。]

2013/05/14にTeam Foundation ServiceがUpdateされたというアナウンスがありました。
概要については、長沢さんのブログに掲載されています。
Team Foundation Service 更新 (スプリント 47)

この更新で、1つ困ったことが発生しています。
(2013/05/14時点)
それは、EclipseからTeam Explorer Everywhereを使ってTeam Foundation Serviceに接続しようとすると、「サインイン画面が開く→自動的に閉じる」を繰り返すという状態になることです。

英語でフォーラムを検索すると
endless loop when trying to suign in to team foundation service
という情報が掲載されていました。
内容を解読(w)すると、「Eclipseを終了して、IEの閲覧の履歴をすべて削除してから再度接続してみて」ということでした。
フォーラム内ではこれで解決したみたいなのですが、実際に自分の環境で実施してみても正常に接続できませんでした。

どうも運任せみたいなところがあり、接続できないこともあれば、数回繰り返すだけで接続できることもあれば、15分ぐらい放置していると接続できることもあります。

急ぎでTFServiceに格納されている情報を確認したい場合、IE/VSからであれば正常に接続可能です。

とりあえずConnectにも上げてみましたので、よろしければvoteお願いします。<(_ _)>
eclipseからTFServiceにログインできない

[2013/05/17追記]
2013/05/15にさっそく修正されたようです。
Team Foundation Service Teamのブログに掲載されていました。
Connectivity issues with TF Service – 5/15 – Resolved
手持ちの環境でもちゃんと接続できました。

Team Foundation Service 正式稼働!

11/1、ついにTeam Foundation Serviceが正式稼働しました。
(これのおかげで少し寝不足ですw)

URLも「~.tfspreview.com」から「~.visualstudio.com」に変更されていますが、今までtfspreview.comで作成されたプロジェクトはそのままvisualstudio.comに移行されています。

11/1現在では以下の内容で稼働しているみたいです。(英語ちゃんと読めません><)
○今は無償プランのみ。
 ・5ユーザまで
 ・作成プロジェクト数制限なし
 ・バージョン管理
 ・作業項目管理
 ・アジャイルプランニングツール
  プロダクトバックログリストとかタスクボードとか
 ・フィードバック管理
 ・ビルド(Preview)
 追加プランと価格は2013年まで待ってw
○6人以上で使いたいときは?
 →今だけは使える。2013年には有償プランへの移行ガイダンス出すよ
○今は誰でも無償だけど、MSDNサブスクリプション持ってれば、2013年以降も無償で使える。
○接続できるのは?
 Visual Studio 2010/2012
  Visual Studio Express 2012 for Windows 8/Windows Desktop/Windows Phone 8/Web
 Visual Studio Team Explorer Everywhere 2012
 Xcode+Git-TF
 →何でも使えるw
○ビルドは課金される?
 →今はプレビューだから無償。将来的には月単位でビルドした量に応じて課金される。
  (追加料金対応可能)

ほんのちょっとだけですが、さわってみました。
・ブラウザで、タスクボードを使って作業項目を操作。

009

「サンプルプロジェクト作成」という作業項目を"PROPOSED"(提案)から"ACTIVE"にドラッグしている最中です。こんな操作がブラウザでできるのがいいですね。

・Eclipseからアクセス

010

Eclipse(+Team Explorer Everywhere 2012)からもアクセスできてます。

ちょっとだけ引っかかったこと。
・プロジェクトコレクションの"Project Collection Valid Users"(一般ユーザグループ?)にユーザが追加できない
 
 管理者グループである"Project Collection Administrators"にはユーザ追加できるのですが、"Project Collection Valid Users"に対してユーザ追加しようとすると、

006

 と怒られてしまいます。
 (プロジェクト別のユーザ追加は問題ないです)

・1ユーザで1つだけサイトのオーナーになれる。複数のオーナーを兼任することはできない
 
 ユーザAでサイトを作成する→オーナーをユーザAからユーザBに変更する→ユーザBでサインインする→サイト作ってくれと言われるので作ってみる→エラーになる

008

 サイト作成時のエラー。
 オーナー変更がすぐに反映されないっぽいので、それが問題かもしれませんが。

TFServiceはちょくちょく改善されてますので、これからも目が離せません。

Team Foundation Serviceのビルド環境をローカルに構築する

Azure上でTFSの機能が使えるTeam Foundation Service(長いのでここではTFServiceとさせてください^ ^;)は、現在Preview版で誰でも使えます。(Microsoftアカウントが必要になります。)
チームプロジェクトを作成し、ローカルで作成したソリューションを登録すればビルドもAzure上でできるのでほんとにお手軽なのですが、個別のライブラリ(市販のパーツなど)を使用したいときには、ビルドサーバにライブラリを登録する必要があります。
方法としては
 ・ソース管理にライブラリ用フォルダを作成しておき、参照先を指定する
 ・ローカルのビルド環境を作成し、その環境にライブラリをインストールする
のどちらかになると思います。
今回は、ローカルのビルド環境を作成してみます。

※2012/08/19現在、TFServiceはPreview版ですので、RTM版とは異なる可能性があります。
 また、ライセンスについてはMSサポートに確認してください。

○TFS2012のインストール
 まずは、TFS2012をインストールします。
 ビルド環境のみなので、OSはクライアントOSでもかまいません。
 また、サーバOSにインストールする場合、SharePointFoudationも必要ありません。
 インストール完了後に自動起動されるウィザードはキャンセルしてください。
 ※確認はしていませんが、TFS2012 Expressは使えないと思います。
  (単体サーバでの使用が前提条件となっているので)

○Windows 8 SDKのインストール
 .NET Framework 4.5のビルドを正常に行うためには、ここからインストーラーをダウンロードします。
 インストーラーを実行すると、各種ファイルがネットからダウンロードされてインストールされます。
 ※今回自分が確認したのはWindows Server 2008 R2でしたが、.NET Framework4がターゲットのプロジェクトの場合はWindows 8 SDKなしでも正常にビルドできました。

○個別ライブラリのインストール
 ビルドするまでであればいつでもいいと思いますが、ビルドサーバ構築後にインストールすると再起動が必要になるかもしれないので、最初に個別ライブラリもインストールしておきます。
 (Windows Phone SDKとかも同様です)

○ビルドサービスの構成
 普通のビルドサーバと異なるのは、
 ・接続先サーバの指定をURLで直接行う
 ・接続時に認証が必要となる
 ことです。
 Team Foundation Server 管理コンソールから「ビルド構成」を選択し、「インストール済みフィーチャーの構成」をクリックすると、ウィザードが起動します。
 チームプロジェクトコレクションの選択画面で、参照先のサーバを「https://<使用するTFServiceのURL>」にします。

<接続先サーバの指定画面>
 「サーバー」ボタンを押下して、接続先サーバを追加します。

009_2

<接続先サーバの追加画面>
 「追加」ボタンを押下し、接続先Team Foundation Serverの名前のところにTFServiceのURLを指定します。

010

 TFServiceへのURLを指定し「OK」ボタンを押下すると、以下の接続中画面が表示されますので、ちょっと待ちます。

011

 TFServiceへの認証画面が表示されるので、TFServiceにログインする際のユーザ名/パスワードを入力し、サインインします。

012

 認証が完了すると、接続先サーバ追加画面に戻ります。

013

 接続先サーバの設定が完了すると、接続先チームコレクションの一覧が表示されますので、チームコレクションを選択し、「接続」ボタンを押下します。
(DefaultCollectionしかない?)

014

あとは、普通のビルドサーバと同様に設定していきます。
(エージェントの作成も忘れずに)

○ビルド定義の設定
 ビルド定義で、ローカルビルドコントローラーを使用するように設定します。
 
 「ビルドの規定値」にあるビルドコントローラーとして、ローカルサーバを指定します。
 (「Hosted Build Controller」がTFServiceで通常使用するビルドコントローラーです)

015_2

この状態でビルドを実行すると、こんな感じでローカルサーバでビルドが実行できます。

016

ほんとにお手軽に構築できます。
残念なのは、現時点ではTFS2010が使えないことです。
TFS2010で同様に環境構築してみたのですが、接続先サーバの追加時にエラーになってしましました。><

007

ぜひTFS2010でも使えるようにしてほしいものです。

Team Explorer Everywhere 11 Betaを入れてみました

ちょっと時間が空いたので、Windows 8 CP版にEclipse 3.7(Indigo)を入れた環境に、TEE11 Betaを入れてみました。

インストール方法は、TEE2010と変わりないので割愛します。

まずは、VS11とTEEのチームエクスプローラーを比較してみます。

Tee1101

「担当作業」と「PreEmptive Analytics」以外は同じ感じで表示されます。
担当作業がないのはちょっと残念でした。

「Work Items」に移動してみます。

Tee1102

意外と日本語で表示されますw
青丸で囲みましたが、「1つ前に戻る」という操作方法も踏襲されています。

次に、設定項目を見てみます。

Tee1103

「チームプロジェクト」では
 ・ソース管理
 ・ポータルの設定
が、「チームプロジェクトコレクション」では
 ・ソース管理
 ・プロセステンプレートマネージャー
が使えないみたいです。

これを見ている途中で、某エバから「TEEでは2010版のチームエクスプローラーも使えます」という神の声があり、表示してみるとまんま2010版でしたw。

Tee1104

「Feedback Reqests」があるので、接続先はTFS11ですw

これを表示する方法ですが、一時的にはメニューから「Window」-「Show View」-「Other…」を選択します。

Tee1105

ビュー一覧から「Team Foundation Server」内の「Team Explorer」を選択すると表示されます。

使用頻度が高い場合には、ちょっと設定すればもう少し簡単に表示できます。
TEE11のパースペクティブを表示している状態で、TFSのパースペクティブを右クリックして「Customize…」を選択します。

Tee1107

「Menu Visibility」タブ内の「Window」-「Show View」-「Team Explorer 2010」のチェックをONにします。

Tee1108

その後、Eclipseのメニューで「Window」-「Show View」のところに「Team Explorer 2010」が追加されていますので、これを選択すると2010版のチームエクスプローラーが表示できます。

TEE11もまだBetaですが、2010版のチームエクスプローラーも使えるので、今TEE2010を使用されている方は正式版が出た後ですぐに乗り換えても、今の運用にはまったく影響を与えず、かつTFS11にバージョンアップしたときにもすぐに対応できるというありがたい内容になっています。

VS11+TFS11(Beta)でのコードレビュー機能

VS11の右側に表示される「コードレビューの要求」、どう使うのかちょっと見てみました。
今回の環境は、レビュー依頼者が「DTFSUser01」、レビューアーが「DTFSUser02」で作業しています。

まずはレビュー依頼者側の作業からです。
ソースコードを修正後、「コードレビューの要求」を押します。

Tfs11cr01

レビューアーの指定、依頼タイトル/メモなどを入力し、「要求の送信」を押します。

Tfs11cr02

すると、TFSにレビュー要求が発行されます。
(内部的には作業項目として登録されています)

Tfs11cr03

今度はレビューアー側の作業になります。
レビューアー側の「担当作業」に、発行されたレビュー要求が表示されます。

Tfs11cr05

要求レコード(「DTFSUser01:13 – 表示内容変更」)をダブルクリックすると、コードレビューに関連する内容が表示されます。(チームエクスプローラーの表示内容が作業項目に合わせて変わるのがVS11のいいところですね)

Tfs11cr06

コードレビューですので、まずは修正されたソースを見てみます。
修正されたソースファイル(今回は「ListFile.cs」)が表示されていますので、右側のチェックボックスをONにします。(というか、これボタンでは??)
すると、修正前後のソースコードが表示されます。

Tfs11cr07

修正部分に対して個別コメントを追加できます。

Tfs11cr08


Tfs11cr09

また、全体的なコメントも入れられます。(元々のコメントに対して「返信」をします)

Tfs11cr09_2


Tfs11cr11

最後に、レビュー評価を指定します。

Tfs11cr12

これで、レビューアー側の作業は終了です。
依頼者側に戻ると、レビュー要求が完了していることがわかります。

Tfs11cr13

このソースコードをチェックインするときに、レビュー結果を関連作業項目として関連付けできます。

Tfs11cr14

VS2010+TFS2010のときには、「コードレビューしました」しか管理できない状態でしたが、VS11+TFS11ではレビュー作業そのものがVS IDEの中で簡単に実施できるところまで拡張されていました。
これでコードレビューが促進されると、レビューアーが大変になるかもしれませんw

あと、「コードレビューしないとチェックインできない」設定が簡単に行えればいいのですが、ちょっと見つけれていません。

VS11(Beta)でのMSTestとNUnitの共存

ネット上で、VS11はMSTestに加えNUnitとxUnitがサポートされるとありました。
どんな感じで使えるのかなと思ってましたが、(良い意味で)とんでもない感じでした。

なんと、1つのテストクラスでMSTest用メソッドとNUnit用メソッドが共存できました。
最初は、別々のクラスにしていましたが、TDD.NETなどで有名な@biacさんよりサンプルソースを見せて頂き、自分のテスト用プログラムに適用した結果がこれです。w



Tfs11testall3

TestMethod1とTestMethod2がMSTestだけのクラス
TestMethod3がNUnitだけのクラス
TestMethod4とTestMethod5が混在クラス(ソースは画像に表示されているもの)

ここまでできるとは思ってませんでしたw
しかし、@biacさんも言われてましたが、混在させるのは後でわけがわからなくなると思いますので、クラス単位でコントロールするのが現実的かと。

ちなみに、NUnit用に「NUnit Test Adapter」をインストールする必要がありますが、NuGetで簡単にインストールできます。

TFS2010とTFS11(Beta)の比較 その3:作業項目クエリー(CMMI)

今度は、CMMIテンプレートで作成したプロジェクトで、標準で作成される作業項目クエリーの一覧を比較してみます。

左から、TFS2010、TFS11、TFS11 Expressで作成したプロジェクトの作業項目クエリー一覧です。

Cmmilist

「Feedback Requests」以外は変わりませんw

今TFS2010を使っている方は、慌ててバージョンアップする必要はなさそうです。
といいながら、いつかはバージョンアップすることになるので、
 ・インプレースアップグレードがどれだけ簡単にできるか
 ・DBはTFS2010で作成したものを使用し、アプリケーション層はTFS11といった使い方ができるか
とかも期待したいなという感じです。

見てみたいネタとして、Web画面の大幅変更とか、作業項目にコードレビュー関連が追加されたりとか、VS11のチームエクスプローラーが全然違ったりとかあるので、引き続き確認していきたいです。

TFS2010とTFS11(Beta)の比較 その2:作業項目クエリー(Agile)

TFS2010とTFS11で、標準で作成される作業項目クエリーの一覧を比較してみます。
今回はAgileテンプレートで作成したプロジェクトです。

左から、TFS2010、TFS11、TFS11 Expressで作成したプロジェクトの作業項目クエリー一覧です。(全部を見るのは、VS2010のほうが簡単です^ ^;)

Agilelist

見たところ同じような感じですが、
 ・TFS11/Expressでは「Feedback Requests」が追加されている
 ・TFS2010では「イテレーション1」「イテレーション2」と表示されるが、TFS11/Expressでは「現在のイテレーション」と表示される
  より「今の作業に注目」する方向で表示が変更されているのかと思われます。
  ※Web管理画面で「イテレーション」を見ると、今まで通り「イテレーション1」といった項目で表示されます。
といったところが変更されています。

TFS11 Expressでもクエリーが変わらないのはうれしい限りです。

次は、CMMIテンプレートで作成したプロジェクトを比較してみます。