.NET-szerelvényfájl formátuma
A .NET egy bináris fájlformátumot, szerelvényt határoz meg, amely a .NET-programok teljes leírására és kezelésére szolgál. A szerelvényeket maguk a programok, valamint a függő kódtárak használják. A .NET-programok egy vagy több szerelvényként is végrehajthatók, a megfelelő .NET-implementáción túl más szükséges összetevők nélkül. A natív függőségek, beleértve az operációsrendszer-API-kat is, külön problémát jelentenek, és nem tartoznak a .NET szerelvényformátumba, bár ezeket néha ezzel a formátummal (például WinRT) írják le.
Minden CLI-összetevő tartalmazza az adott összetevőre vonatkozó deklarációk, implementációk és hivatkozások metaadatait. Ezért az összetevőspecifikus metaadatokat összetevő-metaadatoknak nevezzük, és az eredményként kapott összetevőt önleírónak nevezzük – az ECMA 335 I.9.1 összetevőkből és szerelvényekből.
A formátum teljes mértékben meg van adva, és ecMA 335-ként van szabványosítva. Ezt a formátumot minden .NET-fordító és futtatókörnyezet használja. A dokumentált és ritkán frissített bináris formátumok jelenléte jelentős előnyt jelent (vitathatatlanul követelmény) az együttműködési képesség szempontjából. A formátumot legutóbb 2005-ben frissítették érdemben (.NET-keretrendszer 2.0), hogy megfeleljen az általános és a processzorarchitektúrának.
A formátum processzor- és operációsrendszer-agnosztikus. A .NET-implementációk részeként használták, amelyek számos chipet és CPU-t céloznak meg. Bár maga a formátum Windows-örökségű, bármely operációs rendszeren implementálható. Az operációs rendszer együttműködésének vitathatatlanul legjelentősebb választása az, hogy a legtöbb érték kis endian formátumban van tárolva. Nincs konkrét affinitása a gépmutató méretéhez (például 32 bites, 64 bites).
A .NET szerelvény formátuma szintén nagyon leíró egy adott program vagy tár struktúrájáról. Leírja egy szerelvény belső összetevőit, különösen a szerelvényhivatkozásokat és a definiált típusokat, valamint azok belső szerkezetét. Az eszközök vagy API-k elolvashatják és feldolgozhatják ezeket az információkat megjelenítés céljából, vagy programozott döntéseket hozhatnak.
Formátum
A .NET bináris formátum a Windows PE fájlformátumán alapul. A .NET-osztálykódtárak a Windows rendszerű számítógépeknek megfelelőek, és első pillantásra Windows dinamikus csatolású kódtárakként (DLL-k) vagy alkalmazás-végrehajthatókként (EXE-k) jelennek meg. Ez egy nagyon hasznos jellemző a Windowsban, ahol natív végrehajtható bináris fájlokként álcázhatják magukat, és ugyanahhoz a kezeléshez juthatnak (például operációsrendszer-terhelés, PE-eszközök).
Szerelvényfejlécek az ECMA 335 II.25.1-ből, a futtatókörnyezet fájlformátumának felépítése.
A szerelvények feldolgozása
A szerelvények feldolgozásához eszközök vagy API-k írhatók. Az összeállítási információk lehetővé teszik a programozott döntések futásidőben történő meghozatalát, a szerelvények újraírását, az API IntelliSense szerkesztőben való biztosítását és a dokumentáció elkészítését. System.Reflection, System.Reflection.MetadataLoadContextés a Mono.Cecil jó példa az erre a célra gyakran használt eszközökre.