Недавно в официальном блоге .NET Framework было объявлено, что .NET Core выходит с открытым исходным кодом .
Как ни странно, автор упоминает, что то , что является .NET Core, будет объяснено в следующем посте. Некоторые подробности упоминаются в другом сообщении .
Из прилагаемой схемы:
и сам текст статьи, я бы предположил, что .NET Core (помимо очевидных вещей, таких как открытый исходный код) является модульной повторной реализацией полной .NET. Т.е. компоненты фреймворка загружаются по мере необходимости, так же, как загружаются пакеты NuGet. И теперь ASP.NET 5 является одним из модулей, который уже реализован. Правильно ли я понимаю .NET Core? Может я что-то упустил?
Я нашел недавнюю статью, которая показалась мне короткой и очень хорошей. Он охватывает .NET Standard, .NET Core и .NET Framework и их взаимосвязь. Я очень рекомендую это.
Ответы:
Из блога .NET. Объявление о .NET 2015 Preview: новая эра для .NET :
И:
Вкратце: во-первых, была Microsoft .NET Framework , которая состоит из среды выполнения, выполняющей код приложения и библиотеки, и почти полностью документированной стандартной библиотеки классов .
Среда выполнения - Common Language Runtime , которая реализует инфраструктуру Common Language , работает с компилятором JIT для запуска байт-кода CIL (ранее MSIL) .
Спецификация и реализация Microsoft .NET были, учитывая ее историю и назначение, очень ориентированы на Windows и IIS и были "толстыми". Существуют варианты с меньшим количеством библиотек, пространств имен и типов , но немногие из них были полезны для веб-разработки или разработки настольных компьютеров или затрудняют перенос с юридической точки зрения .
Таким образом, чтобы предоставить версию .NET не от Microsoft, которая могла бы работать на компьютерах, отличных от Windows, необходимо было разработать альтернативу. Для этого нужно перенести не только среду выполнения, но и всю библиотеку классов Framework. Кроме того, для полной независимости от Microsoft потребуется компилятор для наиболее часто используемых языков.
Mono является одной из немногих, если не единственной альтернативной реализацией среды выполнения , которая работает в различных ОС, кроме Windows, почти во всех пространствах имен из библиотеки классов Framework начиная с .NET 4.5 и компилятора VB и C # .
Введите .NET Core: реализация среды выполнения с открытым исходным кодом и минимальная библиотека базовых классов. Все дополнительные функциональные возможности предоставляются через пакеты NuGet, с развертыванием конкретной среды выполнения, библиотек инфраструктуры и сторонних пакетов вместе с самим приложением.
ASP.NET Core - это новая версия MVC и WebAPI, объединенная с тонкой абстракцией HTTP-сервера, которая работает в среде выполнения .NET Core, а также в .NET Framework.
источник
Это подмножество .NET Framework, начиная с версии Compact Framework. Это прогрессировало в Silverlight, Магазин Windows и Windows Phone. Он был сосредоточен на том, чтобы развертывание было небольшим, подходящим для быстрой загрузки и устройств с ограниченными возможностями хранения. И это легче поднять на не-Windows платформах, и, конечно, это было причиной, по которой он был выбран в качестве открытого источника. «Сложные» и «дорогие» части CLR и библиотеки базовых классов опущены.
В противном случае всегда легко распознать целевую версию фреймворка, потому что много полезных будет отсутствовать. Вы будете использовать отдельный набор эталонных сборок, которые показывают только то, что поддерживается средой выполнения. Он хранится на вашем компьютере в
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore
каталоге.Обновление: после выпуска .NET Core 2.0 я видел некоторые репрезентативные цифры, которые дают хорошее представление. Последние два года они усердно работали над переносом API-интерфейсов инфраструктуры на .NET Core. Изначально .NET Core 1.0 поддерживал 13 000 API. .NET Core 2.0 добавил 20 000 API, доведя общее количество до 32 000 и позволив перенести около 70% существующих пакетов NuGet. Существует ряд API-интерфейсов, которые слишком тесно связаны с Windows, чтобы их было легко переносить на Linux и MacOS. Покрытый недавно выпущенным пакетом совместимости Windows, он добавляет еще 20 000 API.
источник
.NET Core
версия 5.0, которая выше, чем последняя полная версия. Я предполагаю, что они имеют в виду что-то другое.Я нашел недавнюю статью, которая показалась мне короткой и очень хорошей. Он охватывает .NET Standard, .NET Core и .NET Framework и их взаимосвязь. Я очень рекомендую это. К сожалению, у меня нет времени, чтобы приспособиться и поставить его здесь.
Оригинальное содержание ответа ниже:
Итак, основываясь на последней официальной записи на эту тему, вот некоторые ключевые моменты, которые я вижу:
Так что .NET Native и ASP.NET 5 - это просто «субъекты» тестирования для новой конфигурации фреймворка, отчасти это может быть потому, что они совершенно разные:
Видите, им даже нужен отдельный низкоуровневый уровень, но основная часть BCL все еще распространена:
То есть пурпурные прямоугольники сверху будут массово добавлены с новыми моделями приложений, но основа останется общей.
Развертывание NuGet:
Отношения с существующими структурами:
Резюме:
По сути, это можно представить как .NET 4.6 с измененной моделью распространения, которая одновременно находится в процессе становления открытым исходным кодом.
источник
В текущей документации есть хорошее объяснение того, что такое .NET Core, области использования и так далее. Следующие характеристики лучше всего определяют .NET Core:
И вот что включает в себя .NET Core:
источник
.NET Core - это новая кроссплатформенная реализация стандартов .NET (ECMA 335), аналогичная Mono, но разработанная самой Microsoft.
Смотрите docs.microsoft.com
источник
Microsoft признала будущую парадигму открытого веб-кода и решила открыть .NET для других операционных систем. .NET Core - это .NET Framework для Mac и Linux. Это «облегченный» .NET Framework, поэтому некоторые функции / библиотеки отсутствуют.
В Windows я по-прежнему использовал бы .NET Framework и Visual Studio 2015. .NET Core более дружественен к миру с открытым исходным кодом, таким как Node.js , npm, Yeoman , Docker и т. Д.
Вы можете разрабатывать полноценные веб-сайты и API-интерфейсы RESTful для Mac или Linux с Visual Studio Code + .NET Core, что раньше было невозможно. Так что, если вы любите Mac или Ubuntu, и вы являетесь разработчиком .NET, тогда сделайте это.
Для Mono против .NET Core Mono был разработан как .NET Framework для Linux, который теперь приобретен Microsoft (компания под названием Xamarin ) и используется для разработки мобильных приложений. В конце концов, Microsoft может объединить / перенести Mono в .NET Core. Я бы не стал беспокоиться о Моно прямо сейчас.
источник
Сегодня я пытался создать новый проект в Visual Studio 2017 (недавно обновленный с Visual Studio 2015) и заметил новый набор вариантов для типа проекта. Либо они новые, либо прошло уже много времени с тех пор, как я начал новый проект !! :)
Я наткнулся на эту ссылку документации и нашел ее очень полезной, поэтому я делюсь. Подробности пули также приведены в статье. Я просто размещаю здесь пули:
Эта ссылка содержит глоссарий терминов .NET.
источник
С веб-сайта Microsoft :
Эти технологии отличаются от собственных .NET тем, что они работают с использованием среды выполнения CoreCLR (используется в универсальной платформе Windows ).
Как вы упомянули в своем вопросе, .NET Core не только с открытым исходным кодом, но и переносимым [работает на MacOS, Windows и Linux]
Внутренние компоненты .NET Core также оптимизированы для того, чтобы не использовать другие модули из своей базовой библиотеки, если это не требуется приложением.
источник
Microsoft только что объявила о выпуске .NET Core v 3.0, который является значительно улучшенной версией .NET Core.
Более подробную информацию можно найти в этой замечательной статье: Разница между .NET Framework и .NET Core с апреля 2019 года.
источник
.NET Core - это бесплатная управляемая программная среда с открытым исходным кодом для операционных систем Windows, Linux и macOS. Это открытый исходный код, кросс-платформенный преемник .NET Framework.
Приложения .NET Core поддерживаются в Windows, Linux и macOS. В двух словах .NET Core похож на .NET Framework, но он кроссплатформенный, то есть позволяет приложениям .NET работать в Windows, Linux и MacOS. Приложения .NET Framework могут работать только в системе Windows. Таким образом, основное различие между .NET Framework и .NET core заключается в том, что .NET Core является кроссплатформенным, а .NET Framework работает только в Windows.
Кроме того, .NET Core имеет встроенную инъекцию зависимостей от Microsoft, и вам не нужно использовать сторонние программы / файлы DLL для внедрения зависимостей.
источник
.NET Core - это кроссплатформенная версия .NET с открытым исходным кодом. Продукты Microsoft, помимо огромных возможностей, всегда были дороги для обычных пользователей, особенно для конечных пользователей продуктов, созданных с помощью технологий .NET.
Большинство пользователей низкого уровня предпочитают использовать Linux в качестве своей ОС, и до .NET Core они не хотели бы использовать технологии Microsoft, несмотря на их большие возможности. Но после выпуска .NET Core эта проблема полностью решена, и мы можем удовлетворить наших клиентов, не учитывая их ОС и т. Д.
источник
.NET Core - это кроссплатформенная версия .NET Framework с открытым исходным кодом.
источник