Наша команда .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 Solution. Репозиторий исходного кода был дочерним элементом проекта TFS, поэтому, если бы мы этого захотели, нам пришлось дублировать общий код в каждом репозитории исходного кода проекта TFS. Как сказал мой коллега, это "ломает каждую известную передовую практику повторного использования кода и простоты". Для нас было достаточно разговора о сделке, и мы переключились на SVN.
Теперь, однако, мы столкнулись с действительно исправлением наших процессов разработки, а управление жизненным циклом приложений TFS довольно близко к тому, что мы хотим, и как мы хотим работать. Наша единственная точка привязки - это проблема с общим кодом.
Мы оцениваем другие коммерческие и с открытым исходным кодом, но поскольку мы уже платим за TFS за наши подписки MSDN, а TFS - это в точности то, что мы хотим, мы бы ДЕЙСТВИТЕЛЬНО хотели найти способ решения этой проблемы,
Кто-нибудь еще сталкивался с этим и придумал решение?
Если вы видели статью или публикацию на ней, которую вы можете поделиться со мной, это тоже помогло бы.
Как всегда, я открыт для ответов, таких как "Ты смотришь на все это неправильно, болтливый, ЗДЕСЬ, как это ДОЛЖНО быть сделано.