Apa perbedaan antara .NET Core, .NET Framework, dan Xamarin?

Jun 28 2016

Microsoft sekarang memiliki .NET Core, .NET Framework, dan Xamarin (Mono) di keluarganya.

Sepertinya banyak tumpang tindih di sini. Apa perbedaan antara jenis Platform .NET ini? Kapan saya harus memilih untuk menggunakan .NET Core dalam proyek saya, daripada .NET Framework atau Xamarin?

Jawaban

283 FionaBi Jun 28 2016 at 10:36

Anda harus menggunakan .NET Core, bukan .NET Framework atau Xamarin, dalam 6 skenario umum berikut sesuai dengan dokumentasi di sini .

1. Kebutuhan Lintas Platform

Jelas, jika tujuan Anda adalah memiliki aplikasi (web / layanan) yang harus dapat dijalankan di seluruh platform (Windows, Linux dan MacOS), pilihan terbaik dalam ekosistem .NET adalah menggunakan .NET Core sebagai runtime-nya (CoreCLR ) dan perpustakaan bersifat lintas platform. Pilihan lainnya adalah menggunakan Proyek Mono.

Kedua pilihan tersebut adalah open source, tetapi .NET Core secara langsung dan resmi didukung oleh Microsoft dan akan memiliki investasi besar di masa mendatang.

Saat menggunakan .NET Core lintas platform, pengalaman pengembangan terbaik ada di Windows dengan Visual Studio IDE yang mendukung banyak fitur produktivitas termasuk manajemen proyek, debugging, kontrol sumber, refactoring, pengeditan yang kaya termasuk Intellisense, pengujian, dan banyak lagi. Tetapi pengembangan yang kaya juga didukung menggunakan Visual Studio Code di Mac, Linux dan Windows termasuk intellisense dan debugging. Bahkan editor pihak ketiga seperti Sublime, Emacs, VI, dan lainnya bekerja dengan baik dan bisa mendapatkan kecerdasan editor menggunakan proyek Omnisharp sumber terbuka.

2. Layanan mikro

Saat Anda membangun sistem berorientasi layanan mikro yang terdiri dari beberapa layanan mikro independen, dapat diskalakan secara dinamis, berstatus status, atau tanpa status, keuntungan besar yang Anda miliki di sini adalah Anda dapat menggunakan teknologi / kerangka kerja / bahasa yang berbeda pada tingkat layanan mikro. Itu memungkinkan Anda untuk menggunakan pendekatan dan teknologi terbaik per area mikro di sistem Anda, jadi jika Anda ingin membangun layanan mikro yang sangat berkinerja dan dapat diskalakan, Anda harus menggunakan .NET Core. Akhirnya, jika Anda perlu menggunakan pustaka .NET Framework apa pun yang tidak kompatibel dengan .NET Core, tidak ada masalah, Anda dapat membangun layanan mikro tersebut dengan .NET Framework dan di masa mendatang Anda mungkin dapat menggantinya dengan .NET Inti.

Ada banyak platform infrastruktur yang bisa Anda gunakan. Idealnya, untuk sistem layanan mikro yang besar dan kompleks, Anda harus menggunakan Azure Service Fabric. Namun untuk layanan mikro stateless, Anda juga dapat menggunakan produk lain seperti Azure App Service atau Azure Functions.

Perhatikan bahwa mulai Juni 2016, tidak semua teknologi dalam Azure mendukung .NET Core, tetapi dukungan .NET Core di Azure akan meningkat secara dramatis setelah .NET Core adalah RTM dirilis.

3. Sistem berkinerja terbaik dan terukur

Ketika sistem Anda membutuhkan kinerja dan skalabilitas terbaik sehingga Anda mendapatkan respons terbaik tidak peduli berapa banyak pengguna yang Anda miliki, maka di situlah .NET Core dan ASP.NET Core benar-benar bersinar. Semakin banyak yang dapat Anda lakukan dengan jumlah infrastruktur / perangkat keras yang sama, semakin kaya pengalaman yang Anda miliki bagi pengguna akhir - dengan biaya lebih rendah.

Hari-hari perbaikan kinerja hukum Moore untuk satu CPU tidak berlaku lagi; namun Anda perlu berbuat lebih banyak saat sistem Anda tumbuh dan membutuhkan skalabilitas dan kinerja yang lebih tinggi untuk pengguna sehari-hari yang lebih banyak tuntutannya yang terus bertambah jumlahnya secara eksponensial. Anda harus menjadi lebih efisien, mengoptimalkan di mana saja, dan menskalakan lebih baik di seluruh kluster mesin, VM, dan inti CPU. Ini bukan hanya masalah kepuasan pengguna; itu juga dapat membuat perbedaan besar dalam biaya / TCO. Inilah mengapa penting untuk mengupayakan kinerja dan skalabilitas.

Seperti yang disebutkan, jika Anda dapat mengisolasi bagian-bagian kecil dari sistem Anda sebagai layanan mikro atau pendekatan lain yang digabungkan secara longgar, akan lebih baik karena Anda tidak hanya dapat mengembangkan setiap bagian kecil / layanan mikro secara mandiri dan memiliki jangka panjang yang lebih baik. kelincahan dan pemeliharaan, tetapi Anda juga akan dapat menggunakan teknologi lain pada tingkat layanan mikro jika yang perlu Anda lakukan tidak kompatibel dengan .NET Core. Dan pada akhirnya Anda akan dapat memfaktorkan ulang dan membawanya ke .NET Core bila memungkinkan.

4. Pengembangan gaya baris perintah untuk Mac, Linux atau Windows.

Pendekatan ini opsional saat menggunakan .NET Core. Anda juga dapat menggunakan Visual Studio IDE lengkap, tentunya. Tetapi jika Anda adalah pengembang yang ingin mengembangkan dengan editor ringan dan penggunaan baris perintah yang berat, .NET Core dirancang untuk CLI. Ini menyediakan alat baris perintah sederhana yang tersedia di semua platform yang didukung, memungkinkan pengembang untuk membangun dan menguji aplikasi dengan instalasi minimal di mesin pengembang, lab atau produksi. Editor seperti Visual Studio Code menggunakan alat baris perintah yang sama untuk pengalaman pengembangan mereka. Dan IDE seperti Visual Studio menggunakan alat CLI yang sama tetapi menyembunyikannya di balik pengalaman IDE yang kaya. Pengembang sekarang dapat memilih tingkat yang mereka inginkan untuk berinteraksi dengan rantai alat dari CLI ke editor ke IDE.

5. Perlu versi .NET berdampingan per tingkat aplikasi.

Jika Anda ingin dapat menginstal aplikasi dengan dependensi pada versi framework yang berbeda di .NET, Anda perlu menggunakan .NET Core yang menyediakan 100% berdampingan seperti yang dijelaskan sebelumnya dalam dokumen ini.

6. Aplikasi Windows 10 UWP .NET.

Selain itu, Anda mungkin juga ingin membaca:

  1. Kapan saya TIDAK boleh menggunakan .NET Core?
  2. Kapan saya masih harus menggunakan .NET Framework 4.x, daripada .NET Core?
  3. Kapan saya harus menggunakan Xamarin, bukan .NET Core?
180 NateBarbettini Jun 28 2016 at 06:26

Beginilah cara Microsoft menjelaskannya:

.NET Framework adalah rasa "penuh" atau "tradisional" dari .NET yang didistribusikan dengan Windows. Gunakan ini saat Anda membuat aplikasi Windows atau UWP desktop, atau bekerja dengan ASP.NET 4.6+ yang lebih lama.

.NET Core adalah .NET lintas platform yang berjalan di Windows, Mac, dan Linux. Gunakan ini ketika Anda ingin membangun konsol atau aplikasi web yang dapat berjalan di platform apa pun, termasuk di dalam wadah Docker. Ini tidak termasuk aplikasi UWP / desktop saat ini.

Xamarin digunakan untuk membuat aplikasi seluler yang dapat berjalan di perangkat iOS, Android, atau Windows Phone.

Xamarin biasanya berjalan di atas Mono , yang merupakan versi .NET yang dibuat untuk dukungan lintas platform sebelum Microsoft memutuskan untuk secara resmi menggunakan lintas platform dengan .NET Core. Seperti Xamarin, platform Unity juga berjalan di atas Mono.


Titik kebingungan yang umum adalah di mana ASP.NET Core cocok. ASP.NET Core dapat berjalan di atas .NET Framework (Windows) atau .NET Core (lintas platform), seperti yang dijelaskan dalam jawaban ini: Perbedaan antara ASP. NET Core (.NET Core) dan ASP.NET Core (.NET Framework)

38 logeshpalani98 Feb 03 2018 at 23:10

Anda dapat merujuk di baris ini - Perbedaan antara ASP.NET Core (.NET Core) dan ASP.NET Core (.NET Framework)

Xamarin sama sekali bukan debat. Saat Anda ingin membangun aplikasi seluler (iOS, Android, dan Windows Mobile) menggunakan C #, Xamarin adalah satu-satunya pilihan Anda.

.NET Framework mendukung aplikasi Windows dan Web. Hari ini, Anda dapat menggunakan Formulir Windows, WPF, dan UWP untuk membangun aplikasi Windows di .NET Framework. ASP.NET MVC digunakan untuk membangun aplikasi Web di .NET Framework.

.NET Core adalah kerangka kerja sumber terbuka dan lintas platform baru untuk membangun aplikasi untuk semua sistem operasi termasuk Windows, Mac, dan Linux. .NET Core hanya mendukung UWP dan ASP.NET Core. UWP digunakan untuk membangun Windows 10 menargetkan Windows dan aplikasi seluler. ASP.NET Core digunakan untuk membangun aplikasi web berbasis browser.

Anda ingin lebih jelasnya lihat tautan ini
https://blogs.msdn.microsoft.com/dotnet/2016/07/15/net-core-roadmap/ https://docs.microsoft.com/en-us/dotnet/articles / standard / memilih-core-framework-server

13 RazibHossain Mar 01 2019 at 18:17
  1. .NET adalah Ekosistem berdasarkan bahasa c #
  2. Standar .NET adalah Standar (dengan kata lain, spesifikasi) dari Ekosistem .NET .

.Net Core Class Library dibangun di atas .Net Standard . .NET Standard Anda hanya dapat membuat proyek perpustakaan kelas yang tidak dapat dijalankan secara mandiri dan harus direferensikan oleh proyek lain .NET Core atau .NET Framework yang dapat dieksekusi. Jika Anda ingin menerapkan perpustakaan yang portabel ke .Net Framework , .Net Core dan Xamarin , pilih a .Net Standard Library

  1. .NET Framework adalah kerangka kerja berbasis .NET dan mendukung aplikasi Windows dan Web

(Anda dapat membuat proyek yang dapat dieksekusi (seperti aplikasi Konsol, atau aplikasi ASP.NET) dengan .NET Framework

  1. ASP.NET adalah teknologi pengembangan aplikasi web yang dibangun di atas .NET Framework
  2. .NET Core juga merupakan kerangka kerja berdasarkan .NET .

Ini adalah kerangka kerja sumber terbuka dan lintas platform baru untuk membangun aplikasi untuk semua sistem operasi termasuk Windows, Mac, dan Linux.

  1. Xamarin adalah framework untuk mengembangkan aplikasi seluler lintas platform ( iOS, Android, dan Windows Mobile ) menggunakan C #

Dukungan implementasi .NET Standard [biru] dan platform minimum yang layak untuk dukungan penuh dari .NET Standard (terbaru: [ https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation- dukungan] )

9 yanlend Dec 10 2019 at 16:58

.NET 5 akan menjadi versi terpadu dari semua varian .NET yang hadir pada November 2020, jadi tidak perlu lagi memilih di antara varian.

1 Marto99 Jan 24 2019 at 02:36

.NET Core adalah versi .NET saat ini yang harus Anda gunakan sekarang (lebih banyak fitur, perbaikan bug, dll.)

Xamarin adalah platform yang memberikan solusi untuk masalah seluler lintas platform yang dikodekan dalam C #, sehingga Anda tidak perlu menggunakan Swift secara terpisah untuk IOS dan hal yang sama berlaku untuk Android.

user10868910 May 29 2020 at 00:34

Xamarin digunakan untuk aplikasi telepon (baik IOS / Android). .NET Core digunakan untuk mendesain aplikasi Web yang dapat bekerja pada Apache dan IIS.

Itulah perbedaan dalam dua kalimat.