Версии C# и .NET — справочная таблица
Краткая шпаргалка для ориентации в экосистеме. Подробная хронология — в Истории платформы .NET. Актуальные даты поддержки сверяйте с официальной политикой Microsoft.
Версии языка C#
Версия C# задаётся в проекте (LangVersion в .csproj) и не всегда совпадает с версией runtime: например, C# 12 можно использовать с net8.0, если SDK это позволяет.
| C# | Год | Платформа .NET | Visual Studio | Ключевые нововведения |
|---|---|---|---|---|
| 1.0 | 2002 | .NET Framework 1.0 | Visual Studio .NET (2002) | свойства, события, делегаты, foreach, unsafe |
| 2.0 | 2005 | .NET Framework 2.0 | Visual Studio 2005 | generics, partial, yield, nullable value types (int?) |
| 3.0 | 2007 | .NET Framework 3.5 | Visual Studio 2008 | LINQ, var, лямбды, extension methods, анонимные типы |
| 4.0 | 2010 | .NET Framework 4.0 | Visual Studio 2010 | dynamic, именованные и опциональные параметры |
| 5.0 | 2012 | .NET Framework 4.5 | Visual Studio 2012 | async / await |
| 6.0 | 2015 | .NET Framework 4.6+ | Visual Studio 2015 | интерполяция строк, ?., expression-bodied members, Roslyn |
| 7.0 | 2017 | .NET Framework 4.6.2+ / .NET Core 2.0 | Visual Studio 2017 | кортежи, pattern matching, ref locals, out variables |
| 8.0 | 2019 | .NET Core 3+ / .NET Framework 4.8 | Visual Studio 2019 | nullable reference types, ranges, IAsyncEnumerable |
| 9.0 | 2020 | .NET 5 | Visual Studio 2019 16.8 | record, init, top-level statements |
| 10.0 | 2021 | .NET 6 | Visual Studio 2022 | global usings, file-scoped namespaces |
| 11.0 | 2022 | .NET 7 | Visual Studio 2022 17.4 | raw string literals, required, generic math |
| 12.0 | 2023 | .NET 8 | Visual Studio 2022 17.8 | primary constructors, collection expressions |
| 13.0 | 2024 | .NET 9 | Visual Studio 2022 17.12 | params collections, ref/unsafe в итераторах |
| 14.0 | 2025 | .NET 10 | Visual Studio 2026 | field в свойствах, расширения nameof, Span в лямбдах |
Обзоры по версиям на Learn — в справочнике языка C# (472). Спецификация языка — ECMA-334 и C# specification на Microsoft Learn.
Версии платформы .NET (современная линейка)
С .NET 5 единое имя .NET заменило бренд «.NET Core». Каждый ноябрь выходит новый major-релиз; чётные номера — LTS (долгая поддержка), нечётные — STS (стандартная, короче).
| Версия | Тип | Дата выхода | Окончание поддержки | Visual Studio |
|---|---|---|---|---|
| .NET 6 | LTS | ноябрь 2021 | ноябрь 2024 | 2022 17.0 |
| .NET 7 | STS | ноябрь 2022 | май 2024 | 2022 17.4 |
| .NET 8 | LTS | ноябрь 2023 | ноябрь 2026 | 2022 17.8 |
| .NET 9 | STS | ноябрь 2024 | май 2026 | 2022 17.12 |
| .NET 10 | LTS | ноябрь 2025 | ноябрь 2028 | 2026 18.0 |
Для новых проектов в 2026 году разумная отправная точка — .NET 8 (ещё в поддержке) или .NET 10 (текущий LTS). Примеры в энциклопедии ориентированы на .NET 8+.
История .NET Core 1.x–3.x, .NET Framework и слияния веток — раздел 12 и статья 11.
.NET Framework (legacy, только Windows)
Последняя версия — 4.8.1 (2022). Новые API в Framework не добавляются; исправления безопасности продолжаются. Типичные сценарии — WinForms, WPF, старый ASP.NET, корпоративные системы на net48.
| Версия | CLR | Примечание |
|---|---|---|
| 2.0 | 2.0 | generics в CLR |
| 3.0 | 2.0 | WinFX — WPF, WCF, WF поверх 2.0 |
| 3.5 | 2.0 | C# 3.0, LINQ, ASP.NET AJAX |
| 4.x | 4 | async, Roslyn, последняя линейка 4.8 / 4.8.1 |
Реализации и что выбрать
| Реализация | Статус | Когда встречается |
|---|---|---|
| .NET (CoreCLR) | основная, open source | новые веб-, cloud-, кроссплатформенные проекты |
| .NET Framework | поддержка, без новых фич | Windows desktop, legacy IIS |
| Mono | часть современного .NET | Blazor WebAssembly, мобильные workload, Unity (ограниченно) |
| Portable.NET, DotGNU | заморожены | только исторический контекст |
Предварительная компиляция (кратко)
| Механизм | Эпоха | Суть |
|---|---|---|
NGen (ngen.exe) | .NET Framework | нативный код в кэше ОС до запуска; устарел для новых проектов |
ReadyToRun (R2R, PublishReadyToRun) | .NET Core 3+ | нативные образы при dotnet publish, JIT остаётся для остального |
Native AOT (PublishAot) | .NET 7+ | статический бинарник без JIT; меньше рефлексии |
Подробнее — Платформа .NET — производительность, свойство PublishReadyToRun в справочнике конфигураций.
Связанные материалы
- C# — язык платформы .NET — название, ECMA-334, первый проект
- История платформы .NET
- Вопросы на собеседование · Чек-лист самопроверки
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). C# как язык платформы .NET - устройство проекта, роль `.cs`-файлов и базовые принципы организации кода. C# — это современный, типизированный язык программирования общего назначения, разработанный корпорацией Microsoft. Справочник-шпаргалка по конфигурациям в C — типы, синтаксис, стандартная библиотека, типовые паттерны. Не заменяет пошаговое обучение. Учебный курс — раздел. Набор советов, правил, принципов и обычаев в разработке на этом языке. Кавычки, точки, запятые, скобки и прочие знаки препинания. Ключевые слова C# - назначение базовых конструкций языка и примеры их применения в типичном коде. Набор функций, которые включены в стандартную библиотеку языка. Пространства имён в C# - организация модулей, `file-scoped namespace` и поддержание чистой структуры кода. манипулировать данными (арифметические, логические, сравнительные операторы). Самый базовый способ ветвления — оператор if. Он проверяет условие и, если оно истинно (true), выполняет блок кода. Обработка исключений в C# - типы исключений, `try/catch/finally` и практики надежного кода. Платформо-зависимые исключения — например, PlatformNotSupportedException используется в кроссплатформенных API, когда функция недоступна на текущей ОС.C# - язык программирования платформы .NET
Что требуется знать перед началом изучения языка программирования C#
Справочник по конфигурациям в C#
Рекомендации по разработке на C#
Синтаксис и пунктуация в C#
Ключевые слова языка C#
Встроенные функции и методы C#
Пространства имён в C#
Управляющие конструкции и логические операторы
Условные выражения и ветвления
Обработка исключений в C#
Иерархия классов исключений в C#