Apa's perbedaan antara .NET Inti, .NET Framework, dan Xamarin?

Microsoft sekarang telah .NET Inti, .NET Framework dan Xamarin (Mono) di its .NET keluarga.

Tampaknya ada banyak tumpang tindih di sini. Apa's perbedaan antara jenis .NET? Ketika saya harus memilih untuk menggunakan .NET Inti dalam proyek saya, bukan .NET Framework atau Xamarin?

Mengomentari pertanyaan (1)
Larutan

Anda harus menggunakan .NET Inti, bukan .NET Framework atau Xamarin, berikut ini 6 khas skenario menurut dokumentasi [di sini][1].

1. Cross-Platform kebutuhan

Jelas, jika tujuan anda adalah untuk memiliki sebuah aplikasi (web service) yang harus dapat dijalankan di semua platform (Windows, Linux dan MacOS), pilihan terbaik di .NET ekosistem adalah dengan menggunakan .NET Inti sebagai runtime (dila mengas) dan perpustakaan yang cross-platform. Pilihan lain adalah dengan menggunakan hexedit. pilihan Kedua adalah open source, tapi .NET Inti ini secara langsung dan secara resmi didukung oleh Microsoft dan akan memiliki berat investasi bergerak maju. Ketika menggunakan .NET Inti di seluruh platform, yang terbaik pengalaman pembangunan yang ada di Windows dengan Visual Studio IDE yang mendukung banyak fitur produktivitas termasuk manajemen proyek, debugging, kontrol sumber, refactoring, editing kaya seperti Intellisense, pengujian, dan banyak lagi. Tapi kaya perkembangan ini juga didukung dengan menggunakan Kode Visual Studio pada Mac, Linux dan Windows, termasuk intellisense dan debugging. Bahkan pihak ketiga editor seperti Luhur, Emacs, VI dan lebih bekerja dengan baik dan bisa mendapatkan editor intellisense menggunakan open source Omnisharp proyek.

2. Microservices

Ketika anda sedang membangun sebuah microservices berorientasi sistem terdiri dari beberapa independen, dinamis scalable, stateful atau stateless microservices, keuntungan besar yang anda miliki di sini adalah bahwa anda dapat menggunakan berbagai teknologi/framework/bahasa pada microservice tingkat. Yang memungkinkan anda untuk menggunakan pendekatan yang terbaik dan teknologi per micro tempat di sistem anda, jadi jika anda ingin membangun sangat performant dan terukur microservices, anda harus menggunakan .NET Inti. Akhirnya, jika anda perlu untuk menggunakan .NET Framework perpustakaan yang tidak kompatibel dengan .NET Core, tidak ada masalah, anda dapat membangun yang microservice dengan .NET Framework dan di masa depan, anda mungkin bisa menggantinya dengan .NET Inti. infrastruktur platform anda bisa menggunakan banyak. Idealnya, untuk besar dan kompleks microservice sistem, anda harus menggunakan Layanan Azure Kain. Tapi stateless microservices anda juga dapat menggunakan produk lain seperti Azure Aplikasi atau Layanan Azure Fungsi. Perhatikan bahwa pada bulan juni 2016, tidak setiap teknologi dalam Azure mendukung .NET Core, tapi .NET Core support di Azure akan meningkat secara dramatis sekarang .NET Inti RTM dirilis.

3. Terbaik performant dan sistem yang terukur

Ketika sistem membutuhkan kinerja terbaik dan skalabilitas agar anda mendapatkan yang terbaik responsiveness tidak peduli berapa banyak pengguna yang anda miliki, maka adalah di mana .NET Inti dan ASP.NET Inti benar-benar bersinar. Semakin banyak yang dapat anda lakukan dengan jumlah yang sama dari infrastruktur/perangkat keras, lebih kaya pengalaman anda akan memiliki untuk pengguna akhir anda – dengan biaya yang lebih rendah. hari-hari hukum Moore peningkatan kinerja untuk satu Cpu tidak berlaku lagi, namun anda perlu melakukan lebih saat anda sistem ini berkembang dan kebutuhan yang lebih tinggi skalabilitas dan kinerja untuk sehari-hari' s lebih menuntut pengguna yang tumbuh secara eksponensial dalam jumlah. Anda perlu untuk mendapatkan lebih efisien, mengoptimalkan mana-mana, dan skala baik di cluster mesin, VMs dan core CPU, pada akhirnya. Hal ini tidak hanya masalah kepuasan pengguna; hal ini juga dapat membuat perbedaan besar dalam biaya/TCO. Ini adalah mengapa sangat penting untuk berusaha untuk kinerja dan skalabilitas. Seperti yang disebutkan, jika anda dapat memisahkan potongan-potongan kecil dari sistem anda sebagai microservices atau lainnya loosely-coupled pendekatan, itu akan lebih baik karena anda akan dapat tidak hanya berkembang setiap bagian kecil/microservice secara independen dan memiliki jangka panjang yang lebih baik kelincahan dan pemeliharaan, tetapi juga anda akan dapat menggunakan teknologi lainnya di microservice tingkat jika apa yang perlu anda lakukan adalah tidak kompatibel dengan .NET Inti. Dan akhirnya anda akan mampu refactor itu dan membawanya ke .NET Inti bila mungkin.

4. Command line style pembangunan untuk Mac, Linux, atau Windows.

pendekatan Ini adalah opsional ketika menggunakan .NET Inti. Anda juga dapat menggunakan Visual Studio IDE, tentu saja. Tapi jika anda seorang pengembang yang ingin mengembangkan dengan ringan editor dan berat menggunakan command line, .NET Inti ini dirancang untuk CLI. Menyediakan sederhana alat baris perintah yang tersedia pada semua platform yang didukung, yang memungkinkan pengembang untuk membangun dan menguji aplikasi dengan instalasi minimal pada pengembang, lab atau mesin-mesin produksi. Editor seperti Visual Studio Kode sama-sama menggunakan alat baris perintah untuk perkembangan mereka pengalaman. Dan IDE seperti Visual Studio sama-sama menggunakan CLI alat tetapi menyembunyikan mereka di balik kaya IDE pengalaman. Pengembang sekarang dapat memilih tingkat yang mereka inginkan untuk berinteraksi dengan alat rantai dari CLI untuk editor IDE.

5. Perlu samping .NET versi per level aplikasi.

Jika anda ingin untuk dapat menginstal aplikasi dengan ketergantungan pada versi yang berbeda dari kerangka dalam .NET, anda perlu menggunakan .NET Inti yang menyediakan 100% sisi-sisi seperti yang dijelaskan sebelumnya dalam dokumen ini.

6. Windows 10 UWP .NET aplikasi.

Selain itu, anda juga mungkin ingin membaca:

  1. Ketika saya harus TIDAK gunakan .NET Core?
  2. Ketika aku masih harus digunakan .NET Framework 4.x, bukan .NET Core?
  3. Kapan saya harus menggunakan Xamarin, bukan .NET Core?
Komentar (5)

Ini adalah cara Microsoft menjelaskan hal itu:

.NET Framework adalah "full" atau "tradisional" rasa .NET yang's didistribusikan dengan Windows. Gunakan ini ketika anda sedang membangun sebuah desktop Windows atau UWP aplikasi, atau bekerja dengan lebih tua ASP.NET 4.6+.

.NET Inti cross-platform .NET yang berjalan pada Windows, Mac, dan Linux. Gunakan ini ketika anda ingin membangun konsol atau web aplikasi yang dapat berjalan pada platform apapun, termasuk dalam Docker containers. Ini tidak termasuk UWP/aplikasi desktop saat ini.

Xamarin digunakan untuk membangun aplikasi mobile yang dapat berjalan pada iOS, Android, atau Windows Phone.

Xamarin biasanya berjalan di atas Mono, yang merupakan versi .BERSIH yang dibangun untuk cross-platform dukungan sebelum Microsoft memutuskan untuk secara resmi go cross-platform dengan .NET Inti. Seperti Xamarin, Kesatuan platform juga berjalan di atas Mono.


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

Komentar (6)

Anda bisa lihat di baris ini - https://stackoverflow.com/questions/37684508/difference-between-asp-net-core-net-core-and-asp-net-core-net-framework/37684644#37684644

Xamarin ini bukan debat sama sekali. Ketika anda ingin membangun mobile (iOS, Android, dan Windows Mobile) aplikasi menggunakan C#, Xamarin adalah satu-satunya pilihan anda.

Itu .NET Framework mendukung Windows dan aplikasi Web. Hari ini, anda dapat menggunakan Windows Forms, WPF, dan UWP untuk membangun aplikasi Windows di .NET Framework. ASP.NET MVC adalah digunakan untuk membangun aplikasi Web di .NET Framework.

.NET Inti adalah open-source dan cross-platform framework untuk membangun aplikasi untuk semua sistem operasi termasuk Windows, Mac, dan Linux. .NET Core mendukung UWP dan ASP.NET Inti saja. UWP digunakan untuk membangun Windows 10 target Windows dan aplikasi mobile. ASP.NET Inti ini digunakan untuk membangun web browser berbasis aplikasi.

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

Komentar (0)
  1. .NET adalah Ekosistem berdasarkan c# bahasa
  2. .NET Standar Standar (dengan kata lain, keterangan) dari .NET Ekosistem .

.Net Inti Kelas Perpustakaan ini dibangun di atas .Net Standar. .NET Standar anda dapat membuat hanya kelas-proyek perpustakaan yang tidak dapat dijalankan standalone dan harus dirujuk oleh yang lain .NET Core atau .NET Framework eksekusi proyek.Jika anda ingin menerapkan perpustakaan yang portabel ke .Net Framework, .Net Inti dan Xamarin, pilih .Net Standar Perpustakaan

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

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

  1. ASP.NET ini adalah sebuah aplikasi web perkembangan teknologi yang dibangun di atas .NET Framework
  2. .NET Inti juga berdasarkan framework .NET.

ini adalah open-source dan cross-platform framework untuk membangun aplikasi untuk semua sistem operasi termasuk Windows, Mac, dan Linux.

  1. Xamarin adalah sebuah kerangka kerja untuk mengembangkan lintas platform aplikasi mobile(iOS, Android, dan Windows Mobile) menggunakan C#

Pelaksanaan dukungan .NET Standar[biru] dan layak minimum platform untuk dukungan penuh .NET Standar (terbaru: [https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation-support])

Komentar (2)

.NET Core adalah versi .NET yang harus anda gunakan sekarang (lebih banyak fitur , bug , dll.)

Xamarin adalah sebuah platform yang menyediakan solusi untuk cross platform mobile masalah dikodekan dalam C# , sehingga anda don't perlu menggunakan Swift secara terpisah untuk IOS dan Android.

Komentar (2)

diperbarui pada Mei 2019

anda harus menggunakan .Net Core 3.0 dan kemudian meng-upgrade ke versi berikutnya .Net 5, semua yang anda butuhkan adalah hanya satu platform terpadu .Net5

akan Ada hanya satu .NET ke depan, dan anda akan dapat menggunakannya untuk target >Windows, Linux, macOS, iOS, Android, tvOS, watchOS dan WebAssembly dan banyak lagi. https://devblogs.microsoft.com/dotnet/introducing-net-5/

Komentar (1)