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 :

Question sur les WebService renvoyant un DataSet ?


Sujet :

Services Web

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut Question sur les WebService renvoyant un DataSet ?
    Voila étant débutant sous .net, j'ai commencé à utiliser des WebServices (que j'ai créé moi-même) pour ma WebForm. Le problème c'est que mes WebServices renvoient des DataSet. On m'a dit que sa posé problème au niveau interopérabilité.

    D'après ce que j'ai compris, il faut que je crée une classe avec tous les champs de ma base de données (je ne sais pas s'il faut faire un constructeur, des ascesseurs, des modifieurs, etc...). Je me posais donc la question où aller se trouver ma Classe puisque je vais l'utiliser aussi bien dans mon WebService car il faudra que je crée un tableau d'objet de ma classe pour ranger les informations renvoyer par ma base de données et ainsi remplacer mon DataSet.

    Ou dans ma page Web car après il faudra que je réutilise les informations renvoyer dans mon tableau d'objet.

    Autre petite question, est ce que je suis obligé d'utiliser XMLserializer

    Merci de m'éclaicir un peu

  2. #2
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Salut tazmania,

    Juste une petite remarque, essaie de poster dans le bon forum la prochaine fois Web Service , et jette un coup d'oeil sur les regles du forum.

    Citation Envoyé par tazmania
    Le problème c'est que mes WebServices renvoient des DataSet. On m'a dit que sa posé problème au niveau interopérabilité.
    Pas tout à fait vrai. plutot tu n'as pas besoin d'un objet enorme comme le DataSet pour juste consulter des donnees.

    Citation Envoyé par tazmania
    D'après ce que j'ai compris, il faut que je crée une classe avec tous les champs de ma base de données (je ne sais pas s'il faut faire un constructeur, des ascesseurs, des modifieurs, etc...).
    Oui c'est bien ca, comme un debut mes toutes les proprietes à public.

    Citation Envoyé par tazmania
    Je me posais donc la question où aller se trouver ma Classe puisque je vais l'utiliser aussi bien dans mon WebService car il faudra que je crée un tableau d'objet de ma classe pour ranger les informations renvoyer par ma base de données et ainsi remplacer mon DataSet.
    Tu peux retourner une collection managée serializable, une list generique List<TaClasse> fera l'affaire, cette list tu vas la recuperer coté page ASP.NET sous forme de tableau TaClasse[].

    Citation Envoyé par tazmania
    Ou dans ma page Web car après il faudra que je réutilise les informations renvoyer dans mon tableau d'objet.
    Le tableau d'objet tu vas le recuperer comme je t'ai dit coté aspx. tu vas utiliser la reference du proxy generé dans ton IDE (Visual Studio) pour declarer le tableau. tu sais la meme reference que tu vas utiliser pour appeler des web methods.

    Citation Envoyé par tazmania
    Autre petite question, est ce que je suis obligé d'utiliser XMLserializer
    Il suffit de declarer ta classe serializable. Ton titre n'est pas conforme aux regles, donc je te mes les deux versions. En C# tu mes l'attribut [Serializable] juste au dessus de la declaration de la classe ou <Serializable()> sur la meme ligne de la declaraion.

    Citation Envoyé par tazmania
    Merci de m'éclaicir un peu
    J'espere que je t'ai eclairci un peu

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Oui tu m'as grandement aidé, je te remercie beaucoup, je vais me lancer la desuus

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Tu peux retourner une collection managée serializable, une list generique List<TaClasse> fera l'affaire, cette list tu vas la recuperer coté page ASP.NET sous forme de tableau TaClasse[].
    Je suis sous VS.NET 2003 sa ne fonctionne pas !!

    Je peux faire sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    [WebMethod]
     public ArrayList GetPersonne(){
        Personne p = new Personne ();
        ArrayList perso = new ArrayList();
     
        string querytest = "SELECT nom, prenom from personne";
     
        OleDbDataAdapter monAdapter = new OleDbDataAdapter (querytest, Connexion);
        DataSet monDataSet = new DataSet ();
     
        foreach (DataRow row in monDataSet.Tables[0].Rows) {
            p.setnom(row[0]);
            p.setprenom(row[1]);
            perso.add(p);
        }
        return perso;
    }

    Après dans mon code behind, je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Service1 WebService = new Service1();
    ArrayList test = new ArrayList();
     
    test.Add(WebService.GetPersonne())
    Je ne sais pas si c'est bien de faire comme ça

    Avec cette méthode, je n'utilise pas XMLserializer

    Alors que j'ai déclaré ma classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    [Serializable]
    public class Personne {
      private string Nom;
      private string Prenom;
     
      public Personne (string name, string firstname){
         Nom = name;
         Prenom = firstname
      }
     
      public void SetNom (string name){
          Nom = name;
      }
     
      public void SetPrenom (string firstname){
           Prenom = firstname;
      }
    }
    C'est bon ce que j'ai fait ou je pars sur la mauvaise voie

  5. #5
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Citation Envoyé par tazmania
    Je suis sous VS.NET 2003 sa ne fonctionne pas !!
    Fallait le mentionner dans le titre

    Citation Envoyé par tazmania
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    [WebMethod]
     public ArrayList GetPersonne(){
        Personne p = new Personne ();
        ArrayList perso = new ArrayList();
     
        string querytest = "SELECT nom, prenom from personne";
     
        OleDbDataAdapter monAdapter = new OleDbDataAdapter (querytest, Connexion);
        DataSet monDataSet = new DataSet ();
     
        foreach (DataRow row in monDataSet.Tables[0].Rows) {
            p.setnom(row[0]);
            p.setprenom(row[1]);
            perso.add(p);
        }
        return perso;
    }
    [Serializable]
    public class Personne {
      private string Nom;
      private string Prenom;
     
      public Personne (string name, string firstname){
         Nom = name;
         Prenom = firstname
      }
     
      public void SetNom (string name){
          Nom = name;
      }
     
      public void SetPrenom (string firstname){
           Prenom = firstname;
      }
    }
    Ca a l'air parfait, si je ne m'abuse ArrayList est bien XML Serializable.

    Citation Envoyé par tazmania
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Service1 WebService = new Service1();
    ArrayList test = new ArrayList();
     
    test.Add(WebService.GetPersonne())
    Bon je me rappelle pas tres bien avec le FrameWork 1.1 comment ca fonctionne, mais ce n'est surement pas comme ca, je t'ai dit dans le precedent post que le tableau fallait le declarer avec l'insatnce du proxy generé dans ton cas WebService .

    avec 2.0 j'aurais fait ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WebService.Personne[] MesPersonnes=WebService.GetPersonne();
    Essai la meme chose sinon dis moi que t'offre ton instance WebService comme membres !

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Bon je me rappelle pas tres bien avec le FrameWork 1.1 comment ca fonctionne, mais ce n'est surement pas comme ca, je t'ai dit dans le precedent post que le tableau fallait le declarer avec l'insatnce du proxy generé dans ton cas WebService .
    Oula, je n'ai pas tout compris
    C'est quoi la déclaration de l'instance du proxy, j'ai rien fait de spécial moi.

    avec 2.0 j'aurais fait ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebService.Personne[] MesPersonnes=WebService.GetPersonne();
    Mince cela ne marche pas, il me dit :
    Le type ou le nom d'espace de noms 'WebService' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)

    Alors que je l'ai bien déclaré avant en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Service1 WebService = new Service1();
    Essai la meme chose sinon dis moi que t'offre ton instance WebService comme membres !
    Euh, j'en sais rien

  7. #7
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    C'est normal tu es intancie mal ton web service, commence deja par faire marcher un petit exemple Hello World

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    J'ai déjà réussit à faire un HelloWorld

    Voila ce que j'ai fait :

    dans ma page Service1.asmx.cs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [WebMethod]
    public string HelloWorld(){
    	return "Hello World";
    }
    Dans ma page personne.aspx.cs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Service1 WebService = new Service1();
    txtPerso.Text = WebService.HelloWorld()
    Et sa m'affiche bien HelloWorld dans ma zone de texte.

    Tout est en local pour l'instant, je n'ai pas besoin de faire de réglage spécifique.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Mehdi Feki Voir le message
    Tu peux retourner une collection managée serializable, une list generique List<TaClasse> fera l'affaire, cette list tu vas la recuperer coté page ASP.NET sous forme de tableau TaClasse[].
    Bonjour bonjour,

    J'aimerais que mon WebService retourne un type "System.Collections.Generic.List<MaClasse>". Mon WebService se compile bien, mais dans mon programme qui fait appel à ce WebService, il est indiqué que ma fonction retourne l'objet "MaClasse[]" et non l'objet "System.Collections.Generic.List<MaClasse>"...

    Les listes génériques ne sont donc pas sérialisables ?
    quelqu'un a-t-il une idée ?

    Merci merci

  10. #10
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    C'est tout à fait normal, List est sérialisée en ComplexType qui est à son tour désérialisé en Tableau. C'est le fonctionnement du Framework.

    Il faut reconstruire la List après l'invocation du service Web.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 65
    Points
    65
    Par défaut
    OK merci bien pour la réponse !

    Et encore une petite question.... dans la fonction dans laquelle j'utilise mon web service, en gros j'ai :

    TableauRetourné = WebService.MaFonctionQuiRetourneMonTableau();

    Mais si je ne me trompe, mon "TableauRetourné", pour bien faire, il faudrait l'instancier... or, pour instancier un tableau, il faut bien connaitre sa taille, non ?

    D'après ce que je me souviens, l'instanciation d'un tableau est un truc du style : "MonTypeDeDonnées[] TableauRetourné = new MonTypeDeDonnées[Taille]();"... Dès lors, comment puis-je connaitre sa taille à l'avance ?

    Merci pour vos éclaircissements !

  12. #12
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par nico_4802 Voir le message

    D'après ce que je me souviens, l'instanciation d'un tableau est un truc du style : "MonTypeDeDonnées[] TableauRetourné = new MonTypeDeDonnées[Taille]();"... Dès lors, comment puis-je connaitre sa taille à l'avance ?
    Tu travailles sur un List<>, et, à la fin, tu fais "ToArray", et hop:! t'as le tableau kivabien

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 65
    Points
    65
    Par défaut
    je ne comprends pas bien...
    là tu m'expliques comment convertir une liste en tableau. Mon dilemme est plutot l'inverse :

    Etant donné que la fonction de mon WebService renvoit un tableau, comment instancier ce tableau, avant l'appel de mon WebService, alors que je ne connais pas la taille du tableau de résultat renvoyé par ce webService ?

    Ou bien alors, y aurait-il moyen de convertir direct ce tableau, sans l'instancier, par un truc du style :

    List<MonTypeDeDonnées> MaListe = new List<MonTypeDeDonnées>;
    MaListe = (WebService.MaFonctionQuiRetourneMonTableau()).ToList<MonTypeDeDonnées>;

    Bon, je crois que je rêve un peu, là

    Merci merci !

  14. #14
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Citation Envoyé par nico_4802 Voir le message
    Mais si je ne me trompe, mon "TableauRetourné", pour bien faire, il faudrait l'instancier... or, pour instancier un tableau, il faut bien connaitre sa taille, non ?

    Le tableau est déja instancié

    Citation Envoyé par nico_4802
    TableauRetourné = WebService.MaFonctionQuiRetourneMonTableau();
    Permet juste de copier la référence du tableau dans TableauRetourné.

    Sinon je te rappelle que les types retournés par le service Web sont sérialisables. C'est à dire qu'ils permettent juste de transiter le flux xml et donc ils ne contiennent aucune logique métier. Avant de créer ta List, il est préférable de copier les PersonneWS dans des PersonneBLL.

  15. #15
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par nico_4802 Voir le message
    je ne comprends pas bien...
    là tu m'expliques comment convertir une liste en tableau.
    Oui, je pensais que tu te plaçais dans le cadre de la programmation de ton web service, pas dans le cadre du client. Dans ce dernier cas, mon poste ne présente pas grand intérêt.

    Etant donné que la fonction de mon WebService renvoit un tableau, comment instancier ce tableau, avant l'appel de mon WebService,
    Si tu réfléchis un peu, tu trouveras tout seul que ta question n'a pas grand sens. Tu instancies un objet quand tu en as besoin; si on te fournis un objet (ici un tableau) c'est qu'il a été déjà instancié, non ?

    alors que je ne connais pas la taille du tableau de résultat renvoyé par ce webService ?
    Oui, et alors ? il sera toujours temps de regarder sa taille quand on te l'aura envoyé non ?

    Ou bien alors, y aurait-il moyen de convertir direct ce tableau, sans l'instancier, par un truc du style :
    Convertir quelque chose qui n'existe pas encore, c'est assez "créatif" comme idée.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Si tu réfléchis un peu, tu trouveras tout seul que ta question n'a pas grand sens. Tu instancies un objet quand tu en as besoin; si on te fournis un objet (ici un tableau) c'est qu'il a été déjà instancié, non ?
    ce n'est pas vraiment une question de réflexion, c'est plutot une question de savoir reconnaitre ses limites c'est tout !

    Merci pour les réponses

  17. #17
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Salemo alaykom.
    Voici un exemple complet pour ceux qui veulent retourner une ArrayList avec un Web service
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    using System;
    using System.Collections;
    using System.Data;
    using System.Data.OleDb;
     
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Xml.Linq;
    using System.Data.SqlClient;
    using System.Xml.Serialization;
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    // Pour autoriser l'appel de ce service Web depuis un script à l'aide d'ASP.NET AJAX, supprimez les marques de commentaire de la ligne suivante. 
    // [System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {
        public Service1 () {
     
            //Supprimez les marques de commentaire dans la ligne suivante si vous utilisez des composants conçus 
            //InitializeComponent(); 
        }
     
        [WebMethod]
        public string HelloWorld() {
            return "Hello World";
        }
        /// <summary>
        /// ///////////////////
        /// </summary>
        /// <returns></returns>
        ///
        [Serializable]
        public class Personne
        {
            public string nom;
            public string prenom;
            public Personne()
            {
     
            }
           public Personne(string nom, string prenom)
            {
                this.nom = nom;
               this.prenom = prenom;
            }
     
            public void SetNom(string name)
            {
                nom = name;
            }
     
            public void SetPrenom(string firstname)
            {
                prenom = firstname;
            }
     
        }
        [XmlInclude(typeof(Personne))] 
        [WebMethod]
     
        public ArrayList GetPersonne()
        {
            ArrayList perso = new ArrayList();
            Personne p = new Personne();
     
     
     
            System.Data.SqlClient.SqlConnection connexion;
            // Création de l'objet de connexion
            connexion = new System.Data.SqlClient.SqlConnection();
            // Paramétrage de la chaîne de connexion
            string connectString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=\"C:\\Documents and Settings\\Administrateur\\Mes documents\\test.mdf\";Integrated Security=True;Connect Timeout=30;User Instance=True";
     
            string querytest = "SELECT nom,prenom FROM produit";
     
     
     
     
            connexion.ConnectionString = connectString;
            // DataView return view;
            connexion.Open();
            SqlDataAdapter osqlDataAdapter = new SqlDataAdapter(querytest, connexion);
            DataSet monDataSet = new DataSet();
            osqlDataAdapter.Fill(monDataSet);
     
            foreach (DataRow row in monDataSet.Tables[0].Rows)
            {
                p.SetNom((string)row[0]);
                p.SetPrenom((string)row[1]);
                perso.Add(p);
            }
            return perso;
        }
     
     
    }

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

Discussions similaires

  1. [REST Jersey] Question sur les WebServices
    Par CooLMaN974 dans le forum Services Web
    Réponses: 5
    Dernier message: 03/09/2013, 21h38
  2. Question sur les webservices
    Par mister3957 dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 27/07/2012, 16h36
  3. Petites question sur les WebServices (appel et classe envoyée)
    Par Arsenic68 dans le forum Services Web
    Réponses: 0
    Dernier message: 24/12/2009, 14h54
  4. Question sur les webservices
    Par dedicare dans le forum Services Web
    Réponses: 0
    Dernier message: 20/04/2008, 18h13
  5. Question sur les Webservices
    Par boudhala dans le forum Services Web
    Réponses: 6
    Dernier message: 02/11/2007, 10h09

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