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 :

[VB.NET][WebServices] Lancer une application depuis un service web


Sujet :

Services Web

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut [VB.NET][WebServices] Lancer une application depuis un service web
    Bonjour,

    pour situer le contexte, je dois développer une application de gestion boursière (c'est un projet "scolaire") en VB .NET.
    L'une des fonction du programme consiste à récupérer les cours de bourse en instantanné. Je les récupère depuis le site Yahoo, mais celui-ci n'accepte en entrée que le ticker "Yahoo".
    J'ai donc réalisé un petit programme en VB qui converti le code ISIN (international) en code Yahoo en intégrant un navigateur web au programme (le navigateur n'est pas affiché).

    Jusqu'ici, pas de problème.

    Le problème vient du fait que cette fonction devrait être réalisée par un service web, mais que ceux-ci ne possèdent pas de navigateur...

    La question est un peu à tiroirs :
    - est-il possible de "forcer" l'intégration du navigateur dans le service (par quelque méthode que ce soit) ?
    - si non, est-il possible de lancer une application depuis un service web ? Et si oui, comment ?

    Je ne demande bien évidemment pas la solution complète (quoi que ) puisqu'il s'agit d'un exercice scolaire, mais je m'avoue complètement bloqué...

    Petite précision : mon prof est un "intégriste" du .NET, donc si la solution pouvait se faire en .NET, ça serait l'idéal. Si ce n'est pas possible du tout, j'utiliserai autre chose

    Merci d'avance pour votre aide !

    Alban
    « Se demander si un ordinateur peut penser est aussi intéressant que de se demander si un sous-marin peut nager. »
    -- Edsger Dijkstra

  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,

    Si j'ai bien compris, tu veux faire une application Web qui utilise le code ISIN pour invoquer un service Web Yahoo.

    Je ne vois pas le probleme, tu cree une application Web qui contient un champ texte et un bouton et quand tu clique sur le bouton tu invoque le service Web de Yahoio duquel tu recupere le resultat et tu l'affiches.

    Il se situe où exactement ton probleme ?
    Mehdi Feki : Modérateur .Net

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut Précisions
    En fait, le problème ne vient pas de la conversion elle même : une recherche de l'ISIN sur le moteur de recherche de Yahoo, une récupération de l'URL d'arrivée et un parsing permet d'obtenir le ticker Yahoo (méthode un peu bourrin, mais j'ai pas trouvé mieux).
    L'avantage de cette méthode est qu'il n'y a pas à créer de base de donnée de correspondance entre ISIN et Yahoo, mais je fais ça avec un navigateur web pour l'instant. Pour avoir une idée du fonctionnement, voilà le code VB .NET.

    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
    Public Class Principal
     
        Private Sub BtnIsin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnIsin.Click
            Dim Url As New System.Uri("http://fr.finsearch.yahoo.com/fr/index.php?s=fr_sort&nm=" & TbIsin.Text & "&tp=*&r=" & cbPays.SelectedItem)
            Web.Url = Url
     
        End Sub
     
        Private Sub Web_Navigated(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles Web.Navigated
            Dim UrlYahoo As String = Web.Url.AbsoluteUri
            LblYahoo.Text = UrlYahoo
            Dim Recherche As String = "s="
            Dim TextPos As Integer = InStr(4, UrlYahoo, Recherche, CompareMethod.Text) + 2
            Dim Code As String = Mid(UrlYahoo, TextPos)
            MessageBox.Show(Code)
        End Sub
     
    End Class
    Maintenant, je voudrais rendre ça accessible en tant que service web. Comme le navigateur n'existe pas, je pensais appeler un équivalent de l'application (une "vraie" application, pas une fonction du service web) dont le code est ci-dessus pour faire le boulot, et renvoyer le résultat au service web (qui renvoie lui-même à une application locale)... mais je ne sais pas comment l'appeler ni comment la gérer.

    J'espère être suffisamment clair sur mes objectifs maintenant...

    En tout cas, merci pour ta réponse !

    Alban
    « Se demander si un ordinateur peut penser est aussi intéressant que de se demander si un sous-marin peut nager. »
    -- Edsger Dijkstra

  4. #4
    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
    Ok mais il est où le probleme si tu creer la meme fonctionnalité dans un service Web ?
    Mehdi Feki : Modérateur .Net

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut C'est là la blague
    C'est là que .NET s'amuse avec moi : dans uns application windows, je peux créer un navigateur web.
    Dans un service web... je ne peux pas le créer.

    Du coup, je ne peux pas utiliser le couple System.Uri(***) et Web.Navigated (la classe System.Windows.Forms.WebBrowser n'existe pas).

    Initialement, j'avais réagi comme toi : j'étais persuadé que ça fonctionnait exactement pareil...
    « Se demander si un ordinateur peut penser est aussi intéressant que de se demander si un sous-marin peut nager. »
    -- Edsger Dijkstra

  6. #6
    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 alband85
    C'est là que .NET s'amuse avec moi : dans uns application windows, je peux créer un navigateur web.
    Justement les services Web n'ont pas été creé pour integrer directement des interfaces graphiques.

    Peut-etre que la question que tu as oublié de poser avant de commencer d'utiliser les services Web : Qu'est-ce qu'un sevice Web ? Pourquoi et quand l'utiliser ?

    Je te recommende ces articles dans l'ordre:

    Introduction aux WebServices en .NET
    Créer et Consommer un service web avec .NET

    Sinon pour repondre à ta question, tu dois tout simplement, ce n'est qu'une proposition, creer une web method qui prend en parametre une url et qui la decompose et cherche l'information dont ta besoin et ensuite la retroune au client (Windows ou application Web) qui lui est construit avec browser.
    Mehdi Feki : Modérateur .Net

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Sur le principe, je ne dis pas... je suis même tout à fait d'accord !
    Le problème est que c'est un exercice scolaire... donc la logique n'est pas forcément au rendez-vous.
    En fait, le service web est purement artificiel et est là juste pour en utiliser un au moins une fois dans notre vie...

    L'idée est de faire ça (juste pour récupérer le code Yahoo) :
    Application Win <-> Service web <-> Convertisseur <-> Yahoo

    Pour ce qui est de la webmethod, je ne sais pas si ça va fonctionner :
    - on "envoie" une URL donnée, avec nos paramètres (la bourse et l'ISIN)
    - le moteur renvoie vers l'unique page qui correspond à ces paramètres
    - on récupère l'URL de cette page pour en extraire le code Yahoo

    Le navigateur servait justement à récupérer cette 2e URL. Il n'y a même pas besoin d'interface graphique : on n'ouvre même pas la page.

    Merci de passer autant de temps pour m'aider sur un projet aussi mal ficelé

    Alban
    « Se demander si un ordinateur peut penser est aussi intéressant que de se demander si un sous-marin peut nager. »
    -- Edsger Dijkstra

  8. #8
    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
    Merci de penser au bouton la prochaine fois
    Mehdi Feki : Modérateur .Net

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Beeen... c'était pas vraiment résolu...
    De toutes façons, ça l'aurait été d'ici une semaine, puisque le projet est à rendre jeudi prochain.
    « Se demander si un ordinateur peut penser est aussi intéressant que de se demander si un sous-marin peut nager. »
    -- Edsger Dijkstra

  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
    Citation Envoyé par alband85
    Beeen... c'était pas vraiment résolu...
    De toutes façons, ça l'aurait été d'ici une semaine, puisque le projet est à rendre jeudi prochain.
    Ok alors, si tu nous explique encore une fois ton probleme par rapport à l'avancement de ton application !!
    Mehdi Feki : Modérateur .Net

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

Discussions similaires

  1. [C#]Lancer une application depuis un WebService
    Par Greg34000 dans le forum Services Web
    Réponses: 12
    Dernier message: 28/09/2010, 08h57
  2. Comment lancer une application depuis un service ?
    Par bhf37 dans le forum Langage
    Réponses: 7
    Dernier message: 05/03/2009, 14h05
  3. Réponses: 3
    Dernier message: 31/08/2008, 16h33
  4. [VB.NET] Comment lancer une application externe dans ma Form
    Par afdmats dans le forum Windows Forms
    Réponses: 1
    Dernier message: 03/10/2006, 15h27
  5. [VB.NET]Lancer une application depuis MonProg
    Par PM_calou dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/09/2006, 11h42

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