Glosarium .NET

Tujuan utama dari glosarium ini adalah untuk memperjelas makna dari istilah dan akronim yang dipilih yang sering muncul dalam dokumentasi .NET.

AOT

Kompiler sebelumnya.

Mirip dengan JIT, kompiler ini juga menerjemahkan IL ke kode mesin. Berbeda dengan kompilasi JIT, kompilasi AOT terjadi sebelum aplikasi dijalankan dan biasanya dilakukan pada mesin yang berbeda. Karena rantai alat AOT tidak dikompilasi pada waktu berjalan, maka tidak perlu meminimalkan waktu yang dihabiskan untuk menyusun. Itu berarti mereka dapat menghabiskan lebih banyak waktu untuk mengoptimalkan. Karena konteks AOT adalah seluruh aplikasi, kompiler AOT juga melakukan penautan lintas modul dan analisis seluruh program, yang berarti bahwa semua referensi diikuti dan memproduksi satu yang dapat dieksekusi.

Lihat CoreRT dan .NET Native.

Model aplikasi

API khusus beban kerja. Berikut adalah beberapa contoh:

  • ASP.NET
  • API Web ASP.NET
  • Entity Framework (EF)
  • Windows Presentation Foundation (WPF)
  • Windows Communication Foundation (WCF)
  • Windows Workflow Foundation (WF)
  • Formulir Windows (WinForms)

ASP.NET

Implementasi ASP.NET asli yang dikirim dengan .NET Framework, juga dikenal sebagai ASP.NET 4.x dan ASP.NET Framework.

Terkadang ASP.NET adalah istilah umum yang mengacu pada ASP.NET asli dan ASP.NET Core. Arti bahwa istilah yang dilakukan dalam instans tertentu ditentukan oleh konteks. Lihat ASP.NET 4.x ketika Anda ingin memperjelas bahwa Anda tidak menggunakan ASP.NET berarti kedua implementasi.

Lihat dokumentasi ASP.NET.

Inti ASP.NET

Implementasi ASP.NET lintas platform, kinerja tinggi, sumber terbuka.

Lihat dokumentasi ASP.NET Core.

rakitan

File .dll atau .exe yang dapat berisi kumpulan API yang dapat dipanggil oleh aplikasi atau rakitan lainnya.

Rakitan berisi jenis seperti antarmuka, kelas, struktur, enumerasi, dan delegasi. Rakitan dalam folder bin proyek terkadang disebut sebagai binari. Lihat juga pustaka.

BCL

Pustaka Kelas Dasar.

Satu set pustaka yang terdiri dari ruang nama System.* (dan sampai batas tertentu Microsoft.*). BCL adalah tujuan umum, kerangka kerja tingkat rendah tempat kerangka kerja aplikasi tingkat tinggi, seperti ASP.NET Core, dibangun.

Kode sumber BCL untuk .NET terkandung dalam repositori runtime .NET. Sebagian besar API BCL ini juga tersedia dalam .NET Framework, sehingga Anda dapat menganggap kode sumber ini sebagai fork kode sumber BCL .NET Framework.

Istilah-istilah berikut sering merujuk pada koleksi API yang sama yang dirujuk BCL:

CLR

Runtime Bahasa Umum

Arti pastinya tergantung pada konteksnya. Common Language Runtime biasanya mengacu pada runtime .NET Framework atau runtime .NET.

CLR menangani alokasi dan manajemen memori. CLR juga merupakan mesin virtual yang tidak hanya menjalankan aplikasi tetapi juga menghasilkan dan mengkompilasi kode selama aplikasi berjalan menggunakan kompilerJIT.

Implementasi CLR untuk .NET Framework hanya Windows.

Implementasi CLR untuk .NET (juga dikenal sebagai Core CLR) dibangun dari basis kode yang sama dengan CLR .NET Framework. Awalnya, Core CLR adalah runtime Silverlight dan dirancang untuk berjalan pada beberapa platform, khususnya Windows dan OS X. Ini masih merupakan runtime lintas platform, sekarang termasuk dukungan untuk banyak distribusi Linux.

Lihat juga runtime.

Core CLR

Runtime Bahasa Umum untuk .NET.

Lihat CLR.

CoreRT

Berbeda dengan CLR, CoreRT bukan mesin virtual, yang berarti tidak termasuk fasilitas untuk menghasilkan dan menjalankan kode selama aplikasi berjalan karena tidak menyertakan JIT. Namun, hal ini termasuk GC dan kemampuan untuk identifikasi jenis run-time (RTTI) dan refleksi. Namun, sistem jenisnya dirancang sehingga metadata untuk refleksi tidak diperlukan. Tidak memerlukan metadata memungkinkan rantai alat AOT yang dapat menautkan metadata yang berlebihan dan (lebih penting) mengidentifikasi kode yang tidak digunakan aplikasi. CoreRT sedang dalam pengembangan.

Lihat Pengantar CoreRT dan .NET Runtime Lab.

lintas platform

Kemampuan untuk mengembangkan dan menjalankan aplikasi yang dapat digunakan pada beberapa sistem operasi yang berbeda, seperti Linux, Windows, dan iOS, tanpa harus menulis ulang khusus untuk setiap aplikasi. Ini memungkinkan penggunaan kembali kode dan konsistensi antara aplikasi pada platform yang berbeda.

Lihat platform.

ekosistem

Semua perangkat lunak runtime, alat pengembangan, dan sumber daya komunitas yang digunakan untuk membangun dan menjalankan aplikasi untuk teknologi tertentu.

Istilah ".NET ecosystem" berbeda dari istilah serupa seperti ".NET stack" dalam penyertaan aplikasi dan pustaka pihak ketiga. Berikut adalah contoh dalam kalimat:

  • “Motivasi di balik .NET Standard adalah membangun keseragaman yang lebih besar dalam ekosistem .NET.”

kerangka kerja

Secara umum, kumpulan API komprehensif yang memfasilitasi pengembangan dan penyebaran aplikasi yang didasarkan pada teknologi tertentu. Dalam pengertian umum ini, ASP.NET Core dan Formulir Windows adalah contoh kerangka kerja aplikasi. Kata-kata kerangka kerja dan pustaka sering digunakan secara sinonim.

Kata "kerangka kerja" memiliki arti yang berbeda dalam istilah berikut:

Terkadang "kerangka kerja" mengacu pada implementasi .NET.

pustaka kerangka kerja

Artinya tergantung pada konteks. Mungkin merujuk ke pustaka kerangka kerja untuk .NET, dalam hal ini mengacu pada pustaka yang sama dengan yang dirujuk BCL . Ini mungkin juga merujuk ke pustaka kerangka kerja ASP.NET Core , yang dibangun di BCL dan menyediakan API tambahan untuk aplikasi web.

GC

Pengumpul sampah.

Pengumpul sampah adalah implementasi dari manajemen memori otomatis. GC membebaskan memori yang ditempati oleh objek yang tidak lagi digunakan.

Lihat Pengumpul Sampah.

IL

Bahasa perantara.

Bahasa .NET tingkat lebih tinggi, seperti C#, dikompilasi ke set instruksi perangkat keras-agnostik, yang disebut Bahasa Perantara (IL). IL terkadang disebut sebagai MSIL (Microsoft IL) atau CIL (Common IL).

JIT

Kompiler just-in-time.

Mirip dengan AOT, kompiler ini menerjemahkan IL ke kode mesin yang dipahami prosesor. Tidak seperti AOT, kompilasi JIT terjadi sesuai permintaan dan dilakukan pada komputer yang sama dengan yang perlu dijalankan kode. Karena kompilasi JIT terjadi selama eksekusi aplikasi, waktu kompilasi adalah bagian dari waktu proses. Dengan demikian, kompilator JIT harus menyeimbangkan waktu yang dihabiskan untuk mengoptimalkan kode terhadap penghematan yang dapat dihasilkan kode yang dihasilkan. Tetapi JIT tahu perangkat keras yang sebenarnya dan dapat membebaskan pengembang dari keharusan mengirim implementasi yang berbeda.

implementasi .NET

Implementasi .NET meliputi:

  • Satu atau beberapa runtime. Contoh: CLR, CoreRT.
  • Pustaka kelas yang mengimplementasikan versi .NET Standard dan dapat menyertakan API tambahan. Contoh: BCL untuk .NET Framework dan .NET.
  • Secara opsional, satu atau beberapa kerangka kerja aplikasi. Contoh: ASP.NET, Formulir Windows, dan WPF disertakan dalam .NET Framework dan .NET.
  • Secara opsional, alat pengembangan. Beberapa alat pengembangan dipakai bersama di antara beberapa implementasi.

Contoh implementasi .NET:

Untuk informasi selengkapnya, lihat implementasi .NET.

pustaka

Kumpulan API yang dapat dipanggil oleh aplikasi atau pustaka lain. Pustaka .NET terdiri dari satu atau beberapa rakitan.

Kata-kata pustaka dan kerangka kerja sering digunakan secara sinonim.

Mono

Implementasi sumber terbuka lintas platform.NET yang digunakan saat runtime kecil diperlukan. Ini adalah runtime yang mendukung aplikasi Xamarin di Android, Mac, iOS, tvOS, dan watchOS dan terutama difokuskan pada aplikasi yang memerlukan jejak kecil.

Ini mendukung semua versi .NET Standard yang saat ini diterbitkan.

Secara historis, Mono menerapkan API yang lebih besar dari .NET Framework dan meniru beberapa kemampuan paling populer di Unix. Terkadang digunakan untuk menjalankan aplikasi .NET yang mengandalkan kemampuan tersebut pada Unix.

Mono biasanya digunakan dengan kompiler just-in-time, tetapi juga dilengkapi kompiler statis penuh (kompilasi sebelumnya) yang digunakan pada platform seperti iOS.

Untuk informasi selengkapnya, lihat dokumentasi Mono.

AOT Asli

Mode penyebaran tempat aplikasi mandiri dan dikompilasi ke kode asli pada saat publikasi. Aplikasi AOT asli tidak menggunakan pengkompilasi JIT pada waktu proses. Mereka dapat berjalan pada komputer yang tidak menginstal runtime .NET.

Untuk informasi selengkapnya, lihat Penyebaran AOT asli.

.NET

.NET memiliki dua arti, dan yang dimaksudkan tergantung pada konteks:

  • .NET dapat digunakan sebagai istilah payung untuk .NET Standard dan semua implementasi dan beban kerja .NET.
  • .NET lebih sering mengacu pada implementasi .NET lintas platform, berkinerja tinggi, sumber terbuka yang dulu disebut .NET Core. Ini juga dapat disebut sebagai .NET 5 (dan .NET Core) dan versi yang lebih baru atau hanya .NET 5+.

Misalnya, arti pertama dimaksudkan dalam frasa seperti "implementasi .NET." Arti kedua dimaksudkan dalam nama seperti .NET SDK dan .NET CLI. Dengan tidak adanya konteks yang menunjukkan makna pertama dimaksudkan, asumsikan bahwa makna kedua dimaksudkan.

Versi .NET yang lebih lama dikenal sebagai .NET Core 1 hingga 3.1. Nomor versi melewati 4, dan versi yang mengikuti 3.1 dikenal sebagai .NET 5, menghilangkan "Core" dari namanya. Menjatuhkan "Core" dilakukan untuk menekankan bahwa implementasi .NET ini adalah yang direkomendasikan untuk semua pengembangan baru. Melompati versi 4 dilakukan untuk membantu menghindari membingungkan implementasi .NET yang lebih baru ini dengan implementasi lama yang dikenal sebagai .NET Framework. Versi .NET Framework saat ini adalah 4.8.1.

.NET selalu huruf besar semuanya, tidak pernah ".Net".

Lihat dokumentasi .NET.

.NET CLI

Toolchain lintas platform untuk mengembangkan aplikasi dan pustaka untuk .NET. Juga dikenal sebagai .NET Core CLI.

Lihat .NET CLI.

.NET Core

Lihat .NET.

.NET Framework

Implementasi .NET yang hanya berjalan pada Windows. Termasuk Runtime Bahasa Umum (CLR), Pustaka Kelas Dasar (BCL), dan pustaka kerangka kerja aplikasi seperti ASP.NET, Formulir Windows, dan WPF.

Lihat Panduan .NET Framework.

.NET Native

Rantai alat pengkompilasi yang menghasilkan kode native ahead-of-time (AOT), dibandingkan dengan just-in-time (JIT).

Kompilasi terjadi pada mesin pengembang yang mirip dengan cara kerja kompiler dan linker C++. Ini menghapus kode yang tidak digunakan dan menghabiskan lebih banyak waktu untuk mengoptimalkannya. Ini mengekstrak kode dari pustaka dan menggabungkannya ke dalam executable. Hasilnya adalah satu modul yang mewakili seluruh aplikasi.

UWP adalah kerangka kerja aplikasi yang didukung oleh .NET Native.

Lihat dokumentasi .NET Native.

.NET SDK

Sekumpulan pustaka dan alat yang memungkinkan pengembang membuat aplikasi dan pustaka untuk .NET. Juga dikenal sebagai .NET Core SDK.

Termasuk .NET CLI untuk membangun aplikasi, pustaka .NET, dan runtime untuk membangun dan menjalankan aplikasi, dan dotnet yang dapat dieksekusi (dotnet.exe) yang menjalankan perintah CLI dan menjalankan aplikasi.

Lihat Gambaran Umum .NET SDK.

.NET Standar

Spesifikasi formal dari API .NET yang tersedia di setiap implementasi .NET.

Spesifikasi .NET Standard terkadang disebut pustaka. Karena pustaka menyertakan implementasi API, tidak hanya spesifikasi (antarmuka), menyesatkan untuk memanggil .NET Standard sebagai "pustaka."

Lihat .NET Standard.

NGen

Generasi asli (gambar).

Anda dapat menganggap teknologi ini sebagai kompiler JIT persisten. Biasanya mengkompilasi kode pada mesin tempat kode dijalankan, tetapi kompilasi biasanya terjadi pada waktu penginstalan.

package

Paket NuGet—atau hanya paket—adalah file .zip dengan satu atau beberapa rakitan dengan nama yang sama bersama dengan metadata tambahan seperti nama pembuat.

File .zip memiliki ekstensi .nupkg dan dapat berisi aset, seperti file .dll dan file .xml , untuk digunakan dengan beberapa kerangka kerja dan versi target. Saat diinstal di aplikasi atau pustaka, aset yang sesuai dipilih berdasarkan kerangka kerja target yang ditentukan oleh aplikasi atau pustaka. Aset yang menentukan antarmuka berada di folder ref, dan aset yang menentukan implementasi berada di folder lib.

platform

Sistem operasi dan perangkat keras yang menjalankannya, seperti Windows, macOS, Linux, iOS, dan Android.

Berikut adalah contoh penggunaan dalam kalimat:

  • ".NET Core adalah implementasi lintas platform dari .NET."
  • "Profil PCL mewakili platform Microsoft, sementara .NET Standard bersifat agnostik terhadap platform."

Dokumentasi .NET lama terkadang menggunakan ".NET platform" untuk berarti implementasi .NET atau tumpukan .NET termasuk semua implementasi. Kedua penggunaan ini cenderung membingungkan dengan arti (OS/perangkat keras) utama, jadi kami mencoba menghindari penggunaan ini.

"Platform" memiliki arti yang berbeda dalam frasa "platform pengembang", yang mengacu pada perangkat lunak yang menyediakan alat dan pustaka untuk membangun dan menjalankan aplikasi. .NET adalah platform pengembang sumber terbuka, lintas platform yang gratis untuk membuat berbagai jenis aplikasi.

POCO

POCO—atau objek/kelasCLR lama biasa—adalah struktur data .NET yang hanya berisi properti publik atau bidang. POCO tidak boleh berisi anggota lain, seperti:

  • methods
  • events
  • delegasi

Objek-objek ini digunakan terutama sebagai objek transfer data (DTO). POCO murni tidak akan mewarisi objek lain, atau menerapkan antarmuka. Umum bagi POCO untuk digunakan dengan serialisasi.

runtime

Secara umum, lingkungan eksekusi untuk program terkelola. OS adalah bagian dari lingkungan runtime tetapi bukan bagian dari runtime .NET. Berikut adalah beberapa contoh runtime .NET dalam arti kata ini:

  • Runtime Bahasa Umum (CLR)
  • .NET Native (untuk UWP)
  • Runtime mono

Kata "runtime" memiliki arti yang berbeda dalam beberapa konteks:

  • runtime .NET pada halaman unduhan .NET 5.

    Anda dapat mengunduh runtime .NET atau runtime lainnya, seperti runtime ASP.NET Core. Runtime dalam penggunaan ini adalah sekumpulan komponen yang harus diinstal pada komputer untuk menjalankan aplikasi dependen-kerangka kerja pada komputer. Runtime .NET mencakup CLR dan kerangka kerja bersama .NET, yang menyediakan BCL.

  • Pustaka runtime .NET

    Mengacu pada pustaka yang sama dengan yang dirujuk BCL. Namun, runtime lain, seperti runtime ASP.NET Core, memiliki kerangka kerja bersama yang berbeda, dengan pustaka tambahan yang dibangun di BCL.

  • Pengidentifikasi Runtime (RID).

    Runtime di sini berarti platform OS dan arsitektur CPU tempat aplikasi .NET berjalan, misalnya: linux-x64.

  • Terkadang "runtime" digunakan dalam arti implementasi .NET, seperti dalam contoh berikut:

    • "Berbagai runtime .NET mengimplementasikan versi tertentu dari .NET Standard. ... Setiap versi runtime .NET mengiklankan versi .NET Standard tertinggi yang didukungnya ..."
    • "Pustaka yang dimaksudkan untuk berjalan pada beberapa runtime harus menargetkan kerangka kerja ini." (mengacu pada .NET Standard)

kerangka kerja bersama

Artinya tergantung pada konteks. Kerangka kerja bersama .NET mengacu pada pustaka yang disertakan dalam runtime .NET. Dalam hal ini, kerangka kerja bersama untuk .NET mengacu pada pustaka yang sama dengan yang dirujuk BCL .

Ada kerangka kerja bersama lainnya. Kerangka kerja bersama ASP.NET Core mengacu pada pustaka yang disertakan dalam runtime ASP.NET Core, yang mencakup BCL ditambah API tambahan untuk digunakan oleh aplikasi web.

Untuk aplikasi yang dependen-kerangka kerja, kerangka kerja bersama terdiri dari pustaka yang terkandung dalam rakitan yang diinstal dalam folder pada komputer yang menjalankan aplikasi. Untuk aplikasi mandiri, rakitan kerangka kerja bersama disertakan dengan aplikasi.

Untuk informasi selengkapnya, lihat Mendalami primitif .NET Core, bagian 2: kerangka kerja bersama.

stack

Serangkaian teknologi pemrograman yang digunakan bersama untuk membangun dan menjalankan aplikasi.

".NET stack" mengacu pada .NET Standard dan semua implementasi .NET. Frasa "tumpukan .NET" dapat merujuk ke satu implementasi .NET.

kerangka kerja target

Koleksi API yang diandalkan oleh aplikasi atau pustaka .NET.

Aplikasi atau pustaka dapat menargetkan versi .NET Standard (misalnya, .NET Standard 2.0), yang merupakan spesifikasi untuk sekumpulan API standar di semua implementasi .NET. Aplikasi atau pustaka juga dapat menargetkan versi implementasi .NET tertentu, dalam hal ini aplikasi atau pustaka mendapatkan akses ke API khusus implementasi. Misalnya, aplikasi yang menargetkan Xamarin.iOS mendapatkan akses ke pembungkus API iOS yang disediakan Xamarin.

Untuk beberapa kerangka kerja target (misalnya, .NET Framework) API yang tersedia didefinisikan oleh rakitan yang diinstal implementasi .NET pada sistem, yang dapat mencakup API kerangka kerja aplikasi (misalnya, ASP.NET, WinForms). Untuk kerangka kerja target berbasis paket, API kerangka kerja ditentukan oleh paket yang diinstal di aplikasi atau pustaka.

Lihat Kerangka Kerja Target.

TFM

Moniker kerangka kerja target.

Format token standar untuk menentukan kerangka kerja target aplikasi atau pustaka .NET. Kerangka kerja target biasanya dirujuk dengan nama pendek, seperti net462. TFM bentuk panjang (seperti .NETFramework,Version=4.6.2) ada tetapi umumnya tidak digunakan untuk menentukan kerangka kerja target.

Lihat Kerangka Kerja Target.

UWP

Universal Windows Platform.

Implementasi .NET yang digunakan untuk membangun aplikasi dan perangkat lunak Windows yang mendukung sentuhan untuk Internet of Things (IoT). Ini dirancang untuk menyatukan berbagai jenis perangkat yang mungkin ingin Anda targetkan, termasuk PC, tablet, ponsel, dan bahkan Xbox. UWP menyediakan banyak layanan, seperti penyimpanan aplikasi terpusat, lingkungan eksekusi (AppContainer), dan satu set API Windows untuk digunakan alih-alih Win32 (WinRT). Aplikasi dapat ditulis dalam C++, C#, Visual Basic, dan JavaScript. Saat menggunakan C# dan Visual Basic, API .NET disediakan oleh .NET.

beban kerja

Jenis aplikasi yang sedang dibangun seseorang. Lebih umum daripada model aplikasi. Misalnya, di bagian atas setiap halaman dokumentasi .NET, termasuk yang ini, adalah daftar drop-down untuk Beban Kerja, yang memungkinkan Anda beralih ke dokumentasi untuk Web, Seluler, Cloud, Desktop, dan Pembelajaran Mesin & Data.

Dalam beberapa konteks, beban kerja mengacu pada kumpulan fitur Visual Studio yang dapat Anda pilih untuk diinstal guna mendukung jenis aplikasi tertentu. Misalnya, lihat Memilih beban kerja.

Lihat juga