Я согласен со многими ответами здесь. В .NET не было большого количества независимых IDE, вы использовали Visual Studio для написания своего кода, управления своими зависимостями и т. Д. Решение в VS достаточно хорошо для MSBuild, поэтому вы используете его на своих серверах сборки.
С другой стороны, в Java появилось много IDE, а Java пошла по пути управления внешними по отношению к IDE проектами. Освобождение разработчика для использования его IDE по выбору. Недавно я начал кросс-тренинг из C # в Java и могу сказать, что концепция сборки maven довольно чужды, но потом мне это нравится, и, что более важно, я вижу, что предлагает мне концепция репо.
Теперь, как управляемые зависимости VS требуют от вас добавления либо ссылки на проект, либо ссылки на DLL. Это добавление ссылки на DLL имеет недостатки. Как вы управляете сменой версий, как вы структурируете dll сторонних разработчиков из внешних и внутренних источников, а также dll, которые вы хотели бы включить из вашей собственной команды, но не в качестве ссылки на проект. Я сделал много обходных путей, основанных в целом на файловой структуре каталогов, но ни один из них не является элегантным или отличным при изменении версий. Также затрудняет ветвление, потому что это учитывает то, как вы структурируете каталоги.
Теперь я работал с Java и общедоступными репозиториями mavan, супер круто. Я эффективно работал с Python и pip-инсталляцией, используя публичные репозитории. Наконец я снова кое-что сделал в C # с VS 2015, и интеграция с Nuget - это именно то, чего не хватало.
Теперь в корпоративной среде публичные репо не всегда доступны напрямую, поэтому вам нужны корпоративные репо. Опять же, экосистемы, не принадлежащие Microsoft, впереди этого.
По сути, обобщение Java произошло из среды с более открытым исходным кодом, в которой обслуживание проекта IDE не использовалось, тогда как .NET эволюционировало из Visual Studio, управляющей проектом, и эти разные пути означали, что репозитории позже появятся в Visual Studio.
Наконец, и это мое наблюдение, сообщество Java имеет тенденцию больше использовать фреймворки других людей, поскольку базовые библиотеки Java предлагают меньше. В то время как .NET люди пишут намного больше своего собственного кода. У сообщества Java есть большая экосистема шаблонов и практик, тогда как .NET снова написал собственный код или ждал Microsoft. Это меняется, но еще раз показывает, почему .NET отстает от Java в требованиях к репозиториям.