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 :

Objets et Web Service


Sujet :

Services Web

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 167
    Par défaut Objets et Web Service
    Bonjours,

    voila ca fait 10 jours que je galere , je debute en C# et surtout dans les web service ,
    je vais essayer d'etre claire .
    j'ai une application windows , mon bosse ma demandé de remplacer les winform par des web services , le probleme c'est que contrairement
    a mon application windows , je n'arrive pas a utiliser les objets déja creer. je sais que pour les webservices les sessions sont sans etat
    mais comment peut on faire la meme chose en utilisant les web service ?

    merci de votre aide , tout les liens vers des exemples ou des tuto sont les bienvenue
    encore merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut rosty38,

    Pour être clair, avec winform tu as des formulaires derrière lesquels tu as du code, alors qu'avec les Service Web, on n'a que du code! L'équivalent du formulaire winform en web, c'est des webform? Alors parles-tu bien de Service Web ou de Webform?

    Cédric

  3. #3
    Membre chevronné
    Inscrit en
    Décembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2008
    Messages : 256
    Par défaut
    Citation Envoyé par rosty38 Voir le message
    .... j'ai une application windows , mon bosse ma demandé de remplacer les winform par des web services ...


    Un winform, c'est une technologie utilisée pour afficher des informations à l'écran (en l'occurrence une fenêtre d'application client lourd sous Windows). Il en existe d'autres : les WebForms, WPF, Silverlight, etc.

    Un web-service, c'est une méthode que peuvent utiliser des programmes informatiques pour s'échanger des informations entre eux. Il en existe d'autres : les protocoles TCP, HTTP, FTP, le .NET Remoting, les bases de données, les fiches d'échange (CSV, XML), etc.

    Donc pour résumer, on ne peut pas remplacer winform par webservice, cela n'a pas de sens !

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 167
    Par défaut
    merci pour vous réponses.
    je pense que je me suis mal exprimer alors:
    l'application actuelle: appli client lourd en local

    objectif: passer aux web services
    mais le probleme:
    supposant que je dispose d'une classe "personne" avec (nom, prenom)
    lors du lancement de l'application je creé une personne avec nom=toto et prenom=tata, tant que je ferme pas l'application ou je ne modifie pas les valeur sa reste inchangé .
    dans le cas d'un web service je ne sais pas comment faire pour:
    lancer l'application sur le serveur
    une fois lancer les valeur de l'objet creer doivent etre accessible depuis le web service , sauf que dans mon cas dé que je sorts d'une WEBMETHODE ou du constructeur du webservice , mon objet est a NULL, comme si il n'a jamais été instancier , chose que je comprends car je sais que les service web ne font que des requettes HTTP. mais y t il une methodologie ou une solution pour avoir le meme resultat qu'une appli windows en utilisant les service web .

    encore merci

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut rosty38,

    si je comprends bien avant dans ton windows form tu affectait directement otn objet personne! Dans ton service Web tu dois passer nom, prénom, etc en paramètre de ta webmethod soit en GET ou en POST, ensuite tu pourras affecter ton objet "personne", qui ne devrait plus être null!

    Mais as-tu déjà commencé à créer ton service Web avec les méthodes que tu as besoin?

    Cédric

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 167
    Par défaut
    oui j'ai creer mon web service qui dailleur fonctionne correctement .
    mais le probleme cest au moment ou jai crée un client , ben il repasse par le constructeur du service du coup il me crée un nouveau objet de type personne ce qui fait que je pert les valeurs des proprietés de l'objet precedent
    je mets mon code ou cas ou :

    Service.cs
    Code c# : 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
     
    [WebService(Namespace = "http://toto.com/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
     
     
     
        public class Service : System.Web.Services.WebService
        {
     
            #region Variables
     
            private static Personne moi;
     
            #endregion Variables
     
            #region Properties
     
     
     
            #endregion Properties
     
            #region Constructors
     
            public Service()
            {
                //Supprimez les marques de commentaire dans la ligne suivante si vous utilisez des composants conçus 
                //InitializeComponent();
                moi = new Personne();
            }
     
            #endregion Constructors
     
            #region WebMethods
     
            [WebMethod(EnableSession = true)]
            public void SetNom(string mNom)
            {
                moi.nom = mNom;
     
            }
     
            [WebMethod(EnableSession = true)]
            public string GetNom()
            {
                return moi.nom;
            }
     
     
            #endregion WebMethods
         }

    Personne.cs
    Code c# : 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
     
    using System;
    using System.Collections.Generic;
    using System.Text;
     
     
    namespace toto.BLL
    {
        public class Personne
        {
            #region Variables
     
            #endregion Variables
     
            #region Properties
     
            public string nom;
            public string prenom;
     
            #endregion Properties
     
            #region Constructors
     
            #endregion Constructors
     
            #region Methods
     
            #endregion Methods
        }

    Default.aspx
    Code c# : 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
     
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
     
     
     
    namespace toto.LogicielClient
    {
        public partial class _Default : System.Web.UI.Page
        {
            protected  ws_personne.Service proxy;
     
            protected void Page_Load(object sender, EventArgs e)
            {
               if(!IsCallback)
                proxy = new ws_personne.Service();
            }
     
            protected void Button1_Click(object sender, EventArgs e)
            {       
     
                Label1.Text = proxy.GetNom();
     
            }
     
            protected void Set_Click(object sender, EventArgs e)
            {
                proxy.SetNom(TextBox1.Text);
            }
        }
    }

    Edit:
    voila jai un message d'erreur :
    La référence d'objet n'est pas définie à une instance d'un objet.
    car il repassepar le constructeur du service qui creer un autre objet

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Resalut rosty38,

    en fait, une solution serait de lier ton objet personne à ta session, par exemple:

    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
     
    public Service()
            {
                //Supprimez les marques de commentaire dans la ligne suivante si vous utilisez des composants conçus 
                //InitializeComponent();
     
                 //Pas certain que l'on ait accès à l'object Session dans le constructeur, à tester....
                //moi = new Personne();
            }
     
            [WebMethod(EnableSession = true)]
            public void SetNom(string mNom)
            {
     
                Personne moi = (Personne) Session["Personne"];
                if (moi == null)
                {
                    moi = new Personne();
                }
                moi.nom = mNom;
                Session.Add("Personne, moi);
     
     
            }
     
            [WebMethod(EnableSession = true)]
            public string GetNom()
            {
                Personne moi = (Personne) Session["Personne"];
                //Vérifier que l'objet Personne ne soit pas null, au cas il y aurait eu un problème quelconque
                if (moi == null)
                {
                    moi = new Personne();
                }
     
                return moi.nom;
            }
    Est-ce que cela peut t'aider

    Cédric

  8. #8
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 167
    Par défaut
    désolé cedric j'été en reunion avec mon boss
    je teste tt ca et je te tiens au courant.

  9. #9
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 167
    Par défaut [RESOLU]
    merci a tous probleme resolu.
    il fallait declarer l'objet en static et l'instancié .
    encore merci

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Mais de rien! Le solutation était au final toute simple!!!

    Cédric

  11. #11
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 167
    Par défaut
    Cédric,
    encore merci , moi a chaque fois que je galère et que je trouve la solution je me dis mais c été tout bête , maintenant je passe a un autre problème et ainsi de suite .

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

Discussions similaires

  1. Web service (type de retour:objet)
    Par roronnoa dans le forum Services Web
    Réponses: 5
    Dernier message: 08/09/2008, 09h33
  2. [jax ws] consommer un objet complex d'une methode web service
    Par cisnake dans le forum Services Web
    Réponses: 3
    Dernier message: 05/06/2008, 07h52
  3. Web Service + Proxy = 2 différents objets
    Par superdaok84 dans le forum Services Web
    Réponses: 11
    Dernier message: 20/02/2008, 17h51
  4. Web Service : récupération objet request
    Par silver95 dans le forum Services Web
    Réponses: 1
    Dernier message: 26/08/2007, 19h29

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