IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Espace de noms, DLL, etc..


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut Espace de noms, DLL, etc..


    Je souhaite, au fil de mes développements, créer des bibliothèques réutilisables. Je suis un peu emmêlé entre DLL et espace de noms, je n'ai pas pour habitude de faire ça en VB donc si quelqu'un peut me démêler tout ça, ça serait sympa.

    Est-ce que lorsque je créer une hiérarchie d'espace de noms il faut que les répertoires sur le disque soit identiques (comme j'ai pu le voir sur un langage mais je ne me souviens plus le quel) ?

    Est-il possible de faire des imports directement depuis des sources réutilisables ou bien on ne peut passer que par des DLL à référencer puis utiliser l'espace de noms qui en découle ?

    Bref, dites-moi tout


    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  2. #2
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Je peux t'apporter mes maigres connaissances, même si je pense que d'autres sauront mieux te répondre que moi.

    Citation Envoyé par Franck.H Voir le message
    Est-ce que lorsque je créer une hiérarchie d'espace de noms il faut que les répertoires sur le disque soit identiques (comme j'ai pu le voir sur un langage mais je ne me souviens plus le quel) ?
    Non, lorsque tu fais tes NameSpaces, si tu ne les places pas dans des "dossiers" VS, par défaut toutes tes classes seront -au niveau du disque- à la racine de ton projet.

    Lorsque tu crées ta hiérarchie avec des namespace dans ton bibliothèque, et que tu places ces classes dans des "dossiers" de Visual Studio (Dossier que tu peux ajouter avec Click Droit dans VS) le compilateur génère la même arborescence en dossier et y place les class.vb dans les dossiers correspondants.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Namespace UI
        Namespace UI.controls
            Public Class TxtBox
     
            End Class
        End Namespace
        Namespace UI.eventHandler
            Public Class TxtBoxEventHandler
     
            End Class
        End Namespace
        Namespace UI.Interface
            Public Class ITxtBox
     
            End Class
        End Namespace
    End Namespace
    Après compilation, si tu as placé chacune des classes dans un dossier(VS), sur le disque dans ton dossier de projet, tu auras un dossier UI, qui contient 3 dossier (Controls, EventHandler,Interface), et respectivement chacun contiendra un fichier TxtBox.Vb, TxtBoxEventHandler.Vb, ItxtBox.Vb.

    MAIS, tu ne dois cela qu'aux dossiers(VS) que tu as mis. Le namespace en lui même ne crée pas les dossiers sur le disque.

    Citation Envoyé par Franck.H Voir le message
    Est-il possible de faire des imports directement depuis des sources réutilisables ou bien on ne peut passer que par des DLL à référencer puis utiliser l'espace de noms qui en découle ?
    Je ne suis pas sûr de bien saisir la question ...
    Depuis VS2012 (2010 je ne sais pas trop), tu peux lier 2 projets, donc par exemple, un prototype d'application, et le projet de ta bibliothèque, tu as ainsi accès aux sources, aux débogages pas à pas dans ton bibliothèque, etc lorsque tu appelles une fonction de la bibliothèque dans ton prototype.
    Et bien sûr tu peux également référencer la .dll et faire un imports sans avoir à lier les 2 projets. Mais tu n'auras pas accès au code source directement depuis ton prototype.

    Voilà en espérant avoir pu t'aiguiller un peu malgré les explications fouillies ...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Par défaut
    Citation Envoyé par Franck.H Voir le message
    Est-il possible de faire des imports directement depuis des sources réutilisables ou bien on ne peut passer que par des DLL à référencer puis utiliser l'espace de noms qui en découle ?

    Si je comprends bien la question, soit tu laisses ton code ouvert et donc il te suffira d'ajouter le projet à ta solution, soit tu "fermes" ton code en générant une librairie (.dll) que tu ajouteras en référence. ( Il y a aussi une possibilité d'utiliser des objets com mais je ne connais pas trop)


    J'ajouterai que tu n'es pas obligé de suivre l'arborescence des dossiers dans les namespace mais tu t'y trouveras quand même plus facilement si tu t'en rapproches ;-)

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    (pas lu les réponses qui sont peut etre déjà suffisantes)

    un namespace est un "dossier" pour ranger des classes
    l'utilisation des namespace est juste sur l'intellisense (auto complétion)

    par défaut il y a d'ailleurs un namespace par défaut sur un projet

    dans un projet on peut faire des dossiers pour ranger les fichiers, mais ca n'est pas lié aux namespace, c'est pour s'y retrouver dans les fichiers du projet
    les namespace c'est pour s'y retrouver pendant qu'on code

    le mot clé imports ne sert qu'à ne pas préfixer
    dim b as system.Drawing.Bitmap
    peut s'écrire
    dim b as bitmap
    si on a imports system.Drawing

    cela ne dispense pas d'avoir une référence sur system.Drawing.dll


    si tu veux un noyau réutilisable dans plusieurs projets (c'est souvent le cas quand on fait plusieurs projets) il y a plusieurs moyens
    soit tu fais un projet dll, et tu copies ensuite la dll dans les projets où tu veux l'utiliser
    tu peux copier par dessus les anciens fichiers et les exe utiliseront la nouvelle dll sans poser de question

    il y a aussi des référence de projet, c'est à dire référencer un autre projet de la solution (une solution .sln étant un regroupement de plusieurs projets)
    concretement une fois ton code source dans un endroit x de ton disque dur, tu peux depuis une solution autre faire "ajouter un projet", et ouvrir le vbproj de la dll
    les 2 codes sources seront disponibles et modifiables
    à la compilation, la dll sera compilée en 1er la copiée automatiquement dans le dossier bin\debug(/release) de l'exe de la solution ayant une référence de type projet

    j'imagine donc qu'on doit pouvoir avoir plusieurs solutions ayant la même dll ouverte, les modifications seront donc pour tout le monde

    l'avantage d'avoir le code source de la dll à côté c'est de pouvoir débugger plus facilement quand un problème vient de celle ci
    bien qu'avec les pdb tu peux aussi débugger sans avoir le code source d'ouvert
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    En résumé :
    - les namespaces correspondent à une organisation "logique" du code
    - les assemblies (dll ou exe) correspondent à une organisation "physique" du code
    - ces deux modes d'organisation sont orthogonaux ; des classes d'un même namespace peuvent se trouver dans différents assemblies, et un assembly peut contenir des classes de différents namespaces

    Il n'y a pas de contrainte technique concernant l'arborescence des dossiers, mais en pratique on essaie généralement de la faire correspondre avec l'arborescence des namespaces.

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par tomlev Voir le message
    ...mais en pratique on essaie généralement de la faire correspondre avec l'arborescence des namespaces.
    C'est ce que je fait finalement et j'ai opté pour des DLL mais je vais voir avec mon chef ce qu'il préfère car ça va quand même servir à plusieurs programmeurs, c'est pour ça que je voulais des informations précises à ce sujet.

    Merci à tous pour vos éclaircissement, je pense avoir toutes les infos


    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/06/2008, 12h26
  2. [d6][expert WSDL] problème d'espace de nom.
    Par tchup dans le forum Web & réseau
    Réponses: 1
    Dernier message: 01/09/2005, 14h46
  3. Supprimer les espaces des noms de fichier
    Par Cathy dans le forum Linux
    Réponses: 20
    Dernier message: 04/08/2005, 17h13
  4. [typedef] protection à travers les espaces de noms
    Par PINGOUIN_GEANT dans le forum C++
    Réponses: 7
    Dernier message: 02/02/2005, 20h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo