Чем отличается net core от net framework
Перейти к содержимому

Чем отличается net core от net framework

В чем разница между NetFramework и NetCore

1

При попытке подключить библиотеку к uwp приложению получил вот такое предупреждение: «Проект предназначен для «.NetCore», в то время как ссылка файла предназначена для «.NetFramework»» Вроде, и то платформа, и то платформа, так в чем разница, зачем их две и возможна ли связь между ними (подключать одно к другому и наоборот)?

Отслеживать
задан 18 апр 2016 в 17:17
Sanych Hoilo Sanych Hoilo
1,618 1 1 золотой знак 15 15 серебряных знаков 25 25 бронзовых знаков

NetCore — это кросс-платформенная реализация .NetFramework . На данный момент они довольно сильно отличаются, в NetCore еще много чего не реализовано по сравнению с NetFramework, поэтому библиотеки написанные для NetFramework нельзя использовать для NetCore. Нужно либо попытаться перекомпилировать ее для NetCore если есть исходники. Либо попытаться найти существующий аналог для NetCore, но аналог может в приципе и отсутствовать

18 ноя 2016 в 7:56
18 ноя 2016 в 7:59
@Grundy почему не пишете это всё в виде ответа?
18 ноя 2016 в 8:38
@Anatol, Павел уже дал хороший ответ 🙂
18 ноя 2016 в 8:41
@Grundy ну Вы раньше написали и тоже неплохо. Это был не вопрос, а побуждение)
18 ноя 2016 в 8:43

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

.NET Framework — это старая платформа, работающая только под Windows.

.NET Core — это новая платформа, которая может работать как под Windows, так и под Linux. Но она еще довольно «сырая» — множество инструментов еще не перенесены на нее.

Подключить одно к другому не получится, потому что у них разные системные библиотеки (а также разные системы сборки если вы используете Visual Studio версии 2015 или ниже).

Кроме них, есть еще платформы:

Mono — может работать как под Windows, так и под Linux. Пытается быть совместимой с .NET Framework.

UWP — платформа для написания Windows-приложений, использующих WinRT. Не знаю про совместимость с .NET Framework.

Silverlight — старая платформа (застряла примерно на уровне .NET 4.5), предназначенная для работы в браузере (вроде java-апплетов). Не так давно была серьезно ранена гуглом, который перестал поддерживать NPAPI в своем Хроме. Не совместима с .NET Framework.

.NET Compart Framework — несовместимая вариация .NET Framework для Windows CE. Сейчас находится на той же свалке, куда был выброшен Windows CE.

Unity — форк Mono, платформа для написания графических (в том числе 3D) приложений. Есть вариант встраивания в браузер (не работает в Хроме из-за отказа от NPAPI в Хроме работает благодаря технологии Web Assembly).

PCL (Portable Class Library) — общее подмножество разных версий .NET Framework, UWP и Silverlight. Совместима с ними в одну сторону (PCL-библиотеку можно использовать на перечисленных платформах).

.NET Standard — новая реинкарнация PCL. От PCL отличается подходом к версионированию: если для PCL разработчик библиотеки выбирает список поддерживаемых платформ, то для .NET Standard выбирается версия стандарта (а для платформ известно какие версии ими поддерживаются).

Немного про .NET Framework и .NET Core [плюс полезные ссылки]

Привет, Хабр! Версия ASP.NET Core основана на проектной модели .NET Core, которая поддерживает создание кросс-платформенных приложений в ОС Windows, Mac и Linux. При реализации проекта .NET Core вы также можете выбрать вариант .NET для своего приложения: .NET Framework (CLR), .NET Core (CoreCLR) или Mono. Какой вариант .NET подойдет вам? Кратко рассмотрим плюсы и минусы каждого и поделимся классными курсами по платформам.

.NET Framework

.NET Framework — самая популярная и эффективная среда разработки из всех перечисленных выше. .NET Framework — это зрелая и полнофункциональная платформа, которая поставляется вместе с Windows. Экосистему .NET Framework разработчики используют уже много лет. Она поддерживает разработку современных приложений и обладает высочайшей совместимостью с существующими приложениями и библиотеками.

.NET Framework работает только на Windows. Кроме того, это монолитный компонент с множеством API и длительным циклом выпуска. Хотя код .NET Framework доступен для просмотра, эта платформа не является проектом с открытым исходным кодом.

Полезные ссылки по .NET Framework

Курсы:

Advanced .NET Threading

В этом курсе из серии по продвинутому .NET threading вы сможете изучить основы многопоточного программирования, а также получить информацию о том, что такое потоки, как они работают и как они взаимодействуют.

A Guide to Object-Oriented Practices

Если вы разработчик, который начал изучать объектно-ориентированные методы, и вам нужно больше примеров их применения, этот курс для вас! Исследуйте encapsulation, inheritance, interfaces и многое другое.

Developing Intelligent Bots from Zero to Hero

В этом курсе вы узнаете, как создавать, разрабатывать, отлаживать и развертывать ботов, используя Bot Builder SDK (.NET), Azure Bot Service и Azure Cognitive Services.

Официальная документация по .NET Framework:
  • Руководство по .NET Framework
  • Документация по ASP.NET (Подборка)
  • Справочник по API .NET Framework

.NET Core

.NET Core — это модульная реализация библиотеки и среды выполнения, в состав которой входит поднабор .NET Framework. .NET Core работает на Windows, Mac и Linux. Версия состоит из коллекции библиотек СoreFX и небольшой оптимизированной среды выполнения CoreCLR. .NET Core — проект с открытым исходным кодом, поэтому вы можете наблюдать за его развитием и поддерживать его на GitHub.

Среда выполнения CoreCLR (Microsoft.CoreCLR) и библиотеки CoreFX распространяются через NuGet. Поскольку версия .NET Core представляет собой компонентизированный набор библиотек, вы можете ограничить количество API для своего приложения и использовать только нужные элементы. Кроме того, можно выполнять приложения на базе .NET Core в гораздо более ограниченных средах (например, в ASP.NET Core на Nano Server).

Чтобы улучшить компонентизацию, в .NET Core был обновлен факторинг API. Иными словами, существующие библиотеки для .NET Framework придется перекомпилировать для выполнения в .NET Core. Экосистема .NET Core является относительно новой, но она быстро развивается благодаря поддержке популярных пакетов .NET (JSON.NET, AutoFac, xUnit.net и многие другие).

Полезные ссылки по .NET Core

Курсы:

Если вы хотите больше узнать об ASP.NET Core: где его получить, как его установить, как его использовать и т. д., не пропустите этот курс, состоящий из трех частей.

ASP.NET Core — Beginner

ASP.NET Core — Intermediate

ASP.NET Core — Advanced

Всё о .NET Framework

.NET Framework — программная платформа, разработанная компанией Microsoft, которая предоставляет среду выполнения для приложений на языке программирования C#, Visual Basic .NET и других языках, совместимых с платформой .NET. Он предоставляет разработчикам мощные инструменты и библиотеки для создания разнообразных приложений, включая настольные программы, веб-сайты, мобильные приложения и службы в облаке.

Подготовлено_выпускником —>

работа с NET Framework

Получите востребованную профессию бесплатно. Обучение от 1 до 4 месяцев

Архитектура .NET

Архитектура .NET Framework основана на общеязыковой среде исполнения (Common Language Runtime, CLR), которая является основой приложений на платформе. CLR обеспечивает управление памятью, безопасность типов, обработку исключений и другие ключевые функции исполнения приложений.

.NET Framework также включает библиотеку классов, которая предоставляет широкий набор функций и возможностей для разработки приложений. Библиотека классов включает классы и методы для работы с файлами, базами данных, сетью, графикой, шифрованием, сериализацией данных и многими другими общими задачами, с которыми сталкиваются разработчики.

Кто работает с .NET Framework

.NET Framework широко используется разработчиками программного обеспечения и веб-разработчиками по всему миру. Он позволяет создавать масштабируемые и надежные приложения для различных платформ и архитектур. .NET Framework также является основной платформой для разработки приложений под Windows.

Разработчики, работающие с .NET Framework, используют языки программирования, такие как C# или Visual Basic .NET, и разрабатывают разнообразные приложения, включая настольные программы, веб-приложения, мобильные приложения и службы в облаке.

Как установить .NET Framework

Установка .NET Framework может зависеть от версии операционной системы Windows, которую вы используете. Обычно .NET Framework поставляется вместе с операционной системой или может быть установлен через Центр обновления Windows.

установка NET Framework

Если вам требуется установить конкретную версию .NET Framework, вы можете загрузить ее с официального веб-сайта Microsoft. Там вы найдете инструкции по установке и доступные версии.

Чем .NET Framework отличается от .NET Core

.NET Framework и .NET Core являются двумя различными вариантами платформы .NET, предоставляемыми компанией Microsoft.

Вот некоторые отличия между ними:

Кроссплатформенность: .NET Core был разработан с учетом кроссплатформенности, что означает, что вы можете разрабатывать приложения .NET Core для разных операционных систем, таких как Windows, macOS и Linux. В то время как .NET Framework является преимущественно платформой для разработки приложений под Windows.

Размер и производительность: .NET Core имеет более компактный размер и более быструю производительность по сравнению с .NET Framework. Это позволяет разрабатывать легковесные и быстрые приложения для различных сценариев.

Модульность : .NET Core основан на модульной архитектуре, где функциональность платформы разделена на отдельные пакеты, называемые пакетами NuGet. Это позволяет разработчикам выбирать только необходимые компоненты и сокращает размер приложения. В то время как .NET Framework имеет более монолитную архитектуру.

Поддержка : .NET Framework имеет более широкую поддержку и наиболее распространен среди разработчиков. В то время как .NET Core активно развивается и получает все большую популярность.

Стоит ли изучать .NET

Изучение .NET Framework является полезным для разработчиков, особенно тех, кто работает с платформой Windows и разрабатывает приложения на языке программирования C# или Visual Basic .NET. .NET Framework предоставляет мощные инструменты и библиотеки для создания различных типов приложений, включая настольные программы, веб-сайты, мобильные приложения и службы в облаке.

Однако в свете развития .NET Core и его преимуществ, изучение .NET Core также может быть полезным. .NET Core предлагает возможность создавать кросс-платформенные приложения и имеет лучшую производительность в некоторых случаях.

.NET Framework является мощной программной платформой, которая предоставляет среду выполнения и библиотеки для разработки разнообразных приложений. Он широко используется разработчиками программного обеспечения и веб-разработчиками для создания настольных программ, веб-приложений, мобильных приложений и служб в облаке. .NET Framework отличается от .NET Core в плане кроссплатформенности, производительности и архитектуры. Выбор между ними зависит от ваших конкретных требований и целей разработки.

Начать карьеру в IT вы можете после бесплатного обучения в проекте «Содействие занятости»:

«Тестировщик программного обеспечения: с нуля до первых проектов»

«Web-программист: с нуля до первых проектов»

Получите востребованную профессию бесплатно. Обучение от 1 до 4 месяцев

Возможности .NET Core

В последние годы все более популярной становится бесплатная платформа .NET. Она используется многими разработчиками для создания и тестирования приложений, это возможно за счет открытого исходного кода. Одним из вариантов горизонтального увеличения платформы в различные операционные системы стала .NET Core. С ее помощью обеспечивается возможность работы с приложениями, которые разрабатывались для Windows и прочих ОС.

Что это такое

netcore-1.jpg

Активное развитие .NET Core стало закономерным итогом работы над приложениями. Одной из главных причин для головной боли практически каждого разработчика являются непредсказуемые условия, в которых будет запускаться та или иная программа. На каждом устройстве используется собственная версия операционной системы, конфигурация, драйверы и т. д., что не всегда позволяет учесть все заранее и сделать приложение рабочим.

Именно по этой причине начались поиска способа унифицировать среду для запуска приложений. И одной из наиболее успешных попыток в этой области можно назвать «Дот Нет», которая была разработана более 20 лет назад компанией Microsoft.

Главная идея ее создания заключалась в том, чтобы добавить специальную программную «прослойку», которая располагалась бы между операционкой и приложением. Именно на эту прослойку были возложены функции сглаживания особенностей конкретной конфигурации ОС, тем самым упрощая запуск программы в имеющейся среде.

Модель .NET активно применяется для разработки приложений следующих видов:

  • веб-API и микрослужбы;
  • классические и мобильные приложения;
  • web-приложения;
  • службы «Виндоус»;
  • консольные программы и т. д.

Плюс использования платформы заключается в том, что файлы кода и проекта выглядят идентично и не зависят от типа разрабатываемого приложения.

Помимо Windows ОС, платформа dot NET Core также доступна в различных дистрибутивах Linux. Разработчики публикуют новый выпуск практически для всех дистрибутивов «Линукса», почти всегда в них имеется диспетчер пакетов для установки. По этой причине платформа становится все более популярной у программистов и постепенно вытесняет схожие решения.

Начиная с 2016 года было выпущено более 10 версий дополнения. Первые из них назывались .NET Core, однако начиная с 2019 года это название было сокращено до .NET.

Архитектура

.NET Core базируется на архитектуре .NET Framework. Однако есть и несколько кардинальных отличий: например, платформа имеет возможность использования облачных технологий, функционал для кроссплатформенности и модульности. Также в версии Core произошло отделение среды выполнения от библиотеки.

Так как дополнение является модульным, то каждый его компонент обновляется через отдельный менеджер пакетов. Это позволяет обновлять каждый модуль по отдельности. В итоге программа или приложение может работать с отдельными модулями и не зависеть от обновления всей платформы.

Дополнение было разработано корпорацией Microsoft, поэтому является ее собственностью. Однако инструмент был и остается бесплатным для использования.

Удаленный офис
и онлайн-продажи
За 1 день.
С бесплатным тестовым периодом.
Конфигуратор удаленных рабочих мест
Рабочие места для команды за 1 день

Модели развертывания

Одно из основных характеристик «Дот Нет» является гибкое развертывание. Вы можете устанавливать платформу как часть приложения, так и отдельно. При использовании FDD удается уменьшить пакет развертывания, минимизировать использование памяти и дискового пространства.

Развертывание приложений на платформе осуществляется в нескольких режимах:

  • При размещении приложения, находящегося в зависимости от платформы, генерируются исполняемые и двоичные файлы, включая ПО и его зависимости. Конечному пользователю для запуска программы необходимо дополнительно запустить среду выполнения. Исполняемый файл напрямую зависит от платформы, а двоичный – DLL – является кроссплатформенным.
  • При тестирования автономного приложения используется исполняемый файл, содержащий среду выполнения, библиотеки, а также само ПО и его зависимости. За счет этого пользователи могут открыть программу на устройстве, на котором ранее не устанавливалась среда .NET. Автономные приложения находятся в прямом подчинении у платформы, но при необходимости их можно опубликовать в виде компиляции AOT.

Параллельно возможно использовать разные версии среды для загрузки приложения. Это позволит запускать программы, зависящие от платформы. Исполняемые файлы генерируются для определенной платформы, которые обозначаются специальным идентификатором среды.

Общий код для .NET Core и других платформ

oblaka-vidy-IT.jpg

Между платформами, которые базируются на .NET, изначально заложена возможность применения общего кода, так как .NET Core является основой для всех будущих платформ.

Однако возникает вопрос, как этот код работает с платформами, которые базируются на других моделях. Например, при работе с .NET Framework. В этом случае требуется применять переносимые библиотеки классов или общие проекты. Библиотеки подойдут для приложений, общий код которых не завязан на определенные платформы. А для платформ, содержащих специфичный код, завязанный на платформу, подойдут общие проекты.

На сегодня «Дот Нет» поддерживает несколько языков программирования, в том числе C#, F# и Visual Basic .NET.

Кроссплатформенность

Как все знают, в мире существует множество разнообразных ОС, поэтому разработчики заинтересованы в том, чтобы их приложения распространялись в разных операционках. И случаев, когда запустить программу, разработанную для другой операционной системы, невозможно, становится все больше и больше. В этом случае для запуска требуется «портировать» приложение и только потом пытаться установить его в текущей ОС.

В ряде случаев этого можно добиться простым перекомпилированием исходного текста программы. Однако чаще всего это не помогает, а это значит, что программу придется переписывать практически с нуля.

Однако Microsoft учли этот момент при разработке .NET Core. По сути платформа стала играть роль «стандартизирующей» прослойки, которая позволила добиться адаптации исходного кода под среду ОС. Это значит, что приложение для одной операционки без труда будет запускаться в другой.

Такой подход позволил избежать портирования отдельных программ, а портировать только программную прослойку. Для достижения цели Microsoft решили портировать один из компонентов модели .NET, в результате чего и появилась платформа «Дот Нет». Ее функциональность практически полностью совпадает с исходной версией и в чем-то даже стала намного шире.

Сегодня .NET Core активно применяется в трех операционных системах: помимо Windows, это еще Linux и macOS. Это позволяет запускать новые приложения во всех ОС без дополнительных изменений. Именно это качество платформы называется кроссплатформенностью.

Конечно, нужно понимать, что добиться 100% совместимости программ с любыми ОС практически нереально. Даже сейчас на платформе .NET не реализованы WebForms и Windows Forms.

В рамках кросс-совместимости платформа включает в себя и модульную инфраструктуру. Это позволяет получить доступ к пакетным данным и функциям. Благодаря этому значительно упрощается процесс создания ПО, повышается производительность и безопасность процессов.

Кроме этого, модульная инфраструктура помогает быстрее обновлять платформу, так как модули выпускаются и обновляются по отдельности.

Выводы

Характер платформы .NET делает ее незавершенной, поэтому она находится в постоянной доработке и обновлении. Если ранние версии инструмента использовались для приложений с большой функциональностью, то на современных этапах сделан акцент на развитие поддержки API и поддержку Visual Basic.

Главная функция дополнения заключается в предоставлении разработчикам большей свободы и одновременно контроля над процессами, особенно при обновлении и развертывании программ. Не удивительно, что .NET Core становится основным инструментом для разработки приложений разного типа и сложности.

Надеемся, что вы разобрались в том, что такое .NET Core и для чего эта платформа используется в программировании. Если у вас остались вопросы, то задайте их специалистам нашей компании Xelent!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *