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 :

C# Remoting avec les DataTable


Sujet :

C#

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Par défaut C# Remoting avec les DataTable
    Bonjour depuis tous jours je trouve pas de solution a mon probleme.
    Je vais l'exposé en esperant trouver une solution:
    Je developpe une application client/serveur en .Net remoting :

    Dans ma partie serveur j'ai deux class :
    1-une class pour ma table productAdapter dans laquel je declare ma mon tableAdapter ma table de produit
    2-une class dans la quelque je prepare ma tableAdapter : TableAdapter.fill(Erp_dataset.Product)

    Dans ma partie client j'ai qu'une seul class:
    Dans cette class j'active ma remoteclass et je recupte mon tableAdapter. Mon probleme c'est que je recupere un objet de type ProductAdapter mais sa valeur est la suivant:

    System.runtime.remoting.Proxies._TransparentProxy et c'est la ou est situé mon probleme. Lorsque j'affecte cet objet a mon tableAdapter qui est placé dans l'interface du client je ne recupere aucune information.

    Merci pour l'aide

  2. #2
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Salut,

    j'ai jamais eu affaire au couple 3-Tiers / Ado.Net, mais il me semble que plutôt que des data adapter, c'est des data tables qui devraient passer du serveur au client.

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

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    La conception est pour le moins curieuse.

    Quand on utilise une archi 3-Tier, en généal on laisse la DAL sur l'appli serveur, et on se contente de remoter les objets métiers.

    J'ai vraiment du mal à comprendre le pourquoi de cette archi avec une espèce de couche DAL disposé en cross-tier. Bizarre.

    Accessoirement, depuis le 3.0, autant utiliser WCF, plutot que le Remoting, dont je ne vois pas plus très bien l'usage pour ma part.

  4. #4
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Accessoirement, depuis le 3.0, autant utiliser WCF, plutot que le Remoting, dont je ne vois pas plus très bien l'usage pour ma part.
    La maintenance de projets existants, of course Et il peut exister dans l'entreprise un contexte économico-frileux qui ne va pas l'inciter à dépasser le framework 2.

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

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Guulh Voir le message
    La maintenance de projets existants, of course
    Certes, mais ici, je doute un peu que ce soit le cas

    Et il peut exister dans l'entreprise un contexte économico-frileux qui ne va pas l'inciter à dépasser le framework 2.
    Dans la mesure où le 3.0 n'est qu'une extensiopn du 2.0 et utilise le même IDE (VS 2005), la question économique ne se pose pas trop le concernant.

  6. #6
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Par défaut C# Remoting avec les DataTable
    ok je m explique pourquoi j ai choisi cet solution en fait l application sur laquel je travaille existe depuis deux ans dans notre société c est pour ca que le changement doit etre aussi discret cad aucn changement sur les interface ainsi que le metier ne doit etre fait il me faut seulement opérer sur le temps de reponse de mon application donc :
    le probleme que j ai pus observer puisque l application existante est une application client lourd donc la creation des tableAdapter et des dataset ainsi que le chargement de ces object par la base de donnéé est fait depuis le client ce qui rend l application trés lente la solution c est pour ca que j ai pense a la technologie Remoting ce que je voulais faire c est dédier le travaille de preparation des dataset ainsi que mes tableAdapter au serveur et juste les renvoyer au client pour qu il les utilise lors d initiation des datagrid ou des formulaire le problem que je rencotre c est lors d affectation de mon remote tableAdapter au local tableAdapter et je charge mon datagrid qui bind sur mon local tableAdapter j obtient rien puis que la valeur de mon localtableAdapter est la suivante : Systeme.Runtime.Remoting.TransparentProxy.
    j espere que j ai pu clarifier mon probleme et mille merci pour votre aide.

  7. #7
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Le TableAdapter est une classe connectée (indirectement) à la base de données. Tu ne peux pas la transmettre d'un client au serveur. Alors que les DataTable / DataSet sont juste des conteneurs de données.

    Une méthode plus classique serait de laisser les DataAdpater sur le serveur, et de lui faire renvoyer des datatables au client.

  8. #8
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Par défaut
    merci de m avoir repondu,
    si j ai bien compris il faudra ajouter a mon serveur par exemple une methode qui me renvoie ma datatable de la sorte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public DataTable Get_Product()
    {
    ProductTableAdapter.GetData()
    }
    et dans ma partie client dans mon forms viewProduct lors de l unitialsion de mon form je dois lui affecter mon datatable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void set_Product(DataTable Product)
    {
    this.ProductTableAdapter.fill(remoteObject.get_Product());
    }
    si j ai bien compris mais lorsque j ai tester il me demande d initialiser ma chaine de connexion c est ce que j ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Properties.Settings.Default.ERP_DBConnectionString = Machaine deConnexion;
    ce code est placer dans la partie client mais quand j ai debuger tous passe bien sans exception mais mon form viewProduct s affiche vide sans aucune information
    j ai tous essaye sans resultat SVP est ce qu il y a un Probleme dans mon code mille merci pour votre aide

  9. #9
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Oui, sauf aue ton client n'a besoin que de data tables. C'est tout. Côté server, t'as par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public DataTable GetProducts()
    {
      return this.machinAdapter.GetData();
    }
    Et côté client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataTable products = server.GetProducts(); this.dataGrid.DataSource = products;

  10. #10
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Par défaut
    mille merci monsieur Guulh vraiment j aimerais vous embrasser telement vous me sauvez la vie , il me reste juste a tester le temps de reponse par rapport a l ancienne application encore mille merci

  11. #11
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Par défaut Temp de reponse inchagé
    bonjour,
    je vien juste de tester mon application avec le remoting mais sincerement je suis décus le temps de reponse n pas changer au pire dans certaint cas il depasse l ancienne application vraiment je suis bloqué je n arrive pas a comprendre est ce que la conception que j ai adopté pour déminuer mon temp de reponse n est pas la bonne SVP est ce que quelqu un a une idéé mille merci pour votre aide.

  12. #12
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Ben ça dépend : pourquoi es-tu passé en trois tiers ? D'après ce que j'ai compris, ici, tu n'as fait que rajouter un process intermédiaire (ton serveur) entre la base de données et le client. Ca n'a aucune raison d'accélérer le traitement : auparavant, les données transitaient directement de la BDD au client, alors que là, elles passent du la BDD au serveur puis du serveur au client.

    Je connais pas le contexte de ton projet ; mais sans mise en cache des données côté serveur, tu n'auras aucune amélioration de performances en passant en trois tiers.

  13. #13
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Par défaut
    merci de m avoir repondu,
    comme j ai dis mon but essentielle c est d ameliorer le temp de reponse coté client c est mon principale objectif ce que j ai fait j ai rajouter le serveur en esperant transiter des objet au lieu des table je voulais enffet adapter le meme principe que l utilisation de spring+hibernate c a dire preparer mes objet de donnee et transiter mes objet mais bon ca ne fonctionne pas apparament c est pa aussi simple que ca , est ce que vous pouvez m eclairsir sur le faite de mise en cache coté serveur mille merci de m avoir repondu.

Discussions similaires

  1. Problème avec les Bean Remote JEE
    Par likesum41 dans le forum Java EE
    Réponses: 11
    Dernier message: 25/03/2015, 14h12
  2. Réponses: 7
    Dernier message: 26/03/2011, 07h41
  3. Réponses: 4
    Dernier message: 28/04/2009, 16h32
  4. Probleme avec les Event en Remoting
    Par Antisuperman dans le forum C#
    Réponses: 6
    Dernier message: 20/05/2008, 11h04
  5. Pbm avec les '&'...
    Par AmaX dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/08/2002, 11h08

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