96 votes

Espace de noms ou assemblée?

Je deviens très confus entre Namespaces et Assemblies. Les System.Data et System.Web espaces de noms ou des assemblages?

J'ai remarqué que ces espaces s'appellent des espaces de noms et qu'ils sont en même temps présents dans le dossier GAC_32 . Alors qu'est-ce qu'ils sont exactement?

111voto

D Stanley Points 54768

System.Data est un espace de noms , System.Data.DLL (le fichier) est un assemblage .

Un espace de noms est un groupe logique de types (principalement pour éviter les conflits de noms). Un assemblage peut contenir des types dans plusieurs espaces de noms ( System.DLL contient quelques-uns ...), et un seul espace de noms peut être réparti sur les assemblys (par exemple, System.Threading ).

70voto

Zaheer Ahmed Points 12945

Espace de noms est un regroupement logique de classes appartient à la même fonctionnalité. Donc, System.Web et System.Data sont des espaces de noms

MSDN décrivent comme:

Les espaces de noms sont largement utilisés dans la programmation en C# de deux façons. Tout d'abord, l' .NET Framework utilise les espaces de noms pour organiser ses nombreuses classes Deuxièmement, la déclaration de vos propres espaces de noms peuvent aider à contrôler la portée de la classe et de la méthode des noms dans les grands projets de programmation.

namespace

L'assemblée est partie de précompilé code qui peut être exécuté par l' .NET de l'environnement d'exécution. Il contient un ou plusieurs espaces de noms. Un .NET programme se compose d'un ou de plusieurs assemblées.

System.Web.dll et System.Data.dll sont des assemblées.

MSDN décrivent comme:

Les assemblages sont les blocs de construction de .NET Framework applications; ils forment l'unité fondamentale de déploiement, contrôle de version, la réutilisation, l'activation de portée, et les autorisations de sécurité. Un ensemble est une collection de types et de ressources qui sont conçus pour travailler ensemble et forment une unité logique de fonctionnalité. Une assemblée fournit le common language runtime avec les informations dont il a besoin pour être au courant des implémentations de type. Au moment de l'exécution, un type n'existe pas en dehors du contexte d'un assemblage.

assembly

18voto

Anurag Jain Points 467

En bref:

Assemblée:

Un assemblage fournit une unité fondamentale de regroupement de code physique. Il s’agit d’une unité de sortie. C'est une unité de déploiement et une unité de gestion de versions. Les assemblées contiennent le code MSIL.

Espace de noms:

Un espace de noms fournit une unité fondamentale de regroupement de codes logiques. Il s'agit d'un ensemble de noms dont le nom est unique. Ils forment la limite logique d'un groupe de classes. L'espace de noms doit être spécifié dans Propriétés du projet.

15voto

Selman22 Points 44788

Ils sont des espaces de noms.Assemblées contient plus d'un espace de noms.Par Exemple: System.dll contient ces espaces de noms (et plus):

enter image description here

Aussi un espace de noms peuvent contenir des espaces de noms imbriqués.Ils sont juste des noms logiques pour organiser le code.Juste être conscient, DLL des fichiers sont les assemblées qui contient l'espace de noms(s).

GAC est Global Assembly Cache. Selon MSDN:

Le global assembly cache stocke les assemblées spécifiquement désigné pour être partagé par plusieurs applications sur l'ordinateur.

Alors couramment utilisés assemblées stockés dans l' GAC et, par conséquent, vous n'avez pas besoin de copier tous les fichiers d'assemblage de votre répertoire de projet que vous êtes une référence dans votre projet.Les assemblées stockés dans l' GAC sont nom Fort assemblées.Normalement, lorsque vous ajoutez une référence à un assembly de votre projet qui n'est pas Strong-Named une copie de votre .dll le fichier sera créé sur votre bin\Debug le dossier..Si vous le souhaitez, vous pouvez faire de votre assemblée (projet de bibliothèque de classes par exemple) de nom Fort.Voir: Comment faire: Signer un Assembly avec un Nom Fort

9voto

Habib Points 93087

Le fichier que vous voyez dans le GAC est - System.Data.dll c'est un ensemble, et qui contient les espaces de noms, y compris System.Data. Si vous affichez les propriétés de Référence dans Visual studio, puis vous verrez:

enter image description here

Plus tard, si vous faites un clic droit sur la référence et sélectionnez afficher dans le navigateur d'objet vous permettra de voir les espaces de noms dans cette assemblée.

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X