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

Silverlight Discussion :

iBatis dans Business Application Silverlight


Sujet :

Silverlight

  1. #1
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 37
    Points : 22
    Points
    22
    Par défaut iBatis dans Business Application Silverlight
    Bonjour,

    Je suis actuellement en train d'essayer de développer une Business Application Silverlight en utilisant iBatis pour accéder aux données situées sur une base MySql.

    J'ai suivi ce tutorial pour parvenir à mes fins, mais j'ai une exception lorsque je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGrid1.ItemsSource = Mapper.Instance().QueryForList("selectAll", null);
    Le stackTrace de l'exception est le suivant :

    à IBatisNet.DataMapper.Mapper.InitMapper()
    à IBatisNet.DataMapper.Mapper.Instance()
    Je voudrais donc savoir si quelqu'un avait déjà eu la même erreur, ou simplement utilisé iBatis pour accéder aux données dans une Business Application Silverlight.

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 082
    Points
    8 082
    Par défaut
    Hello,
    Y'a un truc que je capte pas. Silverlight est une techno côté client incapable d'accès à la BDD. IBatis est une techno d'accès à la BDD. Que vient faire IBatis la dans du Silverlight?

    Tu ne dois pas (et ne peux pas) utiliser IBatis côté Silverlight mais plutôt exposer des Webservices sur un serveur. Ces webservices utilisent IBatis pour accéder à la base, ils sont consommés par Silverlight.

  3. #3
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    C'est bien ce que je pensais, mais en suivant cette manipulation je pensais que cela marcherait.

    Autre question, comment dire à mon WebService d'utiliser iBatis pour attaquer la base ? Car lorsque que je Crée un Domain Service Class, aucun choix n'apparait dans la liste déroulante des DataContext !

    J'avais d'abord essayé en suivant le tutorial de davrous mais ce n'est qu'après que j'ai appris qu'il fallait absolument utiliser iBatis pour mapper et accéder aux données...

    Je suis totalement perdu...

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 082
    Points
    8 082
    Par défaut
    Tu peux te passer de WCF Ria Services pour la communication.
    Si tu veux l'utiliser, il me semble qu'il faut que tu crée ton propre DomainService qui lui interroge IBatis

  5. #5
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par PitMaverick78 Voir le message
    Si tu veux l'utiliser, il me semble qu'il faut que tu crée ton propre DomainService qui lui interroge IBatis
    Comment puis-je réaliser mon propre DomainService ?

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 082
    Points
    8 082
    Par défaut
    Citation Envoyé par HakunA59 Voir le message
    Comment puis-je réaliser mon propre DomainService ?
    Il faut que tu travailles avec ce qu'on appelle des POCO.
    http://thecloudarchitect.com/post/Us...e-Library.aspx

  7. #7
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Ok !
    Merci pour tes réponses PitMaverick78, je jette un oeil à cela, et je feedback aussi vite que possible !

    Encore merci !

  8. #8
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 082
    Points
    8 082
    Par défaut
    De rien!
    Attention cependant! Se lancer dans la bataille en intégrant à la fois les concepts de Silverlight, IBatis, RIA Services et des POCO c'est pas ce qu'il y'a de plus simple!
    Je serais toi, j'utiliserais des services WCF tout bêtes qui passent des collections.

  9. #9
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Peux-tu être plus clair ? Car comme tu as pu le constater, je suis débutant dans l'environnement Silverlight ! mais vraiment débutant !

  10. #10
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 082
    Points
    8 082
    Par défaut
    Grosso modo, la communication entre le client et le serveur s'effectue par WCF.
    Côté serveur tu peux choisir la solution d'exposer toi même tes webservices qui sont des fonctions comme List<Car> GetCars()
    Côté Silverlight, tu ajoutes une référence vers ses webservices et il te crée ce qu'il faut pour les consommer.

    Sinon tu peux utiliser WCF Ria Services qui fait que la communication est quasi-transparente, il la configure pour toi. Sauf que dans ton cas tu n'utilises pas Entity Framework et tu as besoin de POCOs ce qui oblige à mettre les mains dans le cambouis.

    Au final, je dirais que WCF RIA Services c'est bien si tu l'utilises pour développer plus rapidement mais que tu sais ce qu'il y'a derrière. Ne pas savoir comment ca fonctionne peut être dangereux dans le sens ou dès qu'il y'a un problème, vu que la couche d'abstraction est assez haute, tu ne sauras pas ou mettre la ligne magique qui manque pour corriger.

    En plus dans ton cas, WCF RIA Services ne va pas t'apporter un gros gain en productivité vu le code que tu as à pondre pour l'utiliser.

  11. #11
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Le lien que tu m'as donné précédemment m'a grandement servi, cependant, j'ai suivi l'exemple et j'ai donc pu écrire la petite méthode "add(double d, double dd)", celle-ci marche sans problème et j'arrive bien à récupérer le résultat et à l'afficher sur ma page, cependant, lorsque je suis l'exemple, et que j'écris une autre méthode qui par exemple me retourne une IList des users, impossible de l'appeler depuis ma page xaml... Et je n'arrive pas à comprendre pourquoi cela ne marche pas...

  12. #12
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Après plusieurs essais, ça fonctionne, ce lien m'a été d'une grande aide !!

    J'aurai jamais pensé faire un RIA WCF Service et d'y ajouter dedans une Domain Service Class !

    Cependant, j'arrive pas à bien configurer iBatis comme il faut, il me retourne l'erreur suivante :

    "Unable to load provider named "MySql" not found. Impossible de charger le fichier ou l'assembly 'MySql.Data, version 1.0.7.30072 blah blah blah..."
    Si quelqu'un a déjà utilisé iBatis avec MySql, son aide pourrait me sauver

  13. #13
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    C'est bon, ça marche !
    Topic résolu !

    Il suffit de bien suivre A LA LETTRE ce tuto

    Merci !

  14. #14
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    J'ai été un peu trop vite en besogne ! Mon problème n'est pas résolu...

    Je suis confronté à l'erreur suivante :




    Et voila le stack en entier :

    à IBatisNet.DataMapper.Configuration.DomSqlMapBuilder.Build(XmlDocument document, DataSource dataSource, Boolean useConfigFileWatcher, Boolean isCallFromDao)
    à IBatisNet.DataMapper.Configuration.DomSqlMapBuilder.ConfigureAndWatch(String resource, ConfigureHandler configureDelegate)
    à IBatisNet.DataMapper.Mapper.InitMapper()
    à IBatisNet.DataMapper.Mapper.Instance()
    à RIAServicesLibrary1.Web.DomainService1.tick() dans C:\Documents and Settings\bge.GROUPEKP-1B3DC8\Mes documents\Visual Studio 2010\Projects\BusinessApplication2\RIAServicesLibrary1.Web\DomainService1.cs:ligne 23
    à tick(DomainService , Object[] )
    à System.ServiceModel.DomainServices.Server.ReflectionDomainServiceDescriptionProvider.ReflectionDomainOperationEntry.Invoke(DomainService domainService, Object[] parameters)
    à System.ServiceModel.DomainServices.Server.DomainOperationEntry.Invoke(DomainService domainService, Object[] parameters, Int32& totalCount)
    à System.ServiceModel.DomainServices.Server.DomainService.Query(QueryDescription queryDescription, IEnumerable`1& validationErrors, Int32& totalCount)
    à System.ServiceModel.DomainServices.Hosting.QueryProcessor.Process[TEntity](DomainService domainService, DomainOperationEntry queryOperation, Object[] parameters, ServiceQuery serviceQuery, IEnumerable`1& validationErrors, Int32& totalCount)
    à System.ServiceModel.DomainServices.Hosting.QueryOperationBehavior`1.QueryOperationInvoker.InvokeCore(Object instance, Object[] inputs, Object[]& outputs)

    Pourtant la classe vtiger_troubletickets existe bel et bien !

    I really need help...

  15. #15
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Je me réponds à moi même !!

    Problème résolu.

    Je ne suis pas passé par les WCF RIA services comme le stipule le petit tutoriel mentionné auparavant !

    J'ai simplement ajouté un Domain Service Class à la partie Web de ma Business Application, et miracle ça fonctionnait !!

    (Et aussi, seconde petite erreur de ma part, j'avais oublié de mentionner le namespace de ma classe dans mon fichier de mappage !)

    Maintenant ça marche nickel.

    Bonnes fêtes de fin d'année à tous !

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

Discussions similaires

  1. fichier XAP dans une application silverlight
    Par Etudiante_Ines dans le forum Silverlight
    Réponses: 1
    Dernier message: 07/05/2011, 00h10
  2. Introduire des cubes OLAP dans mon application Silverlight
    Par ikouhan dans le forum Silverlight
    Réponses: 1
    Dernier message: 10/04/2011, 19h41
  3. Réponses: 2
    Dernier message: 24/09/2010, 09h17
  4. Réponses: 4
    Dernier message: 17/07/2010, 11h16
  5. Afficher un Powerpoint dans une application silverlight
    Par Wasrack dans le forum Silverlight
    Réponses: 5
    Dernier message: 04/11/2008, 13h05

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