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] Questions diverses


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] Questions diverses
    Bonjour à tous,

    J'ai débuter WCF il y a une petite semaine, son fonctionnement est très simple comparer au socket classique... Ça me plait assez, je me pose cependant des questions.

    - J'ai côté client un ChannelFactory qui contact mon service WCF, pas de soucis ca fonctionne très bien. Je me suis abonné sur ce ChannelFactory à Closing et Faulted pensant que lorsque le Serveur serait arrête le client en serait averti. Alors que non comment faire pour que le client soit notifié de la déconnexion du serveur ?

    - Autres choses je trouve certaine chose pas très pratique avec WCF. Avec les sockets classiques, j'avais un thread de réception avec un Socket.Select (côté client et serveur) et j'avais un Dictionnaire de "pointeur sur méthodes" (delegate) selon la trame que je recevais. Avec WCF, j'ai un peux l'impression que la communication ne vas que dans un sens. Le client demande des choses au serveur ... le serveur lui répond et puis basta ^^ Comment faire pour que le serveur puisse notifier des informations au(x) clients (un thread avec une appelle a une méthode toutes les X seconde ... je trouve cela très sale !). J'ai du mal à voir par exemple pour une application de chat donc un serveur et X client. Le client se connecte au serveur il appelle une méthode de celui-ci pour définir son login, envoyer un message, mais comment le serveur notifie les autres clients. Un bon send / receive c'était bien :p

    - Autre chose pour l'envoie de fichier, j'envoyais un tableau de Byte de 16ko par exemple et ainsi pouvais connaitre l'avancement dans une ProgressBar en WPF. J'ouvrais mon fichier le découpais en trame, j'avais une stack d'envoie et hop ca partait. La je ne vois pas trop comment faire l'envoie d'un fichier. On fait une méthode GetFile qui renvoie un Byte[] contenant tout le fichier ... ? Si oui comment faire pour que la progresse bar ne passe pas de 0 à 100% d'un coup...


    Je vous remercie d'avance.

    Cordialement,
    NeoKript

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    - Closing est déclenché lorsque le proxy est fermé, c'est donc toi qui détermine quand tu fermes le proxy.
    WCF fonctionne par messages donc les connexions ne sont pas gardées ouvertes indéfiniment.

    - Regarde du côté des "duplex channels"

    - WCF fonctionnant toujours par message, tu ne contrôles pas la progression d'un transfert complet. Si tu veux vraiment une progressbar, implémente un transfer par morceau au niveau du contrat, du style : CreateFile, AppendFile, CloseFile.
    Regarde aussi pour implémenter le streaming, ce sera plus efficace.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Concernant le duplex channel, tu as un tuto ici (justement sur un "chat" ): http://badger.developpez.com/tutorie...atez-avec-WCF/

    Pour le 3eme point, tout dépend de la qualité de ton réseau mais 16ko c'est pas franchement énorme, tu peux tout transférer d'un coup.

    Sinon pour le streaming il faut utiliser un binding approprié (NetTcpBinding), modifier la propriété TransferMode et utiliser le type Stream en paramètre ou retour de fonction (ça dépend du sens du streaming).
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

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

Discussions similaires

  1. [C# 2.0] FlowLayoutPanel, questions diverses
    Par murlock dans le forum Windows Forms
    Réponses: 1
    Dernier message: 26/05/2006, 17h01
  2. [XSLT][XPath] Questions diverses
    Par progamer54 dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 10/05/2006, 12h19
  3. [DW8] Questions diverses sur le logicie
    Par syn_42 dans le forum Dreamweaver
    Réponses: 3
    Dernier message: 01/03/2006, 17h23
  4. Petites questions diverses
    Par Fouflarage dans le forum Débuter
    Réponses: 7
    Dernier message: 29/11/2005, 13h43
  5. Questions diverses sur TIBDataset et TDBGrid
    Par AlexB59 dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/11/2005, 17h14

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