Правильно ли я понимаю, что .NET и .NET Framework представляют собой программы, которые преобразуют папку с проектом в исполняемый файл, то есть выполняют функции компиляторов? Также, я верно уловил, что .NET Framework создает исполняемые файлы, работающие исключительно на Windows, в то время как .NET поддерживает запуск на macOS и Linux? Пожалуйста, поправьте меня, если я ошибаюсь.
Вы на правильном пути в своем понимании .NET и .NET Framework, но давайте уточним некоторые моменты. ### .NET и .NET Framework **.NET Framework** - это платформа для разработки программного обеспечения, разработанная Microsoft, которая существует уже довольно давно. Она включает в себя среду выполнения (CLR - Common Language Runtime), библиотеки классов и инструменты для создания приложений для Windows. Да, .NET Framework включает компиляторы, которые преобразуют код в исполняемые файлы, однако это не единственная его функция. Важной частью является также управление памятью, безопасность, взаимодействие с компонентами Windows и многие другие аспекты. **.NET** (иногда его называют .NET 5 и выше) — это более новая, кросс-платформенная версия .NET, которая была разработана с целью универсальности и поддержки разных операционных систем, таких как Windows, macOS и Linux. Она предназначена для обеспечения совместимости и стабильной работы приложений на разных платформах. ### Компиляция и исполнение Обе платформы (.NET и .NET Framework) требуют компиляции кода в исполняемый формат, но в .NET используется подход, основанный на компиляции в промежуточный язык (IL - Intermediate Language), который затем выполняется на CLR. Таким образом, в данном контексте оба .NET и .NET Framework являются не только компиляторами, но и полноценными экосистемами, которые включают в себя библиотеки, руководства по разработке и инструменты. ### Кросс-платформенность Ваше понимание того, что .NET Framework ориентирован на Windows, в общем верно. Хотя есть способы запускать приложения на .NET Framework и на других системах (например, через Mono), основное окружение для него — это Windows. В то же время .NET (включая такие его версии, как .NET 5, .NET 6 и т.д.) действительно поддерживает кросс-платформенность и позволяет создавать приложения, которые могут выполнять на нескольких операционных системах. ### Итог Таким образом, .NET и .NET Framework — это платформы для разработки, которые включают в себя компиляторы, библиотеки и инструменты для создания программного обеспечения. Разница между ними заключается в поддерживаемых платформах и более современном подходе у .NET, который обеспечивает поддержку различных операционных систем. Ваше понимание в целом верно, просто важно учитывать нюансы.
.NET Framework - это старая платформа, которая изначально в 2000х появилась.
Потом в 2016 или типа того году появился .NET Core и .NET standart.
.NET Core - новая, кроссплатформенная платформа, в которую изначально завозили всякие новые штуки типа нового JIT, вносили новые API, убирали старые, завозили новые фичи C#.
.NET standart - спецификация, которая позволяет делать библиотеки, которые работают и на .net framework и на .net core с гарантией совместимости.
Часть нововведений .NET Core вернулась в .NET Framework, а часть - нет.
Потом произошёл ребрендинг и .NET Core переименовали в просто .NET, а .netstandard прекратили обновлять, тк все новые api теперь идут только в .NET, но не в .NET Framework.
Как я понял .Net и .Net framework это программы, которые преобразуют папку с проектом в исполняемый файл, другими словами говоря - компиляторы.
Не совсем. Есть две вещи:
1. .NET runtime и .NET SDK
2. .NET Framework и .NET Framework DevPack
То что слева - это только рантайм, он отвечает за запуск уже собранных приложений.
А вот в sdk уже входит компилятор и все необходимые для сборки приложений библиотеки.
Сами по себе они отличаются тем, что .Net framework создаёт файл, запускающейся только на винде, а .Net - и на маке и на линуксе.
Различие между .NET Framework и .NET я уже описал выше, но повторю:
1. .NET Framework - старый/устаревший, менее производительный, и только windows (mono упоминать не будем)
2. .NET с номером - новый/современный, более производительный, работает на разных платформах.
Для нового проекта стоит выбирать только номерной .NET (сейчас вроде 9), если у тебя нет весомых доводов для выбора .NET Framework.
Привет.
Раньше было разделение на .net framework, .net core и .net standart. Суть в том, что все это фреймворки, которые содержат либы и тд. Просто либы в .net framework - только под винду, а под .net core кросплатформенные решения.
.net framwork и .net core оба используют внутри себя .net standart
Сейчас .net framework и .net core объеденили и получился .net (кросплатформенный)