私たちのチームは、Team Foundation Server v.11(2012)を使用してプロジェクトを管理することを検討しています。現在、スプレッドシートでプロジェクト管理を行っています。私たちのチームは内部クライアント専用のソフトウェアを開発しており、プロジェクト間で多くのdll共有があります。ソースコードのバージョン管理にもSVNを使用しています。
共通ライブラリ、アプリケーションライブラリ(ビジネスルールなど)、イントラネットWebサイト、インターネットWebサイト、Windowsフォームなど、アプリケーションのさまざまな部分に対応するソリューションがあります。SVN構造は次のようになります
SVN
    -CommonLibrary (VS Solution)
        -Source
            -CommonLibrary.Core (VS Project)
            -CommonLibrary.Security (VS Project)
            -CommonLibrary.Web (VS Project)
    -OurCompanyLibrary (VS Solution)
        -Libraries (Projects within this solution reference these)
            -CommonLibrary.Core.dll
            -CommonLibrary.Security.dll
        -Source
            -OurCompanyLibrary.Application1 (VS Project)
            -...
            -OurCompanyLibrary.ApplicationN (VS Project)
    -OurCompanyIntranet (VS Solution) (MVC framework)
        -Libraries (Projects within this solution reference these)
            -CommonLibrary.Core.dll
            -CommonLibrary.Security.dll
            -CommonLibrary.Web.dll
            -OurCompanyLibrary.Application1.dll
        -Source
            -OurCompanyIntranet.Application1 (VS Class Library Project)
            -...
            -OurCompanyIntranet.ApplicationN (VS Class Library Project)
            OurCompanyIntranet.UI (VS Web Project)
    -OurCompanyInternet (VS Solution) (MVC framework)
        -Libraries (Projects within this solution reference these)
            -CommonLibrary.Core.dll
            -CommonLibrary.Security.dll
            -CommonLibrary.Web.dll
            -OurCompanyLibrary.Application1.dll
        -Source
            -OurCompanyInternet.Application1 (VS Class Library Project)
            -...
            -OurCompanyInternet.ApplicationN (VS Class Library Project)
            -OurCompanyInternet.UI (VS Web Project)
コードを複数のソリューションに分割する理由は、さまざまな状況(イントラネットアプリ、インターネットアプリ、Winformアプリ)でアプリケーションライブラリを再利用できるためです。また、イントラネットおよびインターネットソリューションには、複数のアプリケーションが含まれています。これが現在の構造です。これが最良の組織構造であるかどうかはわかりませんが、私たちにとってはうまくいきます。
TFSに切り替える際の問題は、1つのチームプロジェクトが複数のVSソリューションにパーツを含めることができないことです。たとえば、Application1のTFSチームプロジェクトを設定して、そのアプリケーションの製品バックログを作成します。Application1では、アプリケーションを完了するためにOurCompanyLibrary、OurCompanyIntranet、およびOurCompanyInternetを変更する必要がありますが、TFSを使用すると、Application1のVSソリューションは1つだけになります。
これは、アプリケーションを開発する方法の例です。OurCompanyLibraryVSソリューションに保存されているすべてのドメインモデルとビジネスルール。アプリケーションを開発するとき、それをApplication1と呼びます。まず、OurCompanyLibraryVSSolutionの下のOurCompanyLibrary.Application1VSプロジェクトでドメインモデルとビジネスルールの作成を開始します。ドメインモデルが開発されたら、OurCompanyIntranetおよびOurCompanyInternetVSソリューションでUI側のプログラミングに移ります。これらのソリューションはMVCスタイルのWebサイトです。OurCompanyIntranetには、すべてのビュー(.aspxファイル)、css、javasciprtなどを含むVS WebプロジェクトOurCompanyIntranet.UIが含まれています。OurCompanyIntranetには、アプリケーション(この場合はOurCompanyIntranet.Application1)で区切られたすべてのモデルとコントローラーも含まれています。これをTFSで整理すると、問題になります。
これをTFSでどのように整理しますか?より意味のあるコード構造を整理する別の方法はありますか?私たちを正しい方向に導くような記事やウェブサイトは大いに役立ちます。