.NET Core vs ASP.NET Core

Jawaban:

209

Pembaruan 2020 : Perhatikan bahwa ASP.NET Core 3 dan yang lebih tinggi sekarang bergantung pada .NET Core dan tidak lagi dapat digunakan pada .NET Framework. Deskripsi di bawah ini adalah untuk ASP.NET Core 1.x-2.x; pemisahan lapisan masih berlaku untuk ASP.NET Core 3.0 tetapi lapisan ASP.NET Core tidak lagi dapat digunakan di atas .NET Framework di 3.0+.

.NET Core adalah runtime. Itu dapat menjalankan aplikasi yang dibangun untuk itu.

ASP.NET Core adalah kumpulan perpustakaan yang membentuk Kerangka untuk membangun aplikasi web. ASP.NET Core libraries dapat digunakan pada .NET Core dan "Full .NET Framework" (yang telah dikirimkan bersama windows selama bertahun-tahun).

Bagian yang membingungkan adalah bahwa aplikasi yang menggunakan pustaka dan alat ASP.NET Core biasanya disebut sebagai "ASP.NET Core Application", yang secara teori tidak mengatakan apakah itu dibangun untuk .NET Core atau .NET Framework. Jadi "ASP.NET Core Application" juga merupakan ".NET Core Application" atau ".NET Framework Application".

Gambar ini menunjukkan hubungan teknologi yang terlibat (diambil dari posting blog ini ) Teknologi Aplikasi Web NET

Di sini Anda dapat melihat bahwa ASP.NET Core dibangun "di atas" .NET Framework dan .NET Core, sementara "ASP.NET" (sekarang sering disebut sebagai "ASP.NET klasik") adalah .NET Framework saja.

Martin Ullrich
sumber
22
Jadi apa yang kita sebut ASP klasik? "ASP Kuno"? : p
Dan Schnau
1
jadi jika aplikasi dikembangkan menggunakan ASP.NET Core maka pada server web kita perlu menginstal .NET Core Runtimedan ASP.NET Core runtimeatau hanya ASP.NET Core runtimecukup
LP13
Tergantung pada versi, 2.1 akan membaginya sedikit, tetapi selama Anda menginstal "bundel hosting" di server, Anda harus baik-baik saja. Jika Anda mengembangkan untuk ASP.NET Core pada .NET Framework, Anda masih memerlukan bundel hosting untuk modul IIS yang diperlukan
Martin Ullrich
3
@DanSchnau, kami memiliki "Classic ASP", "ASP.NET" AKA "Classic ASP.NET" dan "ASP.NET Core", jadi tidak ada konflik sama sekali :)
Gouda
@ LP13: Tidak ada "ASP.NET Core Runtime", hanya sekelompok paket yang tidak dapat dijalankan dengan sendirinya (tanpa pra. NET Core diinstal atau dikirim sebagai aplikasi mandiri)
Tseng
43

ASP.NET Core menggunakan .NET Core - semua dependensi mandiri, dapat menggunakan sebagian besar paket NuGet, tidak dapat menggunakan paket khusus Windows, dapat dijalankan di Windows, Linux, dan Mac.

ASP.NET Core menggunakan .NET Framework - sebagian besar dependensi mandiri, hanya dijalankan pada Windows, akan memiliki akses ke paket NuGet khusus Windows, memerlukan versi .NET framework yang ditargetkan dipasang pada mesin.

Nathan Alard
sumber
8
Siapa yang menyebutkan hal-hal ini? Ini sangat membingungkan.
Nick
1
@Nick: Pemasaran Microsoft. Mereka memiliki sejarah panjang tentang ini. Mereka belum menemukan web - menggunakan kata benda umum untuk produk (tidak baik di dunia mesin pencari di mana kata-kata yang lebih umum kurang umum lebih baik, lebih disukai kata-kata unik yang tidak ada dalam kamus).
Peter Mortensen
23

ASP.NET Core adalah salah satu beban kerja yang didukung oleh .NET Core.

Dari .NET Core guide :

Dengan sendirinya, .NET Core mencakup model aplikasi tunggal - aplikasi konsol - yang berguna untuk alat, layanan lokal, dan game berbasis teks. Model aplikasi tambahan telah dibangun di atas .NET Core untuk memperluas fungsinya, seperti:

  • ASP.NET Core
  • Windows 10 Universal Windows Platform (UWP)
  • Xamarin. Bentuk
v-andrew
sumber
Ini jawaban yang lebih relevan bagi saya. .Net Core untuk aplikasi konsol, ASP.Net Core untuk aplikasi web.
Shawn Zhang
5

.NET Framework sedang dalam rilis terakhir. Tidak akan ada yang lain setelah 4.8. Microsoft akan melanjutkan dengan .NET Core. Mulai saat ini Anda harus memilih .NET Core pada proyek Anda.

Sinan Bozkuş
sumber
2

Selain itu, saya ingin menambahkan yang mungkin bisa membantu seseorang.

Ada sesuatu yang disebut injeksi middleware di .NET Core request pipeline. Jika diterapkan dengan benar, ini sangat berguna, karena dapat mencegat pengecualian aplikasi secara otomatis dan membuat pencatatan jauh lebih mudah di satu tempat daripada masuk dalam setiap metode.

rahul
sumber
Bisakah Anda menambahkan satu atau lebih referensi / tautan ke jawaban Anda?
Peter Mortensen