Около года назад наша компания выпустила относительно большой программный пакет, написанный в основном двумя старшими разработчиками. Для простоты демонстрации я назову это «проект А». С тех пор мы работаем над новым программным пакетом "проект B", и в его дереве находится ветвь проекта A.
Проект B имеет ссылку на проект A, но теперь, когда мы приближаемся к завершению проекта B, нам также нужно сослаться на B из A. Таким образом, после объединения ветвей A и перед тем, как начать жить с B, мы хотел бы объединить основные библиотеки между двумя проектами.
Какой опыт вы испытали в подобной ситуации? Каковы некоторые лучшие практики и уроки, извлеченные из этого проекта? Как лучше всего объединить основные библиотеки с минимальным воздействием на остальную часть исходного кода в проекте A?
EDIT:
Каково ваше мнение о целесообразности сохранения пространств имен проекта А, но при размещении кода в основной библиотеке проекта В (которая в конечном итоге станет основной библиотекой компании)? Оттуда, просто укажите новую библиотеку ядра компании в устаревших проектах ...
РЕДАКТИРОВАТЬ 2:
Спасибо за ответы. Может быть, немного больше технических разъяснений в порядке. Оба эти проекта очень тесно связаны, но у каждого есть свой собственный проект .NET Class Library для основной библиотеки. Кроме того, на каждую библиотеку ссылаются другие различные проекты .NET; внутренние и внешние веб-приложения, приложения Forms и т. д. Больше меня интересует вопрос, где должен жить исходный код - я не верю, что они должны оставаться двумя отдельными проектами .NET, но один проект содержит оба, сохраняя изначально существующие пространства имен , По мере продолжения разработки мы будем проводить рефакторинг, объединяя пространства имен, удаляя дублирующиеся функции и т. Д. Нет сомнений в том, что функциональность, содержащаяся в обеих существующих библиотеках, будет полезна в будущих проектах, а также возникает потребность в совместном использовании между обоими существующими «основные» библиотеки.