Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'implémentation MySQL

Problème d'implémentation

    21 février 2021 à 22:08:26

    Bonjour je viens vers vous car j'ai un problème suite à la conversion d'un projet C# vers VB.NET.

    J'ai converti le projet dans le but de récupérer un dossier contenu à l'intérieur nommé "Database" (qui est une sorte de classe afin d'utiliser MySQL).

    Cependant, le projet ne comportait aucune erreur à son état d'origine (C#), il s'exécutait sans souci et une fois convertit en VB.NET, j'ai cette erreur dans un fichier (NormalQueryReactor) présent dans le dossier "Database" dit plus haut:

    Class 'NormalQueryReactor' doit implementer 'Function InsertQuery() As Long' pour l'interface 'IQuery Adapter'

    Class 'NormalQueryReactor' doit implementer 'Sub RunQuery()' pour l'interface 'IQueryAdapter'.

    Alors qu'il ne possède aucune erreur en C#.

    Voici le code en C#:

        public class NormalQueryReactor : QueryAdapter, IQueryAdapter, IRegularQueryAdapter, IDisposable
        {
            public NormalQueryReactor(IDatabaseClient Client)
                : base(Client)
            {
                base.command = Client.createNewCommand();
            }
    
            public void Dispose()
            {
                base.command.Dispose();
                base.client.reportDone();
                GC.SuppressFinalize(this);
            }
        }

    Et voici le code convertit en VB.NET (qui possède une erreur):

    Public Class NormalQueryReactor
            Inherits QueryAdapter
            Implements IQueryAdapter, IRegularQueryAdapter, IDisposable
    
            Public Sub New(ByVal Client As IDatabaseClient)
                MyBase.New(Client)
                command = Client.createNewCommand()
            End Sub
    
            Public Sub Dispose() Implements IDisposable.Dispose
                command.Dispose()
                client.reportDone()
                GC.SuppressFinalize(Me)
            End Sub
        End Class

    J'ai utilisé tous les convertisseurs possibles et ils donnent tous le même résultat en VB.NET, toujours avec une erreur...

    Je peux mettre à disposition le contenu du dossier Database au format C# ou VB.NET pour vous aider.

    Cordialement

    -
    Edité par ThéoLeGouëf 21 février 2021 à 23:42:53

    • Partager sur Facebook
    • Partager sur Twitter
      21 février 2021 à 22:24:24

      Bonjour, Merci de modifier le titre de votre sujet pour un titre explicite de votre problématique.

      Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: vb;">Votre code ici</pre>.

      Merci de modifier votre message d'origine en fonction.

      Mauvais titre

      Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

      Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

      De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

      Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

      Pour modifier votre titre, éditez le premier message de votre sujet.

      (titre originel : Problème class MySQL)

      Liens conseillés

      -
      Edité par AbcAbc6 21 février 2021 à 22:25:35

      • Partager sur Facebook
      • Partager sur Twitter
        22 février 2021 à 10:22:19

        Je ne vois pas trop l'intérêt de ce portage, à la fin, c'est du .NET, C# ou VB.NET c'est bonnet blanc et blanc bonnet.

        Quite à toucher à ce bidule, autant penser à faire migrer cette couche d'accès aux données vers un truc plus moderne, comme un ORM.

        Il doit très probablement vous manquez l'implémentation des 2 fonctions/méthodes réclamées par le compilateur VB.NET.

        Utilisez votre IDE avec le projet C# pour localiser leur implémentation en C# qui vous manque en VB.NET.

        Pensez à utiliser un dépôt Git (GitHub, GitLab, etc...) pour nous partager votre projet.

        • Partager sur Facebook
        • Partager sur Twitter
        Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        Anonyme
          22 février 2021 à 16:07:09

          Salut,

          Le message est pourtant clair.

          Tu dois implementer les méthodes InsertQuery() As Long,  RunQuery()de l'interface IQueryAdapter.


          dans ton code C# tu devrais avoir les méthodes :

          void RunQuery();

          long InsertQuery();

          L'implementation d'un ORM n'est nullement moderne et encore moins à la mode (ce n'est  que couche d'accès aux données). De plus pour ton apprentissage personnel je te conseil de plonger dans ADO.net qui est lourd mais extrêmement interessant et te permettra l'apprentissage de certains patterns de conception. 

          -
          Edité par Anonyme 22 février 2021 à 16:11:59

          • Partager sur Facebook
          • Partager sur Twitter
            22 février 2021 à 16:40:24

            L'usage direct d'ADO.NET n'a que rarement une utilité quelconque, et c'est pas un projet "pour apprendre".

            La mode, je m'en cogne, ça facilite grandement la maintenance et la lisibilité du code, si t'as mieux, @bitbucket, je suis preneur.

            Mais si c'est juste pour la nostalgie de faire "comme si on était encore à l'époque de Lucie de l'informatique pour savoir ce que ça fait d'être une Australopithecus Afarensis", on fait cela en dehors des heures de bureau.

            • Partager sur Facebook
            • Partager sur Twitter
            Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            Anonyme
              22 février 2021 à 18:19:44

              bacelar a écrit:

              La mode, je m'en cogne, ça facilite grandement la maintenance et la lisibilité du code, si t'as mieux, @bitbucket, je suis preneur.


              La citation est parfaite et démontre largement la démarche du 'je veux pas comprends, il faut que sa roule' (ce qui est souvent le cas pour les coups de productions).

              Cela montre aussi qu'il existe toujours cette fameuse décision d'architecture de utilisation de l'ORM. Alors qu'un simple DataAccess avec Repository déployé au travers d'un adapter peu largement servir selon la taille du projet (qui ne posera aucuns problèmes dans le futur pour migrer sur un ORM).

              Je ne rentrerais dans ce genre de débat surtout pas sur ce genre de forum. Je donnais un point de vue et une orientation sur un sujet vaste et qui est je pense intéressant.

              Merci a toi.

              • Partager sur Facebook
              • Partager sur Twitter
                22 février 2021 à 18:53:29

                J'attends toujours l'avantage d'un DataAdapter/DataSet "maison" sur un ORM ?

                Je ne dis pas que cela n'existe pas mais quand on entend un bruit de galop, on pense cheval et non zèbre, quand on est en France.

                Après, on peut toucher à rien, et dans ce cas, le changement du langage n'a aucun intérêt et on peut très facilement mixer les langages pour générer des assemblies.

                • Partager sur Facebook
                • Partager sur Twitter
                Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                Anonyme
                  22 février 2021 à 21:26:49

                  bacelar a écrit:

                  J'attends toujours l'avantage d'un DataAdapter/DataSet "maison" sur un ORM ?

                  Il est toujours difficile d'interpréter les dires dans une conversation de quelques lignes et je ne m'attendais pas une telle confusion!

                  Ce que tu évoque est effectivement l'ancêtre de ce que tu met en avant et je te rejoins sur ce point (ORM).

                  j'étais plus dans les models de bases à savoir:

                  Un bon vieux Business Logic Layer,  Business Object, et DataAccess ou plus vulgairement le bon vieux CRUD de merde dans la couche la plus basse. l'Adapter quand à lui ne serait la que pour faire la passerelle de cette bonne vieille couche.

                  Pour ma part, je trouve à ce jour l'ORM trop lourd et pas forcément adéquate avec certain environnement logiciel. Entity Framework (très bonne ORM) une veritable usine à gaz pour rien, je ne soulèverais meme pas Hibernate. Par contre dans certaines situations je pencherais pour Dapper (micro ORM), que je qualifierais comme un très bon QueryBuilder (Tout cela est bien sur et encore des réflexions personnelles). Et puis quelques fois je serais dans le détails de la milliseconde qui fera la difference sur une api (toujours des reflexions).

                  Il y a cependant un domaine ou je serais à dire tout le temps ORM. C'est le Frontal Web (cms, shop, galerie, ...) déployé par une petite PME qui coupe les budgets pour survivre.

                  Il est evident que nous ne possédons pas la vérité absolu et notre échange le prouve.

                  Merci a toi.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 mars 2021 à 15:46:54

                    Merci pour vos réponses je vais me renseigner et essayer tout ça !
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Problème d'implémentation MySQL

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown