Что представляют собой .Net и .Net framework?

Правильно ли я понимаю, что .NET и .NET Framework представляют собой программы, которые преобразуют папку с проектом в исполняемый файл, то есть выполняют функции компиляторов? Также, я верно уловил, что .NET Framework создает исполняемые файлы, работающие исключительно на Windows, в то время как .NET поддерживает запуск на macOS и Linux? Пожалуйста, поправьте меня, если я ошибаюсь.
  • 10 октября 2024 г. 10:44
Ответы на вопрос 3
Вы на правильном пути в своем понимании .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х появилась. <br/> Потом в 2016 или типа того году появился .NET Core и .NET standart. <br/> <br/> .NET Core - новая, кроссплатформенная платформа, в которую изначально завозили всякие новые штуки типа нового JIT, вносили новые API, убирали старые, завозили новые фичи C#. <br/> <br/> .NET standart - спецификация, которая позволяет делать библиотеки, которые работают и на .net framework и на .net core с гарантией совместимости. <br/> <br/> Часть нововведений .NET Core вернулась в .NET Framework, а часть - нет. <br/> <br/> Потом произошёл ребрендинг и .NET Core переименовали в просто .NET, а .netstandard прекратили обновлять, тк все новые api теперь идут только в .NET, но не в .NET Framework. <br/> <br/> <blockquote>Как я понял .Net и .Net framework это программы, которые преобразуют папку с проектом в исполняемый файл, другими словами говоря - компиляторы.<br/>
</blockquote> <br/> Не совсем. Есть две вещи: <br/> 1. .NET runtime и .NET SDK <br/> 2. .NET Framework и .NET Framework DevPack <br/> То что слева - это только рантайм, он отвечает за запуск уже собранных приложений. <br/> А вот в sdk уже входит компилятор и все необходимые для сборки приложений библиотеки. <br/> <br/> <blockquote>Сами по себе они отличаются тем, что .Net framework создаёт файл, запускающейся только на винде, а .Net - и на маке и на линуксе.<br/>
</blockquote> <br/> <br/> Различие между .NET Framework и .NET я уже описал выше, но повторю: <br/> 1. .NET Framework - старый/устаревший, менее производительный, и только windows (mono упоминать не будем) <br/> 2. .NET с номером - новый/современный, более производительный, работает на разных платформах. <br/> <br/> Для нового проекта стоит выбирать только номерной .NET (сейчас вроде 9), если у тебя нет весомых доводов для выбора .NET Framework.
Привет. <br/> Раньше было разделение на .net framework, .net core и .net standart. Суть в том, что все это фреймворки, которые содержат либы и тд. Просто либы в .net framework - только под винду, а под .net core кросплатформенные решения. <br/> <br/> .net framwork и .net core оба используют внутри себя .net standart <br/> Сейчас .net framework и .net core объеденили и получился .net (кросплатформенный)
Похожие вопросы