
File-based apps в .NET 10
badcasedaily1 4 минуты назад File-based apps в .NET 10 Простой 6 мин 19 Блог компании OTUS C# * Программирование * .NET * Обзор Привет, Хабр! C# исторически был языком для больших проектов: solution-файлы, проектная...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. badcasedaily1 4 минуты назад File-based apps в . NET 10 Простой 6 мин 19 Блог компании OTUS C# * Программирование * . NET * Обзор Привет, Хабр!
C# исторически был языком для больших проектов: solution-файлы, проектная структура, csproj с десятками настроек, дисциплина ceremony для запуска даже простой утилиты. Для маленьких скриптов, которыми решают рутинные задачи в CI или DevOps, обычно проще написать на Python или Bash, чем разворачивать целый проект ради двадцати строк кода. NET 10, который вышел в ноябре 2025 года и получил статус LTS до ноября 2028, этот пробел наконец закрыли.
Технические детали
Команда dotnet run app. cs теперь работает без csproj, без sln, без папки с проектной структурой: один файл, одна команда, готовый запускаемый код. Подход называется file-based apps.
Разберём, как он устроен, что умеет и где вообще полезен. Базовый сценарийСоздаём файл hello. cs с одной строкой:Console.
WriteLine("Hello from a single file! Запускаем:$ dotnet run hello. cs Hello from a single file!
Отраслевые последствия
Никаких csproj, папок, каких-то NuGet-packages. NET SDK создаёт временный проект, разрешает зависимости, компилирует и запускает программу, после чего убирает временные артефакты в кэш. Для пользователя это выглядит как запуск Python-скрипта, только с компиляцией под капотом.
Top-level statements, появившиеся в C# 9, тут используются по умолчанию: не нужно писать класс Program с методом Main, можно сразу писать код первой строкой. Это и раньше работало в обычных проектах, но требовало явного выбора шаблона. В file-based apps это поведение стандартное.
Директивы внутри файлаЕсли бы single-file apps умели только Console. WriteLine, ценность была бы небольшой. Реальная сила появляется через директивы, которые позволяют объявлять NuGet-зависимости, выбирать SDK и задавать MSBuild-свойства прямо в исходнике.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





