Здесь я буду писать только о https://github.com/microsoft/referencesource.
Модульные тесты не только покрывают код, но и служат отличной документацией.
Я заметил, что все проекты не имеют файла решения и, вероятно, служат библиотекой проекта, пожалуйста, поправьте меня, если я ошибаюсь.
Кроме того, побочный вопрос: есть ли какая-то цель не публиковать ваши модульные тесты, чтобы затруднить поиск некоторых уязвимостей в вашем коде? Если да, то это, вероятно, должно быть действительно полезным, потому что без модульных тестов действительно сложнее понять какую-то часть кода, а также делает жизнь разработчиков немного болезненной.
@LexLi Хорошо, понял. Спасибо дружище.
Скопировано из комментария с расширением, чтобы показать историю исходного кода .NET Framework.
.NET Framework с самого начала был проектом с закрытым исходным кодом, и Microsoft делилась своим кодом только с определенными партнерами, чтобы они могли использовать код для разработки некоторых продуктов для взаимодействия.
Пример, Grasshopper от Mainsoft
Многие партнеры Microsoft не могут позволить себе роскошь видеть код, поэтому им приходится полагаться на декомпиляторы (например, .NET Reflector), чтобы заглянуть в сборки и использовать отражения для обхода неприятных ошибок.
В 2007 году Microsoft наконец решила опубликовать некоторые исходные файлы .NET Framework под специальной лицензией под названием Microsoft Reference License (MS-RL).
См. историческую запись в блоге Скотта Гатри в 2007 году для более подробной информации.
Фактический код был общедоступен в 2008 году.
Поскольку цель состоит в том, чтобы помочь разработчикам выполнить отладку части .NET Framework, включенные исходные файлы далеко не полны. Файлы ресурсов/файлы проекта и т. д. намеренно отсутствуют, чтобы вы не могли пересобрать сборки из базы кода.
Обратите внимание, что из-за того, что такой код распространяется на лицензию, проекты с открытым исходным кодом, такие как Mono, не могут использовать его для улучшения совместимости.
Когда Microsoft наконец решила открыть исходный код .NET и создать .NET Core в 2014 году, они ожидали, что Mono будет напрямую интегрироваться с кодовой базой .NET Core.
Однако проблем было слишком много, поэтому ребята из Mono начали сначала интегрироваться с эталонным кодом .NET Framework, а Microsoft изменила лицензию, распространяющуюся на эталонный источник, на MIT (то, что вы видите сегодня), чтобы помочь.
Вы можете прочитать это для более подробной информации.
За последние годы Microsoft выпустила там больше файлов для Mono, но цель снова состоит в том, чтобы улучшить совместимость, а не помочь разработчикам воссоздать сборки .NET Framework.
Только что был выпущен .NET 5, который окончательно объединил Mono и .NET Core, поэтому и Mono, и .NET Framework Reference Source выполнили свои основные задачи.
Моно и исходный код .NET Framework могут существовать немного дольше, но теперь ваше драгоценное время должно быть потрачено на .NET 5/6.
.NET 6 принесет следующие важные вехи (Xamarin и Unity в .NET 6).
Цель публикации справочного кода - для вашей справки, а не больше. Если вы ищете код с хорошим модульным тестированием, ваш единственный вариант — .NET Core/.NET 5.