Різниця між ASP.NET Core (.NET Core) та ASP.NET Core (.NET Framework)


78

У чому різниця між ASP.NET Core Web (.NET Core) та ASP.NET Core Web (.NET Framework)?

і надає .NET Framework подібну продуктивність, як .NET Core?


Я не можу отримати доступ до посилання на мою політику брандмауера тут, на роботі. Але різниця полягає в тому, що .NET Core є сумісним між платформами і не використовує .NET Framework. Проекти .NET Framework, очевидно, використовують .NET Framework, тому платформа повинна бути встановлена ​​на сервері.
Clint B

Відповіді:


96

Спочатку це може заплутати, але важливо пам’ятати: зрештою, "ASP.NET Core" - це лише ціла низка пакетів NuGet, які можна встановити у вашому проекті.

ASP.NET Core на .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: <50 тис. Вимог / сек

Ядро ASP.NET (CLR): 400 тис. Запит / сек

ASP.NET Core (.NET Core, Linux): 900 тис. Вимог / сек

ASP.NET Core (.NET Core, Windows):> 1,1 млн. Вимог / сек

Однак ці контрольні показники трохи старіші (лютий 2016 р.) І відображають код до RTM. Я не був би здивований, якщо б з того часу вони вдосконалились.


5
яка мета створення двох основних фреймворків, на яких можна побудувати? це ще один вибір, який вам потрібно зробити, щоб перейти до ядра .net або повної .net фреймворк, щоб перейти до ядра asp.net. мета полягає в тому, що ядро ​​.net ще не має всієї необхідної функціональності для створення веб-програми, тому існує потреба у повному .net фреймворку
Джастін

5
Програми та пакети @JustinHomes потрібно переносити на .NET Core, а іноді це важко залежно від використовуваних ними API. Варіант існує, тому ви можете використовувати ASP.NET Core сьогодні на "повному" .NET, а потім перенести на .NET Core у майбутньому, якщо ви хочете мати крос-платформну можливість.
Nate Barbettini

3
@NateBarbettini вже підняли запитання. stackoverflow.com/q/38237576/2056869
JBA

2
@NateBarbettini Чи всі пакунки nuget працюють, якщо використовується ASP.NET Core на .NET Framework (CLR), чи це будуть проблеми із сумісністю через ASP.NET Core?
Йонас

2
@JonasAxelsson Так, якщо пакети підтримують CLR (тобто netstandard1.1або вище, net451або вище).
Nate Barbettini

12

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

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

Не потрібно встановлювати фреймворк .Net для запуску ядра asp.net із основним додатком .net. Додаток ASP.NET Core із .net core - це консольний додаток, який створює веб-сервер за основним методом. Він використовує веб-сервер Kestrel для запуску програми.

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

Він не підтримує Aspx, WPF, WCF та WebServices, як ніби зараз. Він підтримує вбудовану ін'єкцію залежностей. Використовує coreclr, який є часом виконання в ядрі asp.net з ядром .net.

Asp . Це не крос-платформа. Він підтримує Aspx, WPF, WCF та WebServices

.Net Framework план переговорів введіть тут опис зображення

.Черний план вилучень введіть тут опис зображення


3

ASP.NET CORE за допомогою .NET Core - всі залежності є автономними, можуть використовувати більшість nuget-пакетів, не можуть використовувати певні пакети для Windows, можуть виконуватися на Windows, Linux, Mac

ASP.NET CORE з використанням .NET Framework - більшість залежностей є автономними, виконується лише у Windows, матиме доступ до певних nuget-пакетів Windows, потрібна версія .net framework, яка призначена для встановлення на машині


це копія іншої відповіді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.