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

Services Web Discussion :

Windows service -> Webservice


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 55
    Par défaut Windows service -> Webservice
    Salut à tous,

    Dans le cadre de mon stage je dois externaliser via un agent distant un service windows déjà existant.
    Je sais déjà créer un service web de deux façons différentes (WCF application & Library) ainsi que l'héberger sur IIS.

    Maintenant, je dois mettre en relation un Webservice avec ce fameux service windows d'alimentation.
    Dans cette appli, il y a une classe de connexion par laquelle tout passe. (si le type de BDD est "oracle" alors on fait ce traitement, etc etc).

    A l'heure actuelle, je ne vois pas comment porter cette appli sur mon Webservice.
    Auriez-vous des pistes ?

    Si vous avez besoin de plus d'informations pour mon projet, n'hésitez pas.
    D'avance merci pour votre aide.

    Mady

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 55
    Par défaut
    Je pense être sur une piste.
    Wcf peut-il retourner autre chose que les simples int, string, etc ?

    Si je peux renvoyer un DbDataReader ça serait top.
    Je me suis un peu documenté, et apparemment ce genre d'objet n'est pas sérialisable.
    Suis-je dans le bon ?

    Merci

    EDIT:
    pour les dataReader ce n'est pas possible apparemment, je repars donc de zéro

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Mady_roar Voir le message
    Je pense être sur une piste.
    Wcf peut-il retourner autre chose que les simples int, string, etc ?
    Oui tu peux renvoyer autre chose que les types CLR. Pour cela il faudra passer par des contrats de données. En gros tu crées tes structures de données (classes ou enums) que tu décores par l'attribut DataContract.

    Citation Envoyé par Mady_roar Voir le message
    Si je peux renvoyer un DbDataReader ça serait top.
    pour les dataReader ce n'est pas possible apparemment, je repars donc de zéro
    Utiliser en paramètre d'entrée ou de retour un type DataReader est impossible mais par contre tu peux utiliser une DataTable ou un DataSet. Cependant cette manière de faire n'est pas recommandée avec WCF. Passe par les contrats de données.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 55
    Par défaut
    Merci pour ta réponse

    Si je comprends bien, je peux "copier/coller" ma classe entière déjà existante dans mon service WCF et la décorer par [DataContract] ainsi que les objets par [DataMember] ?

    Par contre, qu'en est-il du contrat (de l'interface) ? Quelles méthodes doit-on coder si nous avons déjà notre classe décoré par [DataContract] ?

    Si je résume bien:
    _ [ServiceContract] -> définie les méthodes exposées au client par le service
    - [DataContract] -> définie une classe entière afin d'être transmissible par WCF

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Mady_roar Voir le message
    Si je comprends bien, je peux "copier/coller" ma classe entière déjà existante dans mon service WCF et la décorer par [DataContract] ainsi que les objets par [DataMember] ?
    Oui, c'est ça.

    Citation Envoyé par Mady_roar Voir le message
    Par contre, qu'en est-il du contrat (de l'interface) ? Quelles méthodes doit-on coder si nous avons déjà notre classe décoré par [DataContract] ?
    Une fois tes contrats de données définies, tu les utiles naturellement comme tu le faisais avec les types simples dans les méthodes du contrat de services mais en vérifiant que ces dernières sont elles aussi décorées de l'attribut OperationContract.

    Citation Envoyé par Mady_roar Voir le message
    Si je résume bien:
    _ [ServiceContract] -> définie les méthodes exposées au client par le service
    - [DataContract] -> définie une classe entière afin d'être transmissible par WCF
    ServiceContract => Attribut sur l'interface exposant les méthodes
    OperationContract => Attribut sur les méthodes de l'interface
    DataContract => Attribut sur la classe faisant office de contrat de données
    DataMember => Attribut sur les propriétés de ton contrat de données.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 55
    Par défaut
    J'ai bien saisie la différence, merci bien.
    Cependant, voici un extrait de la classe que je vais décorer dans mon WCF service (sur l'impr elle est dans le projet du service windows tel quelle que je dois externaliser).



    J'ai regardé des classes décorées par l'attribut DataContract sur le net, et il se trouve que toutes les méthodes sont des getters et setters (un exemple ici http://wcftutorial.net/Data-Contract.aspx)

    Puis-je tout de même décorer ma fonction read() avec l'attribut DataMember ?

    Désolé si la question te semble un peu bête. Ca me frustre de butter sur ce genre de truc alors que WCF parait assez accessible...

Discussions similaires

  1. Manipulation de service Windows via un WebService
    Par GriffinK dans le forum Services Web
    Réponses: 1
    Dernier message: 09/03/2009, 06h50
  2. [C# 2.0] Windows Service Project et désintallation
    Par aurelien.tournier dans le forum Windows Forms
    Réponses: 4
    Dernier message: 30/03/2007, 15h54
  3. Windows Service Demarre et Arrête sans rien faire
    Par Bobafett dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/02/2007, 17h32
  4. [C#] [Windows service] Rendre Word Visible ?
    Par chris92 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 26/07/2004, 17h45

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