Что такое .NET Standard
Что проверяют
Ориентируетесь ли вы в экосистеме .NET и отличаете ли спецификацию от реализации. Дополнительно проверяют свежесть знаний: ответ про .NET Standard как про рекомендуемый выбор для нового кода выдаёт человека, который давно не заводил проект с нуля.
Как отвечать
.NET Standard это формальная спецификация набора API, а не рантайм и не библиотека. Каждая её версия перечисляет типы и методы, которые обязана предоставить любая реализация, заявившая поддержку этой версии. Приложение никогда не запускается на .NET Standard, целью его ставят только библиотеки.
Смысл был в том, чтобы одну сборку могли подключить и старый .NET Framework, и .NET Core, и мобильная реализация, без условной компиляции под каждую. Правило простое: чем ниже версия, тем шире совместимость и тем беднее доступный API.
Обязательно скажите главное про сегодняшний день: развитие остановлено, новых версий не будет. После объединения платформ в единый .NET новым библиотекам ставят целью конкретную версию вида net8.0. Вариант netstandard2.0 остаётся живым только ради совместимости с .NET Framework, потому что версию 2.1 тот не поддерживает и не будет. Если нужны обе аудитории сразу, делают мультитаргет из двух целей в одном проекте.
Где спотыкаются
Называют .NET Standard платформой или средой выполнения. Он ничего не исполняет, это контракт, и путаница сразу вылезает на вопросе, что именно попадает в приложение при сборке.
Берут netstandard2.1 ради современного API и обнаруживают, что библиотека не подключается к проекту на .NET Framework. Тот так и остался на версии 2.0, обхода нет, придётся опускать цель или резать функциональность.
Ставят .NET Standard всем новым библиотекам по привычке. Если весь код внутри компании живёт на актуальном .NET, это чистые ограничения: недоступны новые типы и возможности языка, а выгоды от переносимости никакой.