Namespaces dans librairie

cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008 - 10 août 2006 à 16:28
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 10 août 2006 à 21:21
Bonjour,
je m'interroge sur l'utilité des namespaces dans les librairies.
Prenons par exemple une librairie MyLibrary. Dans un fichier ClassesType1.cs, j'ai :

namespace ClassesType1
{
    class Class1
    {
    }
    class Class2

    {

    }
    ...
}

Pourquoi ne pas écrire simplement :

class Class1
{
}
class Class2
{
}
...

L'avantage que je vois dans cette simplification d'écriture est que une fois la librairie liée dans un projet (MyLibrary.dll ajouté comme référence), on n'a plus à préciser using ClassesType1 dans le projet. On peut directement utiliser les classes dans celui-ci. Y a t-il des inconvénient à faire celà ? Si non quelle est alors l'utilité des namespaces ?
Mathmax

11 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
10 août 2006 à 16:34
Salut,
Comment tu fais si t'as deux classes qui ont le même non, si la notion de namespace n'existe pas ?
Et voilà 

<hr size="2" />VC# forever
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
10 août 2006 à 16:50
un exemple bête... pour rejoindre la réponse de Bidou...

imagine que tu es envie de créer un object Button... tu fais comment pou le nommer... Button existe déjà dans le framework.

bref, les namespaces permettent d'une d'éviter les doublons, et d'autres par de mettre dans des catégories les classes qu'elles contiennent. Ainsi, la classe DNS ne se retrouve pas avec la classe ListView.

Séb

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008
10 août 2006 à 18:20
Merci pour vos réponse. Je n'avais pas pensé au risque de doublons. Pour regrouper les classes selon leurs fonctions, je mettais dans des fichiers différents : un fichier xml.cs pour les classes ayant un rapport avec le xml, un fichier web.cs pour celle ayant à voir avec le web...
Ce qui serait bien, c'est si l'on pouvait importer dans un projet seulement un namespace de la librairie et non la librairie toute entière. Par exmple importer MyLibrary.ClassesType1.dll et eviter ainsi de préciser using ClassesType1. Est-ce possible ?

Mathmax
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
10 août 2006 à 19:52
rien ne t'empêche de te créer une assembly par namespace...






Sébastien FERRAND
(

blog
)
Consultant Indépendant
[Microsoft MVP Visual C#]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008
10 août 2006 à 20:41
et comment faire ?

Mathmax
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
10 août 2006 à 20:49
bah... simple...
un projet par assembly ;)

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
10 août 2006 à 20:50
En mettant un seul namespace par assembly! pardis

<hr size="2" />VC# forever
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
10 août 2006 à 20:51
t'as mangé du tigre Bidou ce soir

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
10 août 2006 à 21:04
Non lol

<hr size="2" />VC# forever
0
cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008
10 août 2006 à 21:13
Ok. Encore une petite question si vous voulez bien : Préférez-vous créer une librairie qui rassemble toutes vos classes générales (en les séparant éventuellement par des namespaces) ou regrouper vos classes en plusieurs librairies contenant chacune un namespace ?
J'ai peur qu'avec la première solution que, une fois compilé, le projet utilisant la librairie ne soit finalement alourdit inutilement avec des classes qu'il n'utilise pas. Le compilateur compile t-il aussi les classes non utilisées ?

Mathmax
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
10 août 2006 à 21:21
Ben moi je fais une libraire qui doit contenir tout ce qu'elle doit, 20 namespaces s'il le faut. Mais en tout cas, ça reste UN projet que tu peux ajouter dans une solution pour debugger ou juste référencer si c'est pour l'utiliser...
Je ne sais pas comment être plus clair ??!

<hr size="2" />VC# forever
0
Rejoignez-nous