Unterschied zwischen Metadaten und Manifest

7

Ich lerne .NET Framework und lese Metadaten und Manifest .

  

"Metadaten sind Daten über Daten und Manifest sind Daten über die Montage !!"

F: Also ist nicht eine Metadaten Manifest?

Was sind dann die Unterschiede?

    
Rohit Vipin Mathews 23.02.2012, 04:49
quelle

6 Antworten

13

Manifest verwaltet die Informationen zu den Baugruppen wie Version, Name Gebietsschema und ein optionaler starker Name, der eindeutige Identifizierung der Baugruppe Dieses Manifest Informationen werden von der CLR verwendet. Das Manifest enthält auch die Sicherheitsanforderungen, um diese Baugruppe zu überprüfen. Es auch enthält die Namen und Hashes aller Dateien die Versammlung. Das .NET-Assemblymanifest enthält a kryptographischer Hash der verschiedenen Module in der Assembly. Und wenn die Assembly geladen ist, berechnet die CLR die Hash der Module zur Hand und vergleicht es mit der eingebetteter Hash. Wenn der zur Laufzeit generierte Hash unterschiedlich ist von dem, das im Manifest gefunden wird, lehnt .NET ab, das zu laden Assembly und löst eine Ausnahme aus.

Metadaten sind Daten über die Daten. Metadaten ergeben die Typen, die in dieser Baugruppe verfügbar sind, nämlich Klassen, Schnittstellen, Enums, Strukturen, etc., und ihre Namespaces enthalten, die Name jedes Typs, seine Sichtbarkeit / Geltungsbereich, seine Basisklasse, die implementierten Schnittstellen, ihre Methoden und ihr Umfang, und die Parameter jeder Methode, die Eigenschaften des Typs und so weiter. Die Assemblymetadaten werden von der übergeordneten Ebene generiert Compiler automatisch aus den Quelldateien. Der Compiler bettet die Metadaten in die Ziel-Ausgabedatei ein, ein .exe oder ein .netmodul im Fall von Multi-Modul Montage.

    
Teju MB 23.02.2012, 04:57
quelle
6

Hier ist die einfachste Antwort.

Assembly: Eine oder mehrere Dateien, aus denen Ihr Programm besteht. Normalerweise Exe oder dll oder eine Kombination aus diesen und einigen anderen Dateien

MetaData: Enthält beides 1) Assemblymetadaten 2) Metadaten eingeben.

1) Assembly-Metadaten werden auch als MANIFEST bezeichnet. Sie enthalten den Namen des Assembly, Versionen, Kultur, Informationen zum starken Namen, referenzierte Assembly-Informationen ... usw.

2) Typ Metadaten sind die exportierten Datentypen und Methoden der Baugruppe.

    
Pranesh Archak 08.09.2016 00:52
quelle
3

Manifest: Es speichert die Informationen (wie Name der Baugruppen, Version usw.) über die Baugruppen, die CLR benötigt, um die Baugruppen zu laden.

Metadaten: Es speichert die Details von Assemblys wie Methodenname, Mitglieder usw.

Beide Dateien werden automatisch vom Compiler generiert, wenn der Code in MSIL konvertiert wird.

    
amit 17.11.2013 19:38
quelle
0

Metadaten beschreiben die Inhalte in einer Assembly, während das Manifest die Assembly selbst beschreibt und die logischen Attribute bereitstellt, die von allen Modulen und allen Komponenten in der Assembly gemeinsam verwendet werden. Das Manifest enthält den Assemblynamen, die Versionsnummer, das Gebietsschema und einen optionalen starken Namen, der die Assembly eindeutig identifiziert.

    
Rohit Vipin Mathews 24.02.2012 10:50
quelle
0

Aus "Programmieren von .NET-Komponenten, zweite Ausgabe" Von Juval Lowy zuerst veröffentlicht von O'Reilly Absatz:

Metadaten:

  

Metadaten sind die vollständige Möglichkeit, zu beschreiben, was sich in einer .NET-Assembly befindet.   Das Eintauchen in die Metadaten ergibt die Typen, die in dieser Assembly verfügbar sind.   nämlich. Klassen, Schnittstellen, Enums, Strukturen usw. und deren Inhalt   Namespaces, der Name jedes Typs, seine Sichtbarkeit / Geltungsbereich, seine Basis   Klasse, die von ihr implementierten Schnittstellen, ihre Methoden und ihr Umfang und   die Parameter jeder Methode, die Eigenschaften des Typs und so weiter. Die Versammlung   Metada wird von den High-Level-Compilern automatisch aus dem generiert   Quelldaten. Der Compiler bettet die Metadaten in die Zielausgabe ein   Datei, eine DLL, eine .exe oder ein .NetModul im Fall von Multi-Modul   Versammlung. Bei einer Multimodul-Baugruppe schon einmal das Modul   Enthält IL Die Metadaten müssen eingebettet sein, um die Typen zu beschreiben   in diesem Modul. Jeder für .NET CLR bestimmte Compiler ist erforderlich   um die Metadaten in der Ausgabedatei zu generieren und einzubetten, und das   Metadaten müssen in einem Standardformat vorliegen. .NET Reflection ausführlich   verwendet die Metadateninformationen, um die Typinformationen zu kennen   dynamisch.

     

Metadaten sind zusätzliche Informationen in einer verwalteten Assembly, die Dinge wie Typen, Typnamen, Methodennamen usw. beschreiben (im Wesentlichen die Informationen, die Sie von den Reflection-Services abrufen können). Weitere Informationen finden Sie Ссылка .

Baugruppenmanifest:

  

Metadaten beschreiben die Inhalte in einer Assembly, während das Manifest   beschreibt die Assembly selbst und stellt die gemeinsamen logischen Attribute zur Verfügung   durch alle Module und alle Komponenten in der Montage. Das Manifest   enthält den Assemblynamen, die Versionsnummer, das Gebietsschema und optional   starker Name, der die Baugruppe eindeutig identifiziert. Dieses Manifest   Informationen werden von der CLR verwendet. Das Manifest enthält auch die   Sicherheitsanforderungen, um diese Baugruppe zu überprüfen. Es enthält auch die Namen   und Hashes aller Dateien, aus denen die Assembly besteht. Das Netz   Das Assemblymanifest enthält einen kryptografischen Hash für verschiedene Module   bei der Montage. Und wenn die Assembly geladen wird, berechnet die CLR neu   der Hash der Module zur Hand und vergleicht sie mit den eingebetteten   Hash. Wenn sich der zur Laufzeit generierte Hash von dem in   Das Manifest .NET verweigert das Laden der Assembly und löst ein   Ausnahme. Dies unterscheidet sich von COM, unter COM ist es möglich   Tauschen Sie eine ursprüngliche DLL oder EXE-Datei gegen eine andere aus, die den gleichen Typ haben   Bibliotheken / Schnittstellen und verursachen Schäden am System, indem sie ausgeführt werden   unzüchtiger Code. Das Manifest wird auch automatisch von der   High-Level-Compiler aus den Quelldateien aller Module in der   Versammlung. Das Manifest wird nur einmal in eine physische Datei eingebettet   Da es für alle Module in einer Baugruppe üblich ist, während die   Metadaten müssen alle Module eingebettet werden. Die .NET CLR kompatibel   Compiler müssen das Manifest generieren und es sollte im Standard sein   Format. Mit dem Manifest .NET werden Informationen über andere erfasst   referenzierte Baugruppen. Dies gewährleistet die Versionskompatibilität und die   Assembly kann mit genau der vertrauenswürdigen Menge anderer interagieren   Baugruppen erwartet es. Das Manifest enthält jede referenzierte Assembly   name, sein öffentlicher Schlüssel (wenn ein starker Name verfügbar ist), seine Version   Nummer und Gebietsschema. Beim Ausführen dieser Assembly garantiert .NET dies   nur diese spezifischen Baugruppen werden verwendet, und das ist nur kompatibel   Versionen werden geladen.

     

"Manifest" ist ein ziemlich überladener Begriff. In .NET sind ein "Assembly-Manifest" einige Metadaten in einer Assembly, die Versionsverwaltung beschreiben. Sehen Sie hier Ссылка für weitere Details.

Sie können mehr über das Baugruppenmanifest hier

lesen

Metadaten über die gesamte Baugruppe und die Module werden als Manifest

bezeichnet     
Rohit Vipin Mathews 23.02.2012 10:04
quelle
-1

Ich hoffe, dieser Link kann helfen:

Ссылка

Siehe Abschnitt Baugruppenmanifeste und Baugruppenstruktur

    
Racs 30.08.2016 16:12
quelle

Tags und Links