.NET Core a ASP.NET Core

Odpowiedzi:

209

Aktualizacja 2020 : Zwróć uwagę, że ASP.NET Core 3 i nowsze zależą teraz od platformy .NET Core i nie można ich już używać na platformie .NET Framework. Poniższy opis dotyczy ASP.NET Core 1.x-2.x; separacja warstw nadal obowiązuje w przypadku ASP.NET Core 3.0, ale warstwy ASP.NET Core nie można już używać na platformie .NET Framework w wersji 3.0+.

.NET Core to środowisko uruchomieniowe. Może uruchamiać aplikacje, które są dla niego zbudowane.

ASP.NET Core to zbiór bibliotek, które tworzą platformę do tworzenia aplikacji internetowych. Biblioteki ASP.NET Core mogą być używane zarówno na platformie .NET Core, jak i na „pełnej platformie .NET Framework” (która jest dostarczana z systemem Windows od wielu lat).

Mylące jest to, że aplikacja korzystająca z bibliotek i narzędzi ASP.NET Core jest zwykle nazywana „aplikacją ASP.NET Core”, co teoretycznie nie mówi, czy jest ona stworzona dla platformy .NET Core czy .NET Framework. Zatem „Aplikacja ASP.NET Core” to także „Aplikacja .NET Core” lub „Aplikacja .NET Framework”.

Ten obraz przedstawia związek między zaangażowanymi technologiami (zaczerpnięty z tego wpisu na blogu ) Technologie aplikacji sieci Web .NET

W tym miejscu widać, że ASP.NET Core jest zbudowany „na wierzchu” zarówno .NET Framework, jak i .NET Core, podczas gdy „ASP.NET” (obecnie często określany jako „klasyczny ASP.NET”) to tylko .NET Framework.

Martin Ullrich
źródło
22
Więc co nazywamy klasycznym ASP? „Starożytny ASP”? : p
Dan Schnau
1
więc jeśli aplikacja jest ASP.NET Core.NET Core RuntimeASP.NET Core runtimeASP.NET Core runtime
tworzona
W zależności od wersji, 2.1 trochę ją rozdzieli, ale jeśli zainstalujesz „pakiety hostingowe” na serwerach, wszystko będzie dobrze. Jeśli tworzysz dla ASP.NET Core w .NET Framework, nadal potrzebujesz pakietu hostingowego dla niezbędnego modułu IIS
Martin Ullrich
3
@DanSchnau, mamy „Klasyczne ASP”, „ASP.NET” AKA „Klasyczne ASP.NET” i „ASP.NET Core”, więc nie ma żadnego konfliktu :)
Gouda
@ LP13: Nie ma „środowiska uruchomieniowego ASP.NET Core”, jest to po prostu kilka pakietów, które nie mogą działać samodzielnie (bez wstępnie zainstalowanej platformy .NET Core lub dostarczanej jako samodzielna aplikacja)
Tseng
43

ASP.NET Core przy użyciu platformy .NET Core - wszystkie zależności są niezależne, mogą używać większości pakietów NuGet, nie mogą używać pakietów specyficznych dla systemu Windows, mogą być wykonywane w systemach Windows, Linux i Mac.

ASP.NET Core przy użyciu .NET Framework - większość zależności jest niezależna, wykonywana tylko w systemie Windows, będzie mieć dostęp do pakietów NuGet specyficznych dla systemu Windows, wymaga wersji platformy .NET, która jest docelowo zainstalowana na komputerze.

Nathan Alard
źródło
8
Kto nazywa te rzeczy? To jest bardzo zagmatwane.
Nick
1
@Nick: marketing firmy Microsoft. Mają w tym długą historię. Nie odkryli jeszcze sieci - używają rzeczowników pospolitych dla produktów (nie jest to dobre w świecie wyszukiwarek, gdzie bardziej szczegółowe, mniej popularne słowa są lepsze, najlepiej unikalne słowa, których nie ma w słowniku).
Peter Mortensen
23

ASP.NET Core to jedno z obciążeń obsługiwanych przez platformę .NET Core.

Z przewodnika .NET Core :

Sama platforma .NET Core obejmuje pojedynczy model aplikacji - aplikacje konsolowe - co jest przydatne w przypadku narzędzi, usług lokalnych i gier tekstowych. Dodatkowe modele aplikacji zostały zbudowane na bazie platformy .NET Core w celu rozszerzenia jego funkcjonalności, takich jak:

  • ASP.NET Core
  • Windows 10 Universal Windows Platform (UWP)
  • Xamarin.Forms
v-andrew
źródło
To jest dla mnie bardziej odpowiednia odpowiedź. .Net Core dla aplikacji konsolowej, ASP.Net Core dla aplikacji internetowej.
Shawn Zhang
5

NET Framework jest ostatnią wersją. Po 4.8 nie będzie kolejnego. Firma Microsoft będzie kontynuować korzystanie z platformy .NET Core. Od tego czasu powinieneś preferować .NET Core w swoich projektach.

Sinan Bozkuş
źródło
2

Oprócz tego chciałbym dodać, że może to komuś pomóc.

W potoku żądań platformy .NET Core istnieje coś, co nazywa się iniekcją oprogramowania pośredniego. Jeśli zostanie poprawnie wdrożony, jest to bardzo przydatne, ponieważ może automatycznie przechwytywać wyjątki aplikacji i znacznie ułatwia rejestrowanie w jednym miejscu zamiast rejestrowania we wszystkich metodach.

rahul
źródło
Czy możesz dodać jeden lub więcej odnośników / linków do swojej odpowiedzi?
Peter Mortensen