カテゴリー別アーカイブ: ツール

Visual Studio 2013 Update 4 RCが公開されました

Visual Studio/TFS 2013 Update 4 RC Available | A Developer’s Life

In case you missed it, Visual Studio 2013 Update 4 RC (Release Candidate) is now available for download. Also, this is a “go-live” release which means you can use this update in production environments and there will be a supported upgrade path from the RC to the final release (RTM) version.

VS2013 のUpdate 4が公開されました。Go-LiveでRTMへのアップグレードパスも含まれているので、即投入できますね。

 

ダウンロードはこちらからどうぞ。

Download Microsoft Visual Studio 2013 Update 4 RC from Official Microsoft Download Center

 

Update 4の変更点はこちらからどうぞ。

Description of Visual Studio 2013 Update 4 RC

 

ざっと眺めた感じ、Premium以上の内容が多い感じはありますね。気になるところではこちらですかね。

  • Owin 3.0
    Owin 3.0 NuGet パッケージを使用するようにテンプレート パッケージが更新されます。Owin 3.0 リリース ノートを参照してください。

Owinもどんどん進化していくので、ちゃんと追っていかないといけませんね。

GistSharpExtension:VS14に対応しました

GistSharpExtension

VS 14 CTPも4まで来たので、正式リリースより二足ほど先に対応しました。

 

残念ながらVS 14の拡張機能マネージャーに出す方法がわからなかったのですが、ダウンロードしたVSIXを開けば、次のように問題なくインストールできます。

 

image

 

VS 14でも快適なGistライフを!

Windows 8.1 | リモートデスクトップの「リモートPCのコマンドを表示する」の「開始」って「スタート」の間違いよね

image

「開始」を選ぶとスタート画面出るし……

 

リモートデスクトップ自体のバージョンはこちら。

image

 

こういうローカライズバグって、どこに登録すればいいんでしょ?Connect?

 

ちなみに、ストアアプリ版の方は、ちゃんと「スタート」になってる。

image

最強のWPF MVVMインフラ「Livet」をVS2013で使う

最近GitHubの界隈の誤報で一躍有名となった”MVVM”GUIアーキテクチャパターン。

そのオリジナルたるWPFでMVVMをサポートするインフラには、MVVM Light ToolkitPrismなど色々とありますが、それらの中でも最強のMVVMインフラが「Livet」です。

 

LivetLogo

 

そのLivetは専用のインストーラーにより導入することが推奨されていますが、インストールパッケージを作るためのツールのバージョンの関係で、先日リリースされた「Visual Studio 2013」にはまだ対応していません。しかし、せっかく素晴らしいツールですから、ぜひともVS2013でも使いたい、そう思うのが人情というものです。

 

そこで、簡易的にVS2013でもLivetを使えるようにする、インストールスクリプトを作成しました。

 

Livet/Installer/simple_installer_for_vs2013.bat at add-simple-installer-for-vs2013 · masaru-b-cl/Livet · GitHub

 

GitHubからリポジトリをcloneやダウンロードした後、Installerフォルダーに上記スクリプトを配置して実行してください。やっていることは、LivetのインストーラーがVisual Studioのインストールフォルダー内にインストールするスニペット、テンプレートを、「ドキュメント」フォルダー内の「Visual Studio 2013」のスニペット、テンプレート用フォルダーにコピーしているだけです。

 

image

image

 

Livetの素晴らしいところの一つは、プロジェクトテンプレートにコアライブラリも含まれているため、追加で参照設定必要がないことです。おかげで、こんな簡単なスクリプトでインストールしたテンプレートでも、Livetのプロジェクトを作成、ビルド、実行できます。

 

image

 

VS2013正式対応版のLivetがリリースされるまでの「繋ぎ」として、是非活用ください!

Quick Test SwitcherをVS2013に対応させました

Quick Test SwitcherをVS2012に対応させました

に引き続き、VS上でテストコードとプロダクトコードを一発で切り替えたり、テストを簡単に実行したりするVS拡張「Quick Test Switcher」をVS2013にも対応させました。なお、このパッケージもちろんVS2012にも対応します。

GitHubのDownload機能は使えなくなっちゃったので、SkyDriveに置いておきます。

QuickTestSwitcher – SkyDrive

コードは例によってGitHubです。

masaru-b-cl/QuickTestSwitcher

VS2013でも快適なTDDライフを!

GistSharpExtension,CreateNewGist.exeをv1.5.0.0にバージョンアップ:Gist API仕様変更対応

GitHub API v3

User Agent Required

All API requests MUST include a valid User-Agent header. Requests with no User-Agentheader will be rejected. We request that you use your GitHub username, or the name of your application, for the User-Agent header value. This allows us to contact you if there are problems.

ということで、Gist APIではいつの間にやらUAが必須になっていたようです。

そのため、GistSharpExtensionCreateNewGist.exeをUAを指定するように直し、v1.5.0.0にバージョンアップしました。

 

なお、GistSharpExtension、CreateNewGist.exeはテキストファイルを簡単にGistで共有できるVS拡張、スタンドアローンプログラムです。

最新版にアップデート、もしくは新たにダウンロードしていただき、快適なGistライフを!

CodeRush XpressのVS2012正式対応版は出ないらしい

Q450441 – How to get to Coderush xpress page ? | DevExpress Support Center

Alex Skorkin – DevExpress

We do not update CodeRush Xpress and stopped its free distribution

どんなに待っても来ないから、そういうことなんだろうなーとは思っていたのですが、中の人により正式にコメントされてました。

 

う~ん、非常に便利だっただけに残念・・・

 

ReSharperさん欲しいです!

GistSharpExtension、CreateNewGist.exeを1.4.1.0にバージョンアップ

現在編集中のコードを簡単に新しいGistとして更改できるツールである、GistSharpExtensionCreateNewGist.exeを、それぞれ1.4.1.0にバージョンアップしました。

変更点は次の通り。

  • バグFIX:Ctrl+EnterでGist作成時、入力したdescription等の内容が反映されないケースがあったので修正した。

v.1.4のメイン機能にバグを仕込んでいたというわけです、すみませんすみませんm(_ _)m

 

そんなわけで、安心して使えるようになったGistSharpExtension並びにCreateNewGist.exe v1.4をよろしくお願いします。

TDDにIDEを活用しよう (VS2012+CodeRush Xpress) #TddAdventJp by @masaru_b_cl

この記事はTDD Advent Calendar jp: 2012 : ATNDへの参加エントリーです。昨日は@nnasakiさんの「デシジョンテーブルを使用してテストしてみよう #TddAdventJp – nnasakiのブログ」でした。

TDDにおけるIDEの重要性

TDDを進めていく中で、一番注力したいことは@irofさんもおっしゃっていましたが、「思い通りに動くコードを書くこと」です。

しかし、思ったことを書こうとしても「この変数が欲しいな」、「名前が不適切だから変えよう」などなど、単純だけど少し手間な作業が案外プログラミングには多いものです。こういったものは、ツールに任せてしまうのが一番です。

幸い昨今のIDE(統合開発環境)は非常に優秀ですので、文脈(コンテキスト)を踏まえた変換処理などもお手の物です(エディターとは違うのだよ、エディターとは!)。これを使わない手はありません。

IDE活用の実例

では、実際にIDEをフル活用してTDDを行っていってみましょう。今回使用するのは、Visual Studion 2012、および無償の拡張ツールであるCodeRush XpressQuick Test Switcherで、言語はC#です。

題材は「車窓からのTDD」を選びました。C#用に、以下ように仕様を微調整しました。

  • bool IsEmptyプロパティ
    スタックが空の場合、true。それ以外false を返す。
  • int Sizeプロパティ
    スタックのサイズを取得する。
  • void Push()メソッド
    引数の値をスタックの一番上に積む。
  • void Pop()メソッド
    スタックの一番上の値を取り除く。
    スタックが空の場合、EmptyStackExceptionが発生する。
  • int Topプロパティ
    スタックの一番上の値を取得する。
    スタックが空の場合、EmptyStackExceptionが発生する。

プロジェクト作成

コードを書き始める前に、器となるプロジェクトを作成しておきましょう。次のように、プロダクトコード用のTddFromTrainWindowと、テストコード用のTddFromTrainWindow.Testプロジェクトを作成しておきます。

  • TddFromTrainWindow
    • クラスライブラリプロジェクト
  • TddFromTrainWindow.Text
    • 単体テストプロジェクト
    • TddFromTrainWindowプロジェクトを参照している

なお、「TddFromTrainWindow”.”Test」としているのは、”.”で名前空間を区切ることで、テストコードでは上位の名前空間の型がそのまま参照可能になるからです。

ソリューション構成

また、テストコードが自動で実行されるよう、[テスト]メニュー→[テスト設定]→[ビルド後にテストを実行]を有効にしておきましょう。

ビルド後にテストを実行

StackTest、Stackクラスの作成

それでは実装を進めていきましょう。まずはStackTest、Stackクラスのペアを作成します。

  1. Ctrl+Shift+Aで「新しい項目の追加」ダイアログを開き、[基本単体テスト]を選択して”StackTest”として作成する。
  2. StackTestクラスのTestMethod1メソッドをTestCreateにリネームする。
  3. new Stack();までタイプしたところでCtrl+.を押し、[新しい型の生成]を選択してTddFromTrainWindowプロジェクトにStackクラスを作成する。
  4. テストコードとプロダクトコード間の移動はQuick Test Switcherの機能を利用して行う(ショートカットキーはCtrl+9に事前に変更済み)。

Quick Test Switcherのショートカットキー変更

 

Stackオブジェクト作成直後はスタックが空であることのテスト

IsEmptyプロパティを追加し、Stackオブジェクト作成直後が空であるよう実装します。

  1. new Stack();の行でCtrl+@キーを押し、[Declare Local]を選択してstack変数を作成する。
  2. stack.IsEmptyプロパティがTrueであることの確認コードを書く。
  3. IsEmptyプロパティにてCtrl+@キーを押し、[Declare Property]を選択してIsEmptyプロパティを作成する。
  4. ここで一度Ctrl+Shift+Bキーを押してビルドし、テストが実行されて失敗することを確認する。
  5. IsEmptyプロパティでF12キーを押し、実装に移動する。
  6. テストを通すため、IsEmptyプロパティの実装をreturn true;にする。
  7. ビルドを行い再度テストを実行し、テストが成功することを確認する。

 

Stackオブジェクトの初期化処理をSetUpメソッドに移動

Stackオブジェクトは間違いなく他のテストでも使うので、フィールドにしてSetUpメソッドで初期化するようにします。

  1. stack変数でCtrl+@キーを押し、[Widen scope (promote to field)]を選択してstack変数をフィールドに昇格させる。
  2. stackフィールド初期化処理行を選択してCtrl+@を押し、「メソッドの抽出」ダイアログを利用してSetUpメソッドに切り出す。
  3. SetUpメソッドにTestInitializeAttributeを付ける。
  4. SetUpメソッドをpublicに変更する。
  5. ビルドしてテストを実行して成功することを確認する。

 

Push後のTopでPushした値を取得

PushとTopを組み合わせたテストケースを作成し、フェイク実装でテストが成功するところまで実装します。

  1. testmまで入力したところで、TAB、TABと2回キーを押し、コードスニペットからテストケースの雛形を挿入する。
  2. メソッド名をTestPushAndTopに変更し、Enterキーを押す。そうすると、テストケース本体にカーソルが移動する。
  3. テストケース本体を入力する。
  4. 未定義のTopプロパティ、Pushメソッドの空実装をCtrl+.で作成し、ビルドしてテストが失敗することを確認する。
  5. Topプロパティのフェイク実装(return 1;)を行い、ビルドしてテストが成功することを確認する。

 

フェイク実装の箇所をPushで与えた値を返すようにリファクタリングします。

  1. PushメソッドでF12キーを押し、定義に移動する。
  2. PushメソッドのパラメーターpでCtrl+@キーを押して[Rename]を選択し、名前をvalueにへんこうする。
  3. this.value = value;と入力し、Ctrl+.キーを押してvalueフィールドを生成する。
  4. valueフィールドの定義に移動して確認する。
  5. Ctrl+-キーを押してカーソル位置を復元する。
  6. Topプロパティをreturn this.value;に変更する。
  7. ビルドしてテストを実行し、成功することを確認する。

 

以後の実装

同じように各種ショートカットキーなどを駆使しつつ進めていきます。

それぞれ動画で確認してみてください。

(後で追加しておきます。)

まとめ

これまで見てきたように、IDEにはコードを書くための補助機能がたくさんあります。その中にはコードの自動生成など、TDDを進めていくうえで無くてはならないものも含まれています。

IDEを使いこなしていけば、より一層本来の「思い通りに動くコード」を書くことに集中できるようになれるでしょう。

明日は@ktz_aliasさんにバトンタッチです。

Rhino.Mocksをちょっとだけ幸せにするお助けクラス – Since 1975