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 Communication Foundation .NET Discussion :

Intercepter les objets dans un client WCF


Sujet :

Windows Communication Foundation .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut Intercepter les objets dans un client WCF
    Bonjour,

    Il faudrait que je m'interface dans un client WCF (exécuté en silverlight) afin de :
    - Intercepter l'instanciation des objets provenant du serveur pour les transformer en proxy
    - Intercepter l'envoi des fichiers du client vers le serveur pour les deproxifier et les retransformer en "classe de datacontract standard"

    Pour faire cela j'imagine qu'il faut que je créer un behavior WCF mais pour tout dire je n'ai aucune idée de quel classe utilisé ni de où et comment l'injecter dans mon client.

    Si vous pouvez me donner quelques pistes ...

    merci

  2. #2
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    Pas de pistes, pas même pour l'utilisation de behavior coté client ?

    J'avoue avoir du mal à glaner des infos sur le net ...

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Par défaut
    Il faut que tu implément ton propre ContractBehavior ou operation behavior,
    où alors autre solution : ta propre sérialisation.

    En même temps je ne comprends pas trop ce que tu veux faire au final, donc si tu as plus d'infos, peut être que je n'ai pas compris.

  4. #4
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    Mon but est d'avoir une architecture Client/Serveur : EF4 / WCF / Silverlight.

    Mais sans avoir à créer 3 modèles de classe (Entity, DTO, Presentation Model) "en code"

    Dans les faits j'écrirais un seul modèle de classe pour l'ensemble de l'application mais il y en aura bien 3 types différents :
    - Mon modèle de classe sera relativement simple (poco) et utilisé en tant que DTO
    - Ce modèle aura une création de type dynamique proxyfié coté serveur pour répondre aux besoins d'EF4 (proxification automatique par le framework EF4)
    - Ce modèle sera également proxyfié coté UI pour répondre au besoins UI (notamment INotifyPropertyChanged)

    J'aimerai que cette architecture soit au maximum transparente pour le développeur.

    Coté serveur, EF4 créé des Proxy seul et j'ai bien réussi à deproxifier les objets provenant de ma couche Business via un behavior WCF qui utilise le DataContractProxyResolver.

    Maintenant il me reste plus qu'a reproxifié (DTO => Presentation Model) les objets coté client pour les objets allant dans le sens Serveur => WCF => Client et les deproxifier (Presentation Model => DTO) coté client pour les objets allant dans le sens client => WCF => Serveur
    (Pour le moment je pense utiliser Caste.DynamicProxy , j'ai réussi a rendre mes objets INotifyPropertyChanged avec ce framework).

    Si je ne pense pas avoir de problème à le faire via une surcouche de mes clients je pense que ca serait plus clean d'intégrer ça sous forme de behavior WCF "transparents"

    Je vais regardé les OperationBehavior mais je me demande si je vais pouvoir remplacer les objets normaux par des proxyfier de cette façon.

  5. #5
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    Ah oui et DataContractSerializer est sealed ... comment je pourrais modifier son comportement ?

  6. #6
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Par défaut
    Alors tu peux intervenir sur

    IDispatchMessageInspector qui te permet d'intervenir sur les messages en entrée sortie

    et

    DataContractSerializerOperationBehavior qui va te permettre de manipuler le serializer (au moins le Xml dans celui là).

    Tu trouvera un bon tuto ici :WCF Behaviors

    En fait ce qui me semble le plus simple c'est que tu sérialises l'objet en proxy in fine si c'est possible.

    en gros si je comprend bien :
    - Tu veux créer un objet Lambda poco
    - Si il est exploité sur WCF tu veux le décorer avec un INotifyPropertyChanged ou autres méthodes propres à l'UI
    - Si il est exploité par EF tu veux le décorer avec l'entityobject ou autre ?


    DataContractSerializer est sealed, mais il dérive de XmlObjectSerializer et en est une implémentation qui est définie au niveau du OperationBehavior.

    Good luck, ça m'a l'air chaud lapin ton truc quand même !

  7. #7
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    Je suis chaud lapin en ce moment

    En effet t'as bien compris le truc, je vais suivre tes pistes quand j'aurais un moment et je ferrai un retour !

    Merci @+

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/12/2008, 09h57
  2. Centrer verticalement les objet dans un flow layout ?
    Par Djobird dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 05/09/2008, 09h08
  3. Ou ranger les objets dans Python ?
    Par LLEJEUNE1 dans le forum Général Python
    Réponses: 15
    Dernier message: 24/06/2008, 11h58
  4. Intercepter les click dans un XLA
    Par Bevan dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/05/2008, 14h53
  5. [SimpleXML] Intercepter les warning dans simplexml_load_file
    Par lenwil dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 24/01/2008, 14h42

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