TFS и совместно использованные проекты в нескольких решениях

Наша команда.NET работает над проектами для нашей компании, которые попадают в отличные категории. Некоторые - внутренние веб-приложения, некоторые являются внешними (публично стоящий) веб-приложения, у нас также есть внутренние Приложения Windows для наших корпоративных офисных пользователей и приложения Windows Forms для наших торговых точек (хранилища). Конечно, потому что мы ненавидим повторное использование кода, у нас есть тонна кода, который является общим для различные приложения. В настоящее время мы используем SVN в качестве нашего управления исходным кодом, и нам разметили наш репозиторий как это:

 - = folder, | = Visual Studio Solution
-SVN
   - Internet
      | Ourcompany.com
      | Oursecondcompany.com
   - Intranet
      | UniformOrdering website
      | MessageCenter website
   - Shared
      | ErrorLoggingModule
      | RegularExpressionGenerator
      | Anti-Xss
      | OrgChartModule etc...

Так..

Решение OurCompany.com в интернет-папке имело бы проект веб-сайта, и это будет также включать ErrorLoggingModule, RegularExpressionGenerator и проекты Anti-Xss от общего каталога.

Точно так же наше решение для веб-сайта UniformOrdering имело бы каждый из этих проектов включенным в решение также.

Мы предпочитаем иметь ссылку проекта к .dll ссылке, потому что, в первую очередь, если мы должны добавить или зафиксировать функцию в ErrorLoggingModule при работе над веб-сайтом OurCompany.com, это тут же. Кроме того, это позволяет нам создавать каждое решение и видеть, повреждают ли изменения в общем коде какие-либо другие приложения. Это должно работать хорошо над сервером сборки также, если я корректен.

В SVN нет никакой проблемы с этим. SVN и Visual Studio не связаны в способе, которым управление исходным кодом TFS. Мы никогда не выясняли, как работать этот тип структуры в TFS, когда мы использовали его, потому что в TFS, проект TFS всегда связывался с Решением для Visual Studio. Репозиторий исходного кода был ребенком Проекта TFS, поэтому если бы мы хотели сделать это, то мы должны были копировать Общий код в репозитории исходного кода каждого проекта TFS. Как мой коллега выразился, это "повреждает каждую известную лучшую практику о повторном использовании кода и простоте". Именно действительно недопустимое для нас мы переключились на SVN.

Теперь, однако, мы сталкиваемся с действительно фиксацией наших процессов разработки, и Управление жизненным циклом приложения TFS достаточно близко к точно, что мы хотим, и как мы хотим работать. Наш один камень преткновения является общей проблемой кода.

Мы оцениваем другие коммерческие решения и решения с открытым исходным кодом, но так как мы уже платим за TFS с нашими Подписками MSDN, и TFS в значительной степени точно, что мы хотим, мы ДЕЙСТВИТЕЛЬНО хотели бы найти путь вокруг этой проблемы.

Кто-либо еще столкнулся с этим и предложил решение?

Если Вы видели статью или отправляющий на этом, что можно совместно использовать со мной, который помог бы также.

Как всегда, я открыт для ответов как, "Вы смотрите на все это неправильно, тупица, ВОТ способ, которым это ДОЛЖНО быть сделано.

18
задан Daniel Mann 14 February 2016 в 16:12
поделиться

1 ответ

Я думаю, здесь есть некоторые недоразумения. Во-первых, вы можете иметь несколько (сколько угодно) решений в одном проекте TFS.Кроме того, один проект Visual Studio может иметь любое количество связанных с ним решений.

Во-вторых, какую версию TFS вы используете? 2010 год отличается от 2005/08 года тем, как он обрабатывает проекты TFS.

В 2008 году есть несколько способов приблизиться к этому, в зависимости от того, что вы хотите получить от этого. У вас может быть несколько проектов TFS или один проект TFS.

Начну с нескольких.

Настройте проект TFS для кода типа общей библиотеки и другие проекты для каждого имеющегося у вас обычного проекта. В рамках процесса разработки этой общей библиотеки проверяйте завершенные сборки. Затем выполните ветвление этих сборок в любой другой проект TFS, в котором вы хотите их использовать. Когда вы выполняете обновление функций или исправление ошибок в общей библиотеке, просто объедините ветвь с любым другим проектом TFS, в который вы хотите включить обновления.

Это позволяет вам делать общие изменения для одного приложения без необходимости продвигать их все.

Если вам нужен один проект TFS, содержащий все, просто добавьте папки для каждого проекта Visual Studio, который вам нужен. Решения Visual Studio могут без проблем обращаться к проектам за пределами своего базового дерева. Теперь при настройке таких вещей, как сборки для каждого решения, убедитесь, что вы ограничили каталог, из которого сервер сборки извлекает / наблюдает. Таким образом, у вас не будет необходимости создавать один из ваших внутренних сайтов, когда на внешний сайт были внесены изменения.

15
ответ дан 30 November 2019 в 09:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: