Мне нужны некоторые рекомендации по управлению сборками и версиями и управлению их исходным кодом.
Сначала немного информации о приложении. Приложение представляет собой систему типа ERP, где несколько клиентов могут запускать различные модули; некоторые из них
стандартные и / или некоторые из них настроены специально для клиента. Каждый модуль реализует определенную бизнес-функцию или ее вариант.
Обоснование заключается в том, что эти модули можно легко заменять / настраивать, не затрагивая другие модули и не требуя перестройки.
Приложение основано на оболочке приложения, ядре приложения и затем загруженных модулях времени выполнения. Все клиенты используют
оболочка приложения и ядро, а затем любое количество модулей. В настоящее время у меня около 70+ модулей.
Ядро приложения состоит из 2 сборок. Первыми являются сервисы / бизнес-логика, уровни доступа к данным, объекты данных и т. Д.
Во-вторых, все основные формы пользовательского интерфейса, диалогов и т. Д.
Каждый из модулей реализован как отдельная сборка (как проект VS в решении). Каждый из этих проектов ссылается на 2 основных
сборок. Эти сборки модулей загружаются во время выполнения при запуске приложения. Таким образом, чтобы изменить модуль, можно просто
заменить сборку. Основная оболочка приложения создает экземпляры класса ядра приложения.
Теперь сценарий таков:
- Когда я меняю модуль, его сборочная версия сталкивается.
Когда я изменяю реализацию метода сборки ядра (т.е. не меняю сигнатуры классов), тогда мне не нужно
Перестройка зависимых модулей и, следовательно, их версии остаются как есть. Тем не менее, версия сборки ядра получает удар.
Когда я добавляю свойство или метод к базовому классу, мне также не нужно перестраивать зависимые модули и, следовательно, их версии.
оставайся как есть. Опять же, версия сборки ядра получает удар.
Однако, когда я изменяю сигнатуру базового класса, мне нужно перестроить все зависимые сборки. Должен ли я поднять каждый модуль
версия в этом случае?
Контроль версий
Поскольку каждый модуль представляет собой отдельный проект, каждый из них имеет свой корневой элемент в дереве VSS. Так что я должен маркировать каждый модуль
узел с версией?
Каков наилучший способ управления зависимостями версий? Excel
Кроме того, развертывание каждого клиента теперь является выпуском (с номером), но с набором модулей, каждый из которых имеет соответствующие версии сборки.
Как, черт возьми, я слежу за этим?
Буду признателен за любые предложения / комментарии по поводу версий, а также за философию управления этим каталогом модулей