現在、.NET 開発用のソース管理/ビルド/その他のサーバーをセットアップする過程にあり、Team Foundation Server (多くの費用がかかります) を利用するか、いくつかのオープン ソース オプションを組み合わせることを考えています。 、SourceForge Enterprise/GForge、Subversion、CruiseControl.net など。本格的な OSS の道を歩んだ人はいますか?それとも、すぐに作業を開始したい場合にのみ TFS を使用しますか?
17 に答える
私の仕事は現在、Cruise Control をエンジンとして主に OSS ビルド プロセスを使用していますが、これは素晴らしいことです。TFS が必要な理由がわからない場合は、おそらくコストに見合わないことをお勧めします。
OSS に関して覚えておかなければならないことは、ソフトウェアが Java クルーによって何年も前から使用されているか、ソフトウェアが同様の Java コードのポートであるということです。頑丈で用途に適しています。
Microsoft は OSS コードを出荷することができないため、多くのオープン ソースのものを再実装する必要があります。いいえ、必要ありません。そのスタックで何百万ものプロジェクトが出荷されています。反対に、バグ/機能追跡ソフトウェアとの統合など、OSS スタックでは (簡単に) 取得できない、TFS で取得できる優れた機能もたくさんあります。
私は常に OSS を使用してきましたが、問題が発生したことはありません。また、CI ソリューションには TeamCity を強くお勧めします。無料のライセンスがあり、CC.NET を水から吹き飛ばして、構成とフィードバックを容易にしていると思います。
私は約 1.5 年間、TFS を日常的に使用しています。
- ソース管理は安定しています
- 切断された状態で簡単に作業することはできません。ファイルのチェックアウトはサーバーに送信されます。
- 自動マージはうまく機能しますが、ソース ファイルが破損することがあります (エンコードの問題)。
- TFSがもたつく感じ!? 特にテストマネージャー。マネージド コード?
- テスト部分にはさまざまなばかげたバグがありますが、重大なものは何もありません。
- テスト実行の開始に時間がかかりすぎています (保留中)。
- ときどき SQL デッドロックが発生する!?
- 問題の追跡はひどいものです。遅い統合ダイアログで作業することを余儀なくされ、Web は表示のみです。JIRAなどの他の課題追跡システムと比較することをお勧めします
- ビルドは正常に動作します。
TFSを調べましたが、最終的にはSubversion + Trac+VisualSVNを使用しました。現在CIは行っていませんが、Cruisecontrolを使用することになると思います。
私は数多くのオープンソースプロジェクトでTracを使い始めましたが、それは素晴らしいことです。これは実際にはTFSが行うことの一部にすぎないため、そこで決定を下す必要があります。すべてを使用する場合、TFSはおそらくすべてを結び付けるためのより良い仕事をします。Tracはwiki/バグトラッカー/ソースブラウザです。すべてがリンクされています-WikiPageの名前を入力するか、コミットメッセージで「バグ#1234を修正」と言うと、Tracでそのメッセージが表示されるたびに、リンクは適切な場所に移動します。それはあなたがあなたの仕事をするのを助けるが、一般的に邪魔にならないようにするツールです。
VisualSVNは、TortoiseSVN(Subversionクライアント)とVisualStudioの間の優れたブリッジであり、生産性を大幅に向上させます。彼らは無料トライアルを持っており、その後はそれほど高価ではありませんが($ 50 /ユーザー)、十分に価値があります。
Tracの考えられる欠点の1つは、Windowsの世界であり、IISで作業するのは面倒です。Tracを何度もインストールしましたが、正しく機能させようとするとすぐにイライラしました。最終的にApacheを別のIP(別のポートを使用することもできます)にインストールすると、シームレスになりました。
私のチームの1人(少しの経験があった)を除いて、これまで誰もSubversionを使用したことがありませんでした。カップルがVSSを使用していましたが、それだけです。誰もがかなり懐疑的でしたが、数日以内に全員が改宗したと思います。Tracを完全に学び、すべてに慣れた後(数日後)、誰もが完全に売り切れて、それを愛しています。
TFS を使用している場合は、VSTS2008SP1 をインストールしてください。私が見た苦情の投稿の大多数は、2005 バージョンを使用しています。2005 年は典型的な "Microsoft 1.0" 症候群です。後の 2 つの「バージョン」で修正された多くの問題がありました。
2008 のサービス パックは単なるバグ修正ではなく、多くの新機能を追加しました。
選択と OSS に関する限り、多くの議論があります (ここと他の場所で)。これは安価な製品ではありませんが、多くのシナリオでは最良の選択です (他のシナリオでは最悪の選択です)。
当社は、CruiseControl/SVN/nAnt/JIRA の組み合わせを使用して大きな成功を収めています。
TFS の契約上の問題点は、大企業にとってのみ価値があるということです。開発者が 30 人以下の小規模な企業にとっては、非常に費用がかかります。これらの企業は、上記のオープン ソースの組み合わせからすでに大きな恩恵を受けているでしょう。
Subversion + Cruisecontol.Net は良い代替手段です。SVN は機能が豊富で、安定しており、柔軟性があります。
個別の OS ツール セットと比較して TFS を使用する本当の利点は、利用可能なさまざまな情報の流れを統合できることです。
* 要件を作成して TFS に挿入
* 要件にリンクする一連のタスクを作成し、さまざまな開発者に割り当てます
* 各開発者は自分のタスクに取り組み、チェックインし、チェックインされた変更セットにタスクを割り当てます
* バグ修正が行われます、この場合も、変更セットはバグ修正要求と調整され、バグ修正を元の要件にマッピングすることもできます。
これが完了すると、すべての情報を使用して、プロジェクトを追跡し、作業に関する評価を行うことができます。たとえば、バグ修正が引き起こした変更の数。これは、より多くのバグや変更要求を生成した要件などです。
これらの情報はすべて、中規模および大規模の組織で非常に役立ちますが、現在私が見ている限り、さまざまな OS ツールの統合を追跡することは不可能 (または非常に困難) です。
TFS スタックは、ソース管理と CI/ナイトリー ビルド セットアップをはるかに超えています。プロジェクト管理、バグ レポートについて考えてみてください。これらはすべて、CruiseControl、SVN、および NAnt だけではありません。レポートだけでも、投資する価値があるかもしれません。また、MSDN サブスクライバー/ISV ゴールド パートナーなどの場合も覚えておいてください。これを無料で手に入れることができるかもしれません...
幅広いTFS機能の最良の代替手段は必ずしもOSSである必要はありませんが、コード品質とアーキテクチャ探索のためのNDepend 、コードカバレッジのためのNCover 、IDEにネストされたテストのためのTestDriven.NETなどの低予算の商用です...
上記の投稿で言及されているすべての追加機能に対して、TFS はそれだけの価値があると思います。ただし、継続的なビルド機能が大幅に不足しているため、CruiseControl.NET を使用してその部分を強化しています。現時点で TFS を使用しないことを選択する唯一の理由は、製品のクロス プラットフォーム開発に移行しているからです。ですから、それについて考えたことがあるなら、OSS を考えてみてください。Subversion/Trac は私のお気に入りの組み合わせで、CruiseCONtrol.NET が依然としてバックボーンです。mono を使用する CC.NET は、Linux と Mac でうまく機能します。
ここでは開発スタックを徐々に構築しており、現在使用しているものは次のとおりです。
- 転覆
- クルーズコントロール
- RedMine (バグ追跡をソース管理と統合し、wiki、基本的なプロジェクト管理などを含みます)。
TFS2010 には TFS Basic があり、費用はかかりません (msdn サブスクリプション/ビジュアル スタジオ ライセンスに加えて)。VS ライセンスごとに 1 つに制限されていますが、非 VS ユーザーの追加ライセンスのみが必要です
VS2010 の UI 自動化だけでも、TFS はオープン ソース ソリューションの組み合わせよりも優れています。
私は両方の動作を見てきました (私は Java 開発者ですが)。選択と混合のアプローチの利点は、すべてに最適なビットを選択できることです (たとえば、CI 用の Hudson をチェックします。Java 用に優れており、.Net でも機能し、プラグインがたくさんあり、非常に使いやすいです。 )。欠点は、すべての統合を自分で行う必要があることです。しかし、これはJava の世界ではずっと簡単になってきています。また、サポートされている製品の方が優れていると人々に言わせないでください。この分野の多くの OSS 製品では、品質が優れており、ベンダーのサポート契約からの回答を待つよりもコミュニティからより良いサポートを得ることができます (IBM、私はあなたを見ています)。
お役に立てれば。
TFS の必要性が正確にわかっている場合にのみ、TFS を使用する価値があるという点に強く同意します。Visual SVN や TestDriven.Net などの OSS ベースの安価または無料のアドインは非常に優れているため、VS との統合はすでにシームレスです。
まだ試していないので、一粒の塩で取ることができる新しい視点を投入しようと思いましたが、今後のプロジェクトで CI にBittenを使用する予定です。これは Trac+SVN の上で実行されます。これらは両方とも、私が多くのプロジェクトで使用してきた優れたツールです。