Наша команда разработчиков развертывает около 6 приложений ASP.NET (веб-формы, служба SOAP, служба RESTful и исполняемые файлы). Все эти приложения ссылаются на одни и те же несколько библиотек .DLL, которые содержат большую часть нашего бизнес-кода, и эти библиотеки ссылаются на несколько низкоуровневых фреймворков и библиотек безопасности (все это на C#). Сейчас все это размещено в TFVC в Azure.
Мы создаем новую организацию Azure и переносим все в Azure Git, и, что более важно, мы настраиваем CI/CD с помощью Pipelines. До этого момента у нас было только одно гигантское решение, которое мы используем для развертывания, которое содержит все. Проекты приложений просто используют ссылки проекта на проекты библиотек, и когда я создаю для развертывания, он создает все это. Затем мы просто независимо публикуем каждое приложение с помощью веб-развертывания на наших виртуальных машинах Azure.
Нам понадобится конвейер для каждого из этих приложений, и мы пытаемся найти лучший способ (1) структурировать наши проекты в нашем репозитории Repos и (2) как лучше всего ссылаться на библиотеки.
Должны ли библиотеки быть встроены в пакеты, а затем мы должны ссылаться на них из потока артефактов, который мы загружаем в конвейеры? Кроме того, должны ли каждое приложение и библиотека быть отдельным проектом в репозитории или они лучше работают как один большой проект? Я не уверен, что на эти вопросы есть окончательные ответы, но я надеюсь на какое-то направление или лучшие практики, на которые я могу ссылаться.