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

Windows Presentation Foundation Discussion :

MEF - quelques précisions


Sujet :

Windows Presentation Foundation

  1. #21
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par CaptainChoc Voir le message
    Mon application, je l'ai déjà oublié, j'a également déjà refait tous les exemples "simple" et j'aurai aimé approfondir un peu plus...

    Cependant, tous les tuto que j'ai lu, même s'ils sont très bien fait, n'expliquent pas pourquoi on fait les choses et comment elles fonctionnent réellement... par exemple je n'ai pas trouvé d'infos sur ne charger que les module qu'a un moment donnée et pas au lancement de l'appli (et n'en charger que quelques un). Là j'ai l'impression que MEF est une grosse boite noire, on met des import, export, metadonnees, ok, ça marche... mais personne ne sait vraiment pourquoi... (ou en tout cas personne n'explique les choses) et je voulais donc juste approfondir et faire quelque chose d'un peu plus complexe...
    Dans l'article que j'ai mis, il fait un chargement lors d'un clic sur un bouton en fonction des métadonnées du module. Je vois pas ce qu'il te fait de plus.

  2. #22
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par CaptainChoc Voir le message
    par exemple je n'ai pas trouvé d'infos sur ne charger que les module qu'a un moment donnée et pas au lancement de l'appli (et n'en charger que quelques un).
    Ah non ! MEF permet de charger les modules au moment où tu en auras vraiment besoin. Dans le ien que je t'avais fourni on en parle ici.

  3. #23
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut
    mais ne vous inquiétez pas, je lis, je lis et je relis toutes les docs que j'ai... ça commence un peu a rentrer...

    Par contre il reste quand même certaines questions... par exemple j'ai 2 classe qui "attendent" des modules par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class ObjetA
    {
        [importMany(typeof(ModuleObjA))]
        Lazy<...> modules
    }
     
     
    public class ObjetB
    {
        [importMany(typeof(ModuleObjB))]
        Lazy<...> modules
    }
    et dans ma classe program je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ...
     
    container.ComposeParts(this);
     
    foreach (var module in objA.modules)
    {
     ...
    }
     
    foreach (var module in objB.modules)
    {
     ...
    }
    Est ce qu'il va automatiquement, peu importe l'objet (A ou B), initialiser ma variable "modules" (de mes objets) seulement lorsqu'il en aura besoin ? je n'ai rien à faire de plus ?

  4. #24
    Invité
    Invité(e)
    Par défaut
    Normalement oui il va automatique instancier ta liste modules.
    Tu peux tester pour être sûr de toi

  5. #25
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut
    On ça marche, j'ai reussi à ajouter un module qui ajoute un element dnas mon treeview...

    j'ai donc un viewModel qui contient tous les fils (modules) de mon treeview et une view qui m'affiche mon treeview...
    et maintenant ? car avant (sans MEF), dans mon xaml de la vue, en fonction de ce qui était selectionné dans le treeview j'affiché un dataTemplate de détail à droite du treeview...

    Sauf que là je ne peux pas les rajouter dans le xaml sinon aucun intéret a avoir MEF... comment je fais pour "importer" les vue de modele et l'afficher là ou je veux ?

  6. #26
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut
    Alors en fait j'ai deux questions maintenant :
    - d'abord (cf post précédent), si mes "modules" (autres assemblies) sont des ViewModel... comment charger les views associées qui sont aussi dans ces nouvelles assemblies)?

    - ensuite dans tous les tuto/exemple on a toujours l'initialisation dans Program.. or ça ne m'arrange pas. En effet si je veux charger que mes modules uniquement lorsque j'initialise une/des certaine(s) classe(s) (viewModel), faut il que je remete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                var container = new CompositionContainer(catalog);
                container.ComposeParts(thi
    dans chaque constructeur ?

  7. #27
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut
    ALors j'ai trouvé ce post...

    http://stackoverflow.com/questions/8...f-datatemplate

    Tout a l'air de fonctionner, cependant ça m'oblige a charger les "views" de tous mes modules au démarrage de l'appli.. ça peut faire long, non ?

    Qu'en pensez vous ?

  8. #28
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 177
    Points : 4 489
    Points
    4 489
    Par défaut
    que tu vas pouvoir faire un tutoriel sur developpez.com
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

Discussions similaires

  1. Quelques précisions. . .
    Par Array dans le forum Débuter
    Réponses: 220
    Dernier message: 09/02/2008, 08h14
  2. Entrées.. Sorties.. quelques précisions..
    Par Djef-69 dans le forum SL & STL
    Réponses: 2
    Dernier message: 28/11/2007, 23h16
  3. [Fabrique] Quelques Précisions
    Par djflex68 dans le forum Design Patterns
    Réponses: 8
    Dernier message: 20/12/2006, 13h34
  4. Quelques "précisions" sur Struts
    Par Atma_ dans le forum Struts 1
    Réponses: 19
    Dernier message: 03/11/2006, 15h20

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