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

VB.NET Discussion :

Compiler du code à l'éxecution


Sujet :

VB.NET

  1. #1
    Membre éclairé Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Points : 801
    Points
    801
    Par défaut Compiler du code à l'éxecution
    Bonjour,

    En ce moment j'essaie de tester plusieurs manières d’accéder à une base de données locale. J'ai créé un outils de génération de code qui me permet de récupérer les infos d'une table sql et de les utiliser pour créer une classe correspondant à la table.

    Par exemple, la classe Produit (représentant la table Produit..) dans un fichier Produit.vb:
    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
    Public Class [Produit]
     
     
        Property [ID] As System.Int32    'ID
        Property [Libelle] As System.String    'Libelle
        Property [Prix] As System.Decimal    'Prix
     
        Sub New()
        End Sub
     
        Sub New(ByVal params As Object)
            Me.ID = params(0)
            Me.Libelle = params(1)
            Me.Prix = params(2)
        End Sub
     
    End Class
    J'ai une méthode qui me permet d'utiliser ces classes de façon générique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Public Function GetInstance(a As Assembly, className As String, params As Object) As Object
            Try
                Dim t As Type = a.[GetType](className)
                Return Activator.CreateInstance(t, params)
            Catch generatedExceptionName As ArgumentNullException
                Return Nothing
            End Try
     
        End Function
    Tout marche très bien cependant je me pose une question:
    Est il possible de générer des objets similaires sans avoir à créer le fichier.vb, mais simplement une classe en mémoire qui se chargerait au lancement de l'application? Si oui, y a t' il des inconvénients à utiliser une telle démarche?
    J’ai des questions à toutes vos réponses!

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 153
    Points : 25 071
    Points
    25 071
    Par défaut
    il est possible de générer le code vb puis de compiler le string dans une "dll en ram"
    et donc d'y faire des createinstance et de manipuler les instances

    par contre on perd l'intellisense et la possibilité d'utiliser la classe en conception dans vs

    pour compiler du code à l'exécution : vbcodeprovider et codedom
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre éclairé Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Points : 801
    Points
    801
    Par défaut
    Salut Pol63,

    Citation Envoyé par Pol63 Voir le message
    compiler du code à l'exécution
    C'est le titre que je cherchais
    Citation Envoyé par Pol63 Voir le message
    on perd l'intellisense et la possibilité d'utiliser la classe en conception dans vs
    Oui ça à l'air logique. Pas sûr que ça soit la meilleure solution pour la fonctionnalité que je veux développer du coup..

    Je garde ça dans un coin au cas où
    Merci pour l'info.
    ++
    J’ai des questions à toutes vos réponses!

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 153
    Points : 25 071
    Points
    25 071
    Par défaut
    si on définit aussi l'utilisation du code compilé ailleurs que lors du développement (dans la base de données par exemple) ça peut parfaitement s'utiliser
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    par contre on perd l'intellisense et la possibilité d'utiliser la classe en conception dans vs
    Pas forcément, on peut se contenter de définir des interfaces qui seront implémentées par le code généré.

    Sinon, en compilation à la volée, trois niveaux sont disponibles :
    * Compilation depuis code source, via CodeDom ou directement depuis le texte.
    * Expression trees.
    * Émission de code MSIL via AssemblyBuilder ou DynamicMethod.

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

Discussions similaires

  1. compilation de code source
    Par lejum dans le forum Général Java
    Réponses: 11
    Dernier message: 20/03/2006, 20h13
  2. Compiler du code Java via Java
    Par sozie9372 dans le forum Langage
    Réponses: 2
    Dernier message: 12/01/2006, 10h14
  3. Probleme en compilant le code avec C2.EXE ?!?!?
    Par angelevil dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 17/11/2005, 16h13
  4. [Servlet][Compilation] Erreur de compil dans code servlet
    Par gandalf_le_blanc dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 13/05/2004, 10h17
  5. Compiler un code sous windows
    Par KORTA dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 30/09/2003, 16h53

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