Проект TFS с несколькими решениями Visual Studio

Наша команда рассматривает возможность использования Team Foundation Server v.11 (2012) для управления нашими проектами. В настоящее время мы осуществляем управление проектами в электронных таблицах. Наша команда разрабатывает программное обеспечение только для внутренних клиентов, и между проектами существует много общих dll. Мы также используем SVN для контроля версий нашего исходного кода.

У нас есть решения для различных частей наших приложений: общая библиотека, библиотеки приложений (бизнес-правила и т. д.), веб-сайт в интранете, веб-сайт в Интернете, Windows Forms. Вот как выглядит наша структура 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 заключается в том, что один командный проект не может иметь части в нескольких решениях VS. Например, мы настроили бы командный проект TFS для Application1, чтобы у нас был список невыполненных работ по этому приложению. Application1 требует изменений в OurCompanyLibrary, OurCompanyIntranet и OurCompanyInternet для завершения приложения, но при использовании TFS будет только одно решение VS для Application1.

Вот пример того, как мы разрабатываем приложение. Все модели предметной области и бизнес-правила хранятся в решении OurCompanyLibrary VS. Когда мы разрабатываем приложение, назовем его Application1, мы сначала начинаем создавать модель предметной области и бизнес-правила в проекте OurCompanyLibrary.Application1 VS в составе OurCompanyLibrary VS Solution. После разработки модели предметной области мы переходим к программированию пользовательского интерфейса в решениях OurCompanyIntranet и OurCompanyInternet VS. Эти решения представляют собой веб-сайт в стиле MVC. OurCompanyIntranet содержит веб-проект VS OurCompanyIntranet.UI, который содержит все представления (файлы .aspx), css, javasciprt и т. д. OurCompanyIntranet также содержит все модели и контроллеры, разделенные по приложениям (в данном случае OurCompanyIntranet.Application1). Организация этого в TFS становится проблемой, потому что нам нужен Team Project для Application1, но это приложение может охватывать несколько решений, и мы не хотим везде дублировать код, добавляя одни и те же решения OurCompanyIntranet и OurCompanyInternet VS в систему управления версиями.

Как бы вы организовали это в TFS? Есть ли другой способ организации нашей структуры кода, который имел бы больше смысла? Любые статьи или веб-сайты, которые поведут нас в правильном направлении, очень помогут.

29
задан awilinsk 6 June 2012 в 11:58
поделиться