Разница между ASP.NET Core (.NET Core) и ASP.NET Core (.NET Framework)

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

и .NET Framework обеспечивает аналогичную производительность в отношении .NET Core?

Ответ 1

Вначале это может сбивать с толку, но важно помнить: в конце дня "ASP.NET Core" представляет собой всего лишь набор пакетов NuGet, которые можно установить в вашем проекте.

Ядро ASP.NET на .NET Core - это кросс-платформенный ASP.NET Core. Он может работать на Windows, Mac и Linux (включая Docker). Серверу не нужен .NET Core - зависимости могут быть связаны с приложением.

ASP.NET Core на платформе .NET Framework - это ASP.NET Core на "полной" или "настольной" платформе .NET Framework (например,.NET Framework 4.6.2). Эти приложения могут работать только в Windows, но все остальное в ASP.NET Core ведет себя одинаково.

В соответствии с эталонами, которые вы связали, оба будут иметь более высокую производительность, чем ASP.NET 4.6, хотя .NET Core в настоящее время является самым высоким:


ASP.NET 4.6: < 50k req/sec

Ядро ASP.NET(CLR): 400k req/sec

Ядро ASP.NET(.NET Core, Linux): 900k req/sec

Ядро ASP.NET(.NET Core, Windows): > 1.1m req/sec

Однако эти тесты немного старше (февраль 2016 года) и отражают код до RTM. Я не удивлюсь, если они улучшатся с тех пор.

Ответ 2

ASP.NET Core с .NetCore - это кроссплатформенный (он может работать на Windows, Linux или других платформах), высокопроизводительный, с открытым исходным кодом фреймворк для создания современных облачных приложений, подключенных к Интернету. Он может размещаться на IIS, Nginx, Apache, Docker или самостоятельно размещаться в вашем собственном процессе.

ASP.NET Core поставляется полностью как пакеты NuGet. Это позволяет оптимизировать ваше приложение, включив в него только необходимые пакеты NuGet. На самом деле приложения ASP.NET Core 2.x, ориентированные на .NET Core, требуют только одного пакета NuGet. Преимущества меньшей площади приложения включают более строгую безопасность, снижение уровня обслуживания и повышение производительности.

Не требуется устанавливать .Net Framework для запуска ядра asp.net с приложением ядра .net. Приложение ASP.NET Core с .net core - это консольное приложение, которое создает веб-сервер в своем методе Main. Для запуска приложения используется веб-сервер Kestrel.

Мы также можем использовать такие редакторы, как Visual Studio Code, Atom для запуска приложения.

Он не поддерживает Aspx, WPF, WCF и WebServices, как сейчас. Он поддерживает встроенное внедрение зависимостей. Использует coreclr, который является средой выполнения в ядре asp.net с ядром .net.

Asp.Core с .Net Framework. С другой стороны,.Net Framework начал работать намного раньше 2005 года и продолжал добавлять новые функции, что делало его немного сложнее и тяжелее. Это не кроссплатформенность. Он поддерживает Aspx, WPF, WCF и WebServices

План исключений .Net Framework enter image description here

План исключений для ядра .Net enter image description here

Ответ 3

ASP.NET CORE с использованием .NET Core - все зависимости автономны, могут использовать большинство пакетов nuget, не могут использовать специальные пакеты для Windows, могут выполняться на windows, linux, Mac

ASP.NET CORE с использованием .NET Framework. Большинство зависимостей являются автономными, только выполняются в окнах, будут иметь доступ к конкретным пакетам Windows, требующим версию .NET Framework, на машине