.NET Core против ASP.NET Core


171

В чем разница между .NET Core и ASP.NET Core?

Они взаимоисключающие? Я слышал, что ASP.NET Core построен на .NET Core, но он также может быть построен на полной .NET Framework.

Так что же такое ASP.NET Core?


Ответы:


209

Обновление 2020 : обратите внимание, что ASP.NET Core 3 и выше теперь зависят от .NET Core и больше не могут использоваться в .NET Framework. Приведенное ниже описание предназначено для ASP.NET Core 1.x-2.x; разделение на слои все еще сохраняется для ASP.NET Core 3.0, но слой ASP.NET Core больше нельзя использовать поверх .NET Framework в 3.0+.

.NET Core - это среда выполнения. Он может выполнять приложения, созданные для него.

ASP.NET Core представляет собой набор библиотек, которые образуют Framework для создания веб-приложений. Библиотеки ASP.NET Core можно использовать как в .NET Core, так и в «Full .NET Framework» (которая поставляется с окнами уже много лет).

Смущает то, что приложение, использующее библиотеки и инструменты ASP.NET Core, обычно называют «приложением ASP.NET Core», которое теоретически не говорит, создано ли оно для .NET Core или .NET Framework. Таким образом, «базовое приложение ASP.NET» также является «базовым приложением .NET» или «приложением .NET Framework».

Это изображение показывает отношение участвующих технологий (взято из этого сообщения в блоге ) Технологии веб-приложений .NET

Здесь вы можете видеть, что ASP.NET Core построен «поверх» как .NET Framework, так и .NET Core, тогда как «ASP.NET» (в настоящее время часто называемый «классический ASP.NET») - это только .NET Framework.


22
Итак, что мы называем классическим ASP? "Древний АСП"? : p
Дэн Шнау

1
поэтому , если приложение разработано с использованием ASP.NET Core затем на веб - сервере , мы должны установить .NET Core Runtimeи ASP.NET Core runtimeили просто ASP.NET Core runtimeдостаточно
LP13

В зависимости от версии, 2.1 немного отделит ее, но пока вы устанавливаете «хостинговые пакеты» на серверах, у вас все будет хорошо. Если вы разрабатываете для ASP.NET Core на .NET Framework, вам все еще нужен пакет хостинга для необходимого модуля IIS
Мартин Уллрих

3
@DanSchnau, у нас есть «Классический ASP», «ASP.NET» AKA «Классический ASP.NET» и «Ядро ASP.NET», так что никаких конфликтов вообще нет :)
Гауда

@ LP13: «ASP.NET Core Runtime» не существует, это просто набор пакетов, которые не могут быть запущены сами по себе (без .NET Core, предварительно установленного или поставленного в виде автономного приложения)
Tseng,

43

ASP.NET Core с использованием .NET Core - все зависимости являются автономными, могут использовать большинство пакетов NuGet, не могут использовать пакеты, специфичные для Windows, могут выполняться в Windows, Linux и Mac.

ASP.NET Core с использованием .NET Framework - большинство зависимостей являются автономными, выполняются только в Windows, будут иметь доступ к пакетам NuGet для Windows, требуется версия платформы .NET, предназначенная для установки на компьютере.


8
Кто называет эти вещи? Это очень запутанно.
Ник

1
@ Ник: Microsoft маркетинг. У них долгая история этого. Они еще не открыли для себя сеть - используют обычные существительные для продуктов (не очень хорошо в мире поисковых систем, где более конкретные, менее распространенные слова лучше, предпочтительно уникальные слова, которых нет в словаре).
Питер Мортенсен

23

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

Из руководства .NET Core :

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

  • ASP.NET Core
  • Windows 10 Универсальная платформа Windows (UWP)
  • Xamarin.Forms

Это более актуальный ответ для меня. .Net Core для консольного приложения, ASP.Net Core для веб-приложения.
Шон Чжан

5

.NET Framework находится в своем последнем выпуске. Не будет другого после 4.8. Microsoft продолжит работу с .NET Core. С этого времени вы должны отдавать предпочтение .NET Core в своих проектах.


2

Кроме того, я хотел бы добавить, что это может помочь кому-то.

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


Можете ли вы добавить одну или несколько ссылок / ссылок на ваш ответ?
Питер Мортенсен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.