Миграция классического решения ASP.NET в Azure Repo

Наша команда разработчиков развертывает около 6 приложений ASP.NET (веб-формы, сервис SOAP, сервис RESTful и исполняемые файлы). Все эти приложения ссылаются на одни и те же библиотеки.DLL, которые содержат большую часть нашего бизнес-кода, и эти библиотеки ссылаются на несколько библиотек низкоуровневой инфраструктуры и безопасности (это все в C#). Прямо сейчас все это размещено в TFVC на лазурном.

Мы создаем новую организацию Azure и переносим все в Azure Git, и что более важно, мы настраиваем CI/CD с использованием конвейеров. До этого момента у нас было только одно гигантское решение, которое мы используем для развертываний, которое содержит все. Проекты приложения просто используют ссылки на проекты библиотечных проектов, и когда я собираю для развертывания, он создает все это. Затем мы просто публикуем каждое приложение независимо с помощью веб-развертывания на наших виртуальных машинах Azure.

Нам понадобится конвейер для каждого из этих приложений, и мы пытаемся найти лучший способ (1) структурировать наши проекты в нашем репозитории Repos и (2) как лучше всего ссылаться на библиотеки.

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

1 ответ

Должны ли библиотеки быть встроены в пакеты, а затем мы ссылаемся на них из фида артефактов, который мы помещаем в конвейеры?

Сборка библиотеки в пакет является хорошим выбором, особенно те библиотеки, на которые ссылаются несколько приложений. Использование пакета nuget уменьшит отношения цитирования между проектами, упрощая нам управление нашими проектами.

Проверьте эту ветку для получения дополнительных преимуществ Nuget и эту ветку для выбора ссылки на проект или NuGet.

должно ли каждое приложение и библиотека быть собственным проектом в репозитории, или он имеет тенденцию работать лучше как один большой проект?

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

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

Итак, как сказал DJ, вы должны выбирать сами.

Вы можете проверить следующие темы для получения дополнительной информации по этой теме:

Почему вы должны использовать один репозиторий для всех проектов вашей компании

Выбор между одним или несколькими проектами в репозитории git?

Надеюсь это поможет.

Другие вопросы по тегам