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

C# Discussion :

Dialogue entre un webservice et une application tierce sous Visual Studio


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Février 2013
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 148
    Par défaut Dialogue entre un webservice et une application tierce sous Visual Studio
    Bonjour à tous,

    N'étant pas un grand habitué des architectures sous Visual Studio, j'ai une question, ou plutôt une demande de conseil :

    J'ai un webservice (WCF) qui reçois et envoi des données.
    Sur la même machine, une application tierce en C#.
    J'ai besoin que cette application envoie et reçoive des données à partir du webservice.
    Pour "lier" les deux parties quoi doivent communiquer entre elle, je pense que la meilleure solution est une "Class library" sous forme de DLL.
    Qu'en pensez-vous ?

    Merci
      0  0

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    ta demande n'étant pas claire, ce que j'en comprends:

    Ajouter une référence à ton Web service dans ton application C# et appeler les méthodes de ton web service directement depuis ton appli C#.

    Je ne vois pas l'intérêt de mettre une librairie supplémentaire...
      1  0

  3. #3
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Je ne vois pas non plus l'intérêt de passer par un WebService si l'application consommatrice est en local...
    Autant inclure le code du WebService dans l'application consommatrice, et utiliser des objets locaux...

    C'est d'ailleurs comme ça que j'avais compris la question

    Un projet DLL "core", qui va contenir toute la logique métier, indépendement du support (WinForm, WCF, etc.)
    Un projet WCF qui ne fait que wrapper la DLL "core".
    Un projet WinForms ou autre, qui référence la DLL "core" lui aussi.

    Comme ça, une seule DLL pour les deux applications (WCF et WinForms) mais pas d'utilisation inutile du WebService en local.
      0  0

  4. #4
    Membre confirmé

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Février 2013
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 148
    Par défaut
    Salut messieurs

    Je comprends vos incomprehension.

    En fait, l'application qui doit piloter le webservice est développé sous Unity3D.
    Donc je ne peux pas utiliser le même workflow que sous Visual Studio.
    Mon seul choix et d'utiliser une DLL ou alors un protocole de communication entre Unity et le webService

    En fait ma question est simple :

    Est-ce que l'on peux partager une instance entre deux applications (donc deux processus différents) avec une dll ?
      0  0

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Je pense qu'il serait temps de décrire pleinement ton contexte, ton besoin...

    Tu dis que tu as une application écrite en Unity 3D qui appelle un Web Service.

    Que veux-tu faire de plus ? parce que là, c'est juste incompréhensible ce que tu veux faire...

    Poses ton besoin... on verra ensuite ce qu'il parait raisonnable de faire pour le résoudre... mais par pitié, ne fait pas d'hypothèse sur la technique à utiliser
    pour résoudre un problème avant de l'avoir explicité.
      0  0

  6. #6
    Membre confirmé

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Février 2013
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 148
    Par défaut
    Ok TheMonz, désolé

    J'ai un simple webService ASP :
    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
     
    namespace TestService
    {
     
        /// <summary>
        /// Description résumée de WebService1
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // 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 WebService1 : System.Web.Services.WebService
        {
     
     
            [WebMethod]
            public string HelloWorld()
            {
                return "Hello World";
            }
     
            [WebMethod]
            public string SendMessageToUnity(string msg)
            {
                if (Bridge.SendMessageToUnity != null)Bridge.SendMessageToUnity(msg);
     
                return "Message " + msg + " sent to Unity";
            }
        }
    }

    La ligne suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (Bridge.SendMessageToUnity != null)Bridge.SendMessageToUnity(msg);
    Fait référence à une classe incluse dans une librairie (UnityBridge.dll)
    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
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace UnityBridge
    {
        // Cette classe statique est utilisée pour lier le module Unity au webService
        public class Bridge
        {
            public delegate void SendMessage(string msg);// Le delegate doit avoir la même signature que la méthode utilisée dans le service
            public static SendMessage SendMessageToUnity;
        }
    }
    Et dans unity, j'ai un simple code dont le but est d'afficher le paramètre envoyé avec la méthode SendMessageToUnity (paramètre)

    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
     
    using UnityEngine;
    using UnityEngine.UI;
    using System.Collections;
    using UnityBridge;
     
    public class DiotaRAModule : MonoBehaviour {
     
    	public Text screenText;
     
    	void Awake(){
    		Bridge.SendMessageToUnity = showMessage;
    	}
     
    	public void showMessage(string msg){
    		screenText.text = msg;
    	}
     
    	void Start () {
    		showMessage ("En attente d'un appel du webService ASP...");
    	}
    }
    Pour simplifier donc :

    WebService ASP -> UnityBridge.dll -> Unity3D

    J'ai tout qui ce compile sans erreur, mais comme unity et le webService ne partagent pas le même processus, la dll ne peux pas partager d'instance.
    Comment faire que l'instance (enfin dans ce cas le delegate) soit partagé entre le webservice et unity ?
      0  0

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. Créer une application 64bits avec Visual Studio
    Par Invité dans le forum Visual Studio
    Réponses: 3
    Dernier message: 17/05/2013, 19h02
  2. Réponses: 2
    Dernier message: 04/10/2010, 10h03
  3. Réponses: 2
    Dernier message: 21/05/2008, 11h55
  4. Réponses: 6
    Dernier message: 26/09/2007, 07h55
  5. Réponses: 5
    Dernier message: 31/08/2006, 10h06

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