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 :

[WCF] Asyn Pattern


Sujet :

Windows Communication Foundation .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Par défaut [WCF] Asyn Pattern
    Bonsoir à tous,

    J'utilise WCF depuis quelques temps et toujours de manière synchrone. Ce depuis une application WPF. Je précise que mes services WCF sont hébergés dans des services Windows.

    J'ai toujours procédé de la même façon :
    - ThreadPool.QueueWorkUserItem + deléqué anonyme
    - Et lorsque j'ai la réponse, j'utilise le dispatcher pour envoyer les infos à l'UI

    Je trouve que cela manque de réactivité et que ça ne fait pas très "propre".
    J'ai regardé de nombreux tuto, mais je ne trouve pas de chose clair pour implémenter un service WCF où les appel côté client seraient asynchrones.

    Pouvez-vous me guider ?

    Merci d'avance.
    NeoKript

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Par défaut
    Hello,

    J'étais resté à l'ancienne (BeginInvoke...) et je ne connaissais pas ThreadPool.QueueWorkUserItem, merci pour ce point.

    En toute honneteté, je ne vois pas en quoi tu trouve cette manipulation pas propre ?

    L'autre possibilité se joue coté service WCF .
    Si tu as la main sur le code source du service, il suffit de générer les méthodes asynchrones d'appel du service WCF.

    Mais j'en reviens à ce que je disais au tout début, ton approche ne me semble pas du tout "sale". Tu gère bien un appel asynchrone de ton service, et qui plus est en gérant directement ton pool de thread .Net.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par NeoKript Voir le message
    Je trouve que cela manque de réactivité et que ça ne fait pas très "propre".
    J'ai regardé de nombreux tuto, mais je ne trouve pas de chose clair pour implémenter un service WCF où les appel côté client seraient asynchrones.

    Pouvez-vous me guider ?
    Via l'ajout de service de référence, Visual Studio te permet de créer des appels au service de manière asynchrone. Il suffit juste de cliquer sur Configurer je pense et tu verras toutes les options possibles et bien sûr le fait d'activer ou pas la création des méthodes asynchrones.

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Par défaut
    Le problème vient de là je n'ai pas de svc... En fait, mon projet c'est un projet Console, vu que c'est un service Windows.

    Voici mon projet :


    En gros, j'ai CinemaServer qui expose les méthodes WCF :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession, ConcurrencyMode = ConcurrencyMode.Single)]
        class CinemaServer : ServerBase, ICinemaServer
        {

    Program.cs qui sert d'entré pour le service :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Program
        {
            static void Main(string[] args)
            {
                 ServiceBase[] ServicesToRun;
                 ServicesToRun = new ServiceBase[] 
                 { 
                     new ServiceCinema() 
                 };
                 ServiceBase.Run(ServicesToRun);
            }
        }

    Et après les autres classes servent à requêter la BDD et à installer le service via un autre projet.

    Du coup, je ne peux pas ajouter de référence de service côte client.

    Merci

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par NeoKript Voir le message
    Du coup, je ne peux pas ajouter de référence de service côte client.
    Tout simplement parce que t'as pas exposé en plus tes métadonnées. C'est ce qu'on te dit plus haut dans le thread.

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    Tout simplement parce que t'as pas exposé en plus tes métadonnées. C'est ce qu'on te dit plus haut dans le thread.
    Merci pour ton aide !
    Problème résolu.

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

Discussions similaires

  1. Plug-In Pattern sur WCF
    Par Ilaoet dans le forum Services Web
    Réponses: 6
    Dernier message: 11/06/2013, 08h12
  2. Tests unitaires d'un DomainService WCF RIA : Partie 2 - Le pattern Repository
    Par Deepin dans le forum Windows Communication Foundation
    Réponses: 0
    Dernier message: 30/11/2012, 16h29
  3. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  4. [langage] expression reguliere motif répétitif dans 1 pattern
    Par comme de bien entendu dans le forum Langage
    Réponses: 11
    Dernier message: 09/04/2003, 16h14

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