Можно ли как-то увидеть модульные тесты, которые охватывают исходный код Microsoft/ReferenceSource?

Здесь я буду писать только о https://github.com/microsoft/referencesource.

Модульные тесты не только покрывают код, но и служат отличной документацией.

Я заметил, что все проекты не имеют файла решения и, вероятно, служат библиотекой проекта, пожалуйста, поправьте меня, если я ошибаюсь.

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

Цель публикации справочного кода - для вашей справки, а не больше. Если вы ищете код с хорошим модульным тестированием, ваш единственный вариант — .NET Core/.NET 5.

Lex Li 13.12.2020 19:22

@LexLi Хорошо, понял. Спасибо дружище.

Omelian Levkovych 13.12.2020 19:23
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Скопировано из комментария с расширением, чтобы показать историю исходного кода .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/6

Только что был выпущен .NET 5, который окончательно объединил Mono и .NET Core, поэтому и Mono, и .NET Framework Reference Source выполнили свои основные задачи.

Моно и исходный код .NET Framework могут существовать немного дольше, но теперь ваше драгоценное время должно быть потрачено на .NET 5/6.

.NET 6 принесет следующие важные вехи (Xamarin и Unity в .NET 6).

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