.NET vs. .NET Framework untuk aplikasi server
Ada dua implementasi .NET yang didukung untuk membangun aplikasi sisi server: .NET dan .NET Framework. Versi .NET terbaru (saat ini .NET 8) adalah versi .NET pilihan yang digunakan untuk pengembangan server. Alasan untuk terus menggunakan .NET Framework bersifat spesifik dan terbatas.
implementasi | Versi yang disertakan |
---|---|
.NET | .NET Core 1.0 - 3.1 .NET 5 dan versi yang lebih baru |
.NET Framework | .NET Framework 1.0 - 4.8 |
Pilih .NET
.NET memiliki keuntungan berikut untuk aplikasi server:
Bekerja lintas platform.
.NET memungkinkan aplikasi web atau layanan Anda berjalan di beberapa platform, misalnya, Windows, Linux, dan macOS. Anda juga dapat menggunakan salah satu sistem operasi ini sebagai stasiun kerja pengembangan Anda. Gunakan lingkungan pengembangan terintegrasi (IDE) Visual Studio di Windows, atau gunakan Visual Studio Code di macOS, Linux, atau Windows. Visual Studio Code mendukung IntelliSense dan penelusuran kesalahan. Sebagian besar editor pihak ketiga, seperti Sublime, Emacs, dan VI, bekerja dengan .NET. Editor pihak ketiga ini mendapatkan editor IntelliSense menggunakan Omnisharp. Anda juga dapat melewati editor kode dan langsung menggunakan .NET CLI.
Memungkinkan Anda menargetkan layanan mikro.
Arsitektur layanan mikro juga memungkinkan Anda menggabungkan teknologi melintasi batas layanan. Campuran teknologi ini memungkinkan pelukan bertahap .NET untuk layanan mikro baru yang bekerja dengan layanan atau layanan mikro lainnya. Misalnya, Anda dapat mencampur layanan mikro atau layanan yang dikembangkan dengan .NET Framework, Java, Ruby, atau teknologi monolitik lainnya.
Ada banyak platform infrastruktur yang tersedia. Azure Service Fabric dirancang untuk sistem layanan mikro besar dan kompleks. Azure App Service adalah pilihan yang baik untuk layanan mikro stateless. Alternatif layanan mikro berdasarkan Docker sesuai dengan pendekatan layanan mikro apa pun, seperti yang dijelaskan di bagian berikutnya (Mendukung kontainer Docker). Semua platform ini mendukung .NET dan membuatnya ideal untuk menghosting layanan mikro Anda.
Untuk informasi selengkapnya tentang arsitektur layanan mikro, lihat Layanan Mikro .NET: Arsitektur untuk aplikasi .NET dalam kontainer.
Mendukung kontainer Docker.
Kontainer umumnya digunakan dengan arsitektur layanan mikro. Kontainer juga dapat digunakan untuk mengkontainerisasi aplikasi web atau layanan yang mengikuti pola arsitektur apa pun. Meskipun .NET Framework dapat digunakan pada kontainer Windows, modularitas dan sifat ringan .NET menjadikannya pilihan yang lebih baik untuk kontainer. Saat Anda membuat dan menyebarkan kontainer, ukuran gambarnya jauh lebih kecil dengan .NET daripada dengan .NET Framework. Karena lintas platform, Anda dapat menyebarkan aplikasi server ke kontainer Linux Docker.
Anda dapat menghosting kontainer Docker di infrastruktur Linux atau Windows Anda sendiri atau di layanan cloud seperti Azure Kubernetes Service. Azure Kubernetes Service dapat mengelola, mengatur, dan menskalakan aplikasi berbasis kontainer di cloud.
Berkinerja tinggi dan dapat diskalakan.
Ketika sistem Anda membutuhkan performa dan skalabilitas terbaik, .NET dan ASP.NET Core adalah opsi terbaik Anda. Runtime server berkinerja tinggi untuk Windows Server dan Linux menjadikan ASP.NET Core sebagai kerangka kerja web berkinerja tinggi pada tolok ukur TechEmpower.
Performa dan skalabilitas sangat relevan untuk arsitektur layanan mikro, di mana ratusan layanan mikro mungkin berjalan. Dengan ASP.NET Core, sistem berjalan dengan jumlah server atau komputer virtual (VM) yang jauh lebih rendah, yang menghemat biaya pada infrastruktur dan hosting.
Mendukung versi .NET berdampingan per aplikasi.
Implementasi .NET mendukung penginstalan berdampingan dari berbagai versi runtime .NET pada komputer yang sama. Kemampuan tersebut memungkinkan beberapa layanan di server yang sama, masing-masing pada versi .NET-nya sendiri. Ini juga menurunkan risiko dan menghemat uang dalam peningkatan aplikasi dan operasi IT.
Penginstalan berdampingan tidak dimungkinkan dengan .NET Framework. Ini adalah komponen Windows, dan hanya satu versi yang dapat ada pada komputer sekaligus: setiap versi .NET Framework menggantikan versi sebelumnya. Jika Anda menginstal aplikasi baru yang menargetkan versi .NET Framework yang lebih baru, Anda mungkin merusak aplikasi yang ada yang berjalan di komputer karena versi sebelumnya diganti.
Lebih aman.
Kapan memilih .NET Framework
Seperti yang disebutkan sebelumnya, implementasi .NET menawarkan manfaat signifikan untuk aplikasi baru dan pola aplikasi. Namun, dalam beberapa skenario tertentu, Anda mungkin perlu menggunakan .NET Framework untuk aplikasi server Anda, dan .NET Framework akan terus didukung. Gunakan .NET Framework untuk aplikasi server Anda saat:
Aplikasi Anda saat ini menggunakan .NET Framework.
Dalam kebanyakan kasus, Anda tidak perlu memigrasikan aplikasi yang ada ke .NET. Sebagai gantinya, sebaiknya gunakan .NET saat Anda memperluas aplikasi yang ada, seperti menulis layanan web baru di ASP.NET Core.
Aplikasi Anda menggunakan pustaka pihak ketiga atau paket NuGet yang tidak tersedia untuk .NET.
.NET Standard memungkinkan berbagi kode di semua implementasi .NET, termasuk .NET 6+. Dengan .NET Standard 2.0, mode kompatibilitas memungkinkan proyek .NET Standard dan .NET mereferensikan pustaka .NET Framework. Untuk informasi selengkapnya, lihat Dukungan untuk pustaka .NET Framework.
Anda hanya boleh menggunakan .NET Framework saat pustaka atau paket NuGet menggunakan teknologi yang tidak tersedia di .NET Standard atau .NET.
Aplikasi Anda menggunakan teknologi .NET Framework yang tidak tersedia untuk .NET.
Ada beberapa teknologi .NET Framework tidak tersedia di .NET. Daftar berikut menunjukkan teknologi paling umum yang tidak ditemukan di .NET:
- ASP.NET aplikasi Web Forms: ASP.NET Web Forms hanya tersedia di .NET Framework. ASP.NET Core tidak dapat digunakan untuk Formulir Web ASP.NET.
- ASP.NET aplikasi Halaman Web: halaman web ASP.NET tidak disertakan dalam ASP.NET Core.
- Layanan terkait alur kerja: Windows Workflow Foundation (WF), Workflow Services (WCF + WF dalam satu layanan), dan WCF Data Services (sebelumnya dikenal sebagai "ADO.NET Data Services") hanya tersedia dalam .NET Framework.
- Dukungan bahasa: Visual Basic dan F# didukung di .NET tetapi tidak untuk semua jenis proyek. Untuk daftar templat proyek yang didukung, lihat Opsi templat untuk dotnet baru.
Untuk informasi selengkapnya, lihat teknologi .NET Framework tidak tersedia di .NET.
Aplikasi Anda menggunakan platform yang tidak mendukung .NET.
Beberapa platform Microsoft dan platform pihak ketiga tidak mendukung .NET 6. Beberapa layanan Azure menyediakan SDK yang belum tersedia untuk dikonsumsi di .NET. Dalam kasus seperti itu, Anda dapat menggunakan REST API yang setara alih-alih SDK klien.