ASP.NET開発における開発環境の一例

0.前置き

いったい世の中では、どんな開発環境の中で開発しているんだろうってっことが気になります。
個々のプロダクトや技術の話は耳にしますが、それをどう組み合わせているかっていうものはなかなか目にしません。
しかもいまや、継続的ペケペケがはやっているし、分散SCMもはやり始めている。
まもなく世の中の開発環境は初心者にとって、混沌なものに見えてしまうのではと懸念します。
というわけで、今の時点で、自分の中でもしっかり整理し、将来に活かしたいわけです。

1.私の場合

私が何を開発しているかというと、ASP.NET Webフォームを用いたイントラ用のWebアプリケーションです。
さっそくですが開発環境はこんな感じです。
(画像が大きいので、サムネイルにしています。大きくするにはクリックしてください。)

簡単な解説を加えます。

構成管理ツール
Subversionを使っています。
Gitとかまだ良く分かりません…。

CIサーバー
Jenkinsです。定期的にSVNをポーリングしています。
変更があった際には、svn updateを行い、ビルド、コンポーネントテスト、テストカバレッジ計測を行います。

ITS用サーバー
ITSにはRedmineを使っています。
タスクレベルの詳細なスケジュール管理、バグの管理、コードレビューの管理、プロダクトバージョンの管理を行っています。
重要なプラグインとして、コードレビュー用のプラグインを利用しています。
タスクを管理しているため、PM上、とても大切です。

テスト管理用サーバー
TestLinkを利用。
テストケースの管理、実施履歴の管理、テストケースから算出できるメトリクスの管理はこちら。
残念ながら、バグ起票をRedmineと連携できていません。

テスト用サーバー
開発中のアプリのデプロイ先です。
ここで統合テストを実施します。
特筆すべきは、Web Deploy Agentをインストールしていることです。
このツールのおかげで、Visual Studioの「発行」機能を使えば、ボタン一発で、
DBの初期化からWebアプリのデプロイまで行えます。
すごく手軽で、デプロイの障壁がなくなりました。
MSの物江さんのブログ:Visual Studio 2010 [発行]機能で配置可能とするためのサーバー設定

開発者端末
Visual Studio 2010 Proに、開発生産性をあげるために多くのアドオンを入れています。
あと自動UIテストを実施するためのSeleniumもここにいます。
残念ながら、これはIDE。つまりFirefoxのアドオンです。早くサーバー側にもって行きたいですね。
Source Monitorで簡易的なコードメトリクスをとっています。

2.改善点

改善点はたくさんあります。代表的なものを列挙します。

  • TestLinkとRedmineをつなげる。Redmineでバグの起票をシームレスにTestLinkから実施したい。
  • Jenkinsからテスト用サーバーに対して、継続的デプロイを提供したい。
  • JenkinsのCIにSeleniumを利用した自動UIテストを取り入れたい。

などなど。
第一の仕事がアプリ作りだから、いまや、開発環境の改善に手間をかけられないのは、少し惜しいです。

3.最後に

私が考える理想形はこうだ!っていうのを、おいおい別のポストでまとめてみたいです。
それをTFSなりのMS系プロダクトで固めたらどうなるか、比較してみたいですね。