Format pliku zestawu .NET
Platforma .NET definiuje format pliku binarnego, zestaw, który jest używany do pełnego opisywania i zawierania programów .NET. Zestawy są używane dla samych programów, a także wszelkich bibliotek zależnych. Program .NET można wykonać jako jeden lub więcej zestawów bez innych wymaganych artefaktów poza odpowiednią implementacją platformy .NET. Zależności natywne, w tym interfejsy API systemu operacyjnego, są oddzielnym problemem i nie są zawarte w formacie zestawu platformy .NET, chociaż czasami są one opisane w tym formacie (na przykład WinRT).
Każdy składnik interfejsu wiersza polecenia zawiera metadane deklaracji, implementacji i odwołania specyficzne dla tego składnika. W związku z tym metadane specyficzne dla składników są określane jako metadane składników, a wynikowy składnik jest określany jako samoopisujący — z ECMA 335 I.9.1, Components and assemblies.
Format jest w pełni określony i ustandaryzowany jako ECMA 335. Wszystkie kompilatory i środowiska uruchomieniowe platformy .NET używają tego formatu. Obecność udokumentowanego i często aktualizowanego formatu binarnego była główną korzyścią (prawdopodobnie wymaganiem) dla współdziałania. Format został ostatnio zaktualizowany w sposób merytoryczny w 2005 r. (.NET Framework 2.0), aby uwzględnić architekturę typów ogólnych i procesorów.
Format jest niezależny od procesora CPU i systemu operacyjnego. Jest on używany jako część implementacji platformy .NET, które są przeznaczone dla wielu układów i procesorów CPU. Chociaż sam format ma dziedzictwo systemu Windows, można go zaimplementować w dowolnym systemie operacyjnym. Jego prawdopodobnie najważniejszym wyborem dla współdziałania systemu operacyjnego jest to, że większość wartości jest przechowywana w formacie mało endianu. Nie ma określonej koligacji do rozmiaru wskaźnika komputera (na przykład 32-bitowego, 64-bitowego).
Format zestawu .NET jest również bardzo opisowy w strukturze danego programu lub biblioteki. Opisuje wewnętrzne składniki zestawu, w szczególności odwołania do zestawów i typy zdefiniowane i ich wewnętrzną strukturę. Narzędzia lub interfejsy API mogą odczytywać i przetwarzać te informacje w celu wyświetlania lub podejmowania decyzji programowych.
Formatuj
Format binarny platformy .NET jest oparty na formacie pliku Windows PE. W rzeczywistości biblioteki klas platformy .NET są zgodne z PEs systemu Windows i pojawiają się na pierwszy rzut oka jako biblioteki linków dynamicznych systemu Windows (DLL) lub pliki wykonywalne aplikacji (EXEs). Jest to bardzo przydatna cecha w systemie Windows, gdzie mogą maskować jako natywne pliki binarne wykonywalne i uzyskać niektóre z tych samych metod leczenia (na przykład ładowanie systemu operacyjnego, narzędzia PE).
Nagłówki zestawów z ECMA 335 II.25.1, struktura formatu pliku środowiska uruchomieniowego.
Przetwarzanie zestawów
Istnieje możliwość pisania narzędzi lub interfejsów API do przetwarzania zestawów. Informacje o zestawie umożliwiają podejmowanie decyzji programistycznych w czasie wykonywania, ponowne zapisywanie zestawów, zapewnianie funkcji IntelliSense interfejsu API w edytorze i generowanie dokumentacji. System.Reflection, System.Reflection.MetadataLoadContexti Mono.Cecil to dobre przykłady narzędzi, które są często używane w tym celu.