0

Я выполняю некоторые работы с несколькими общими сборками .NET и общим веб-приложением, с которым я хотел бы работать лучше в нашей CC.NET/ Среда сборки NAnt..NET automatic build with cruisecontrol.net + nant - множественная структура сборки/лучшая практика

В настоящее время у нас есть несколько сборок .NET (общий общий код, который мы используем в клиентских проектах), которые существуют в разных .NET-решениях в разных хранилищах в нашем SCM (Vault, кстати). Все они сконфигурированы под CC.NET отдельно, поэтому в настоящее время у нас есть достойный контроль над их сборкой и развертыванием.

Мы разработали систему CMS, которая использует некоторые сборки .NET и включает в себя общий проект веб-сайта администрирования и проект веб-сайта шаблона. Из этого решения мы имеем следующие элементы, которые необходимо управлять отдельно:

  • Интерфейс администратора не привязан к .NET, поэтому он основан на шаблонах, и мы разрабатываем его для этого в настоящее время.
  • Совместная сборка CMS построена поверх других других общих сборок компании.
  • Контроль над функциональностью в каждой основной сборке/выпуске CMS.

Я хотел бы, чтобы выход сборки этого решения являлся шаблоном Visual Studio, который мы можем использовать для разработки других клиентских сайтов и улучшения управления изменениями версий внутри самой CMS, поскольку мы добавляем функции в кодовую базу.

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

Основные соображения для нас являются:

  • ли мы использовать функциональность очереди интеграции в CC.Net, чтобы обеспечить порядок сборки и стягивают сборки нам нужно для CMS во время сборки?
  • Отладка внутри клиентского сайта CMS, то есть переход в код сборных сборок, когда клиентское решение является версией базовой системы CMS и поэтому разделено.
  • Разработка и расширение CMS при использовании общих сборок, т.е. мы добавляем проекты сборки в магистральное решение во время разработки (через репозитории исходного источника), а затем полагаемся на сборку, чтобы объединить ее или полностью использовать другой подход ?
  • Любые другие проблемы, которые люди могли испытать, которые могут изменить наш образ мыслей?

Надеюсь, этот вопрос не слишком расплывчатый, и некоторые из вас рассмотрят эти проблемы. С нетерпением ждем всяческих переживаний.

Большое спасибо! Tim

ответ

1

Я, к сожалению, не может ответить на все ваши очки, но позвольте мне начать с этого:

  • ли мы использовать функциональность очереди интеграции в CC.Net для обеспечить порядок сборки и собрать вместе сборки, которые нам нужны для CMS по адресу Время сборки?

Короткий ответ - да, вы должны. Атрибут очереди обеспечивает порядок сборки в исполняемом экземпляре CC.NET и дает вам сериализацию построений, которые зависят друг от друга. Чтобы указать, какие проекты зависят друг от друга, вы должны использовать project triggers. Do не полагаться на queuePriority для этой задачи.

Скорее всего, вы потянете за кусочки, необходимые для сборки во время сборки. Если у вас нет ограничений по времени для ваших индивидуальных сборок.

Re:

  • Разработка и расширение CMS, когда он использует общие сборки т.е. мы добавим сборочные проекты к решению ствола в процессе развития (через управление источником хранилищ), а затем полагаться на сборке в вытащить его вместе или полностью использовать другой подход?

Я принципиально против распространения бинарных файлов в багажнике, если это не какие-то библиотеки, которые не должны быть обновлены/изменены на регулярной основе. Если вы сами создаете общие сборки, вам следует рассмотреть возможность вытащить их из артефактов на сервере сборки.

+0

Спасибо за ваши комментарии Steen –

Смежные вопросы