Я погоджуюсь з багатьма відповідями тут. .NET не мав великої кількості незалежних середовищ розробки, ви використовували Visual Studio для написання коду, управління залежностями і т. Д. Рішення у VS досить добре для MSBuild, тож саме цим ви користуєтесь на своїх серверах збірки.
З іншого боку, Java розвинула багато середовищ розробки, і Java пішла шляхом управління проектами, зовнішніми від IDE. Звільнення розробника використовувати їх IDE на вибір. Нещодавно я розпочав перехресний тренінг з C # на Java, і можу сказати вам, що концепція збірки maven досить чужа, але потім через деякий час мені це подобається, і що більш важливо, я бачу, що пропонує мені концепція репо.
Тепер, як VS-керовані залежності вимагають додати або посилання на проект, або посилання на DLL. Це додавання посилання DLL є помилковим. Як ви керуєте зміною версій, як структуруєте сторонні DLL-файли із зовнішніх та внутрішніх джерел, а також DLL-файли, які ви хотіли б включити від власної команди, але не як посилання на проект. Я провів багато робочих процедур, заснованих загалом на файловій структурі каталогів, але жодна з них не є елегантною чи чудовою при зміні версій. Також ускладнює розгалуження, оскільки це стає важливим фактором у структуруванні каталогів.
Зараз я працював з Java та публічними репозиторіями mavan, супер круто. Я працював з Python та pip install ефективно, знову використовуючи публічні репозиторії. Нарешті, я знову зробив щось у C # з VS 2015, і інтеграція з Nuget - саме те, чого не вистачало.
Зараз у корпоративному середовищі публічні репозиторії не завжди є безпосередньо доступними, тому вам потрібні корпоративні репо. Знову ж таки, екосистеми, що не належать Microsoft, випереджають це.
В основному підбиваючи підсумки, Java виникла із середовища з більш відкритим кодом, де не використовувалось підтримка проекту IDE, тоді як .NET розвинувся з Visual Studio, що керує проектом, і ці різні шляхи означали, що репо згодом з’являться у Visual Studio.
Нарешті, і це моє зауваження, спільнота Java, як правило, більше використовує фреймворки інших людей, оскільки базові бібліотеки Java пропонують менше. Тоді як люди .NET пишуть набагато більше власного коду. Спільнота Java має більшу екосистему шаблонів і практик, тоді як .NET знову писав власний код або чекав на Microsoft. Це змінюється, але знову показує, чому .NET відстає від Java у вимозі до репозиторіїв.