Bagikan melalui


Format berkas rakitan .NET

.NET mendefinisikan format file biner, assembly, yang digunakan untuk sepenuhnya menjelaskan dan berisi program .NET. Assembly digunakan untuk program itu sendiri serta pustaka apa pun yang bergantung. Program .NET dapat dijalankan sebagai satu atau beberapa rakitan, tanpa artefak lain yang diperlukan, di luar implementasi .NET yang sesuai. Dependensi asli, termasuk API sistem operasi, menjadi perhatian terpisah dan tidak terkandung dalam format rakitan .NET, meskipun terkadang dijelaskan dengan format ini (misalnya, WinRT).

Setiap komponen CLI membawa metadata untuk deklarasi, implementasi, dan referensi khusus untuk komponen tersebut. Oleh karena itu, metadata khusus komponen disebut sebagai metadata komponen, dan komponen yang dihasilkan dikatakan menjelaskan sendiri – dari ECMA 335 I.9.1, Komponen dan rakitan.

Format sepenuhnya ditentukan dan distandarkan sebagai ECMA 335. Semua kompilator dan runtime .NET menggunakan format ini. Kehadiran format biner yang didokumentasikan dan jarang diperbarui telah menjadi manfaat utama (bisa dibilang persyaratan) untuk interoperabilitas. Format terakhir diperbarui dengan cara substantif pada 2005 (.NET Framework 2.0) untuk mengakomodasi arsitektur generik dan prosesor.

Formatnya independen terhadap CPU dan OS. Ini telah digunakan sebagai bagian dari implementasi .NET yang menargetkan banyak chip dan CPU. Meskipun format itu sendiri memiliki warisan Windows, format ini dapat diimplementasikan pada sistem operasi apa pun. Pilihannya yang bisa dibilang paling signifikan untuk interoperabilitas OS adalah bahwa sebagian besar nilai disimpan dalam format little-endian. Ini tidak memiliki afinitas tertentu untuk ukuran penunjuk komputer (misalnya, 32-bit, 64-bit).

Format rakitan .NET juga sangat deskriptif tentang struktur program atau pustaka tertentu. Ini menjelaskan komponen internal perakitan, khususnya referensi dan jenis perakitan yang ditentukan dan struktur internalnya. Alat atau API dapat membaca dan memproses informasi ini untuk ditampilkan atau membuat keputusan terprogram.

Rancangan

Format biner .NET didasarkan pada format file Pe Windows. Bahkan, pustaka kelas .NET adalah PE Windows yang sesuai, dan sekilas terlihat seperti pustaka link dinamis (DLL) atau eksekutabel aplikasi (EXE) Windows. Ini adalah karakteristik yang sangat berguna pada Windows, di mana mereka dapat menyamar sebagai biner eksekutabel asli dan mendapatkan beberapa perlakuan yang sama (misalnya, pemrosesan OS, alat PE).

Penyusunan Header

Kepala Rakitan dari ECMA 335 II.25.1, Struktur format berkas runtime.

Memproses rakitan

Dimungkinkan untuk menulis alat atau API untuk memproses rakitan. Informasi perakitan memungkinkan pengambilan keputusan terprogram pada waktu proses, menulis ulang rakitan, menyediakan API IntelliSense dalam editor, dan menghasilkan dokumentasi. System.Reflection, , System.Reflection.MetadataLoadContextdan Mono.Cecil adalah contoh alat yang baik yang sering digunakan untuk tujuan ini.