Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    170

    Importazione dinamica di librerie esterne

    In VB.Net è possibile importare librerie esterne a seconda di alcune variabili?

    Ad esempio se var x = 1 importo libreria A

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Di che librerie parli in particolare?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    170
    Librerie fatte da me. In pratica voglio fare degli include in stile php.

    Pensavo di fare un form in cui caricavo degli oggetti (user control con componenti e codici del tutto diversi) a seconda della libreria caricata, che rappresenterebbe una "Parte" di programma.

    Avrei potuto fare un form per ogni "Parte" di programma, però, volevo tenere una parte di tutti i form simile e suddividere il programma in più componenti invece che un unico file .exe.

    Ovviamente accetto consigli più pratici.

  4. #4
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Originariamente inviato da world war
    Librerie fatte da me. In pratica voglio fare degli include in stile php.

    Pensavo di fare un form in cui caricavo degli oggetti (user control con componenti e codici del tutto diversi) a seconda della libreria caricata, che rappresenterebbe una "Parte" di programma.

    Avrei potuto fare un form per ogni "Parte" di programma, però, volevo tenere una parte di tutti i form simile e suddividere il programma in più componenti invece che un unico file .exe.

    Ovviamente accetto consigli più pratici.
    Ciao, io non conosco bene il php, ma se non sbaglio con gli include "aggiungi" del codice al codice. Questo potrebbe forse risultare utile in php, ma in Windows Form non lo è tanto... infatti non si può aggiungere codice sorgente direttamente in runtime, a meno chè non usi apposite classi per compilarlo dinamicamente (su questo argomento, se cerchi in questo forum stesso, potrai leggere diverse discussioni in cui io stesso ho partecipato), ma per il tuo caso non mi sembra che ti sia utile. poi non so ovviamente...

    Per caricare dinamicamente una libreria, basta fare una cosa del genere :

    codice:
    Dim asm As Assembly = Assembly.LoadFile("miaDLL.dll")
    Dim nomeVar As mioTipo = Activator.CreateInstance(asm.GetType("mioTipo"))
    ovviamente per fare la scelta con un if non dovrebbe essere difficile...

    Quello che chiedi è sostanzialmente di fare di plugin aggiuntivi o comunque componenti separati, ma personalmente credo che NON dovresti partire dalla "grafica". La modularità di un programma non è di sicuro solo quella o semplicemente separarla in form differenti ... come prima cosa dovresti separare gli strati se vuoi dare la modularità anche a livello grafico, ma per farlo devi partire dalla logica (sempre che non lo stia già facendo, ma se così fosse non credo che avresti postato questa domanda ).

    hai già pensato ad una architettura? hai già separato gli strati?
    se ragioni solo in termini di grafica, ti ritroverai molto presto ad dover mettere mano alla struttura del programma, e probabilmente lo dovrai fare ogni volta che vuoi "aggiungere" o "aggiornare" qualcosa (ricompilando tutto... ).

    la grafica è solo la punta dell'iceberg...

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    170
    Gli include in php fanno esattamente quello che ha detto e poichè avevo qualche esperienza in VB scolastico, mi ero accorto che ciò non era possibile. Ovviamente per sorpassare il problema volevo includere queste librerie esterne in cui sia presente una classe che abbia sempre lo stesso nome ma varia il codice a seconda di ciò che deve essere fatto.

    I dati gestiti dall'applicazione principale volevo inviarli alla classe come parametri di qualche metodo.

    Come più o meno ha detto, non ho pensato molto alla struttura del programma, ma più all'aspetto grafico in quanto essendo quello più visibile ho necessità di farlo nel miglior modo possibile.

  6. #6
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Originariamente inviato da world war
    Gli include in php fanno esattamente quello che ha detto e poichè avevo qualche esperienza in VB scolastico, mi ero accorto che ciò non era possibile. Ovviamente per sorpassare il problema volevo includere queste librerie esterne in cui sia presente una classe che abbia sempre lo stesso nome ma varia il codice a seconda di ciò che deve essere fatto.

    I dati gestiti dall'applicazione principale volevo inviarli alla classe come parametri di qualche metodo.

    Come più o meno ha detto, non ho pensato molto alla struttura del programma, ma più all'aspetto grafico in quanto essendo quello più visibile ho necessità di farlo nel miglior modo possibile.
    leggi questo

    il thread "dovrebbe" interessarti.



    EDIT :
    ...quello che ha detto e poichè...
    Come più o meno ha detto,...
    parli di una terza persona o mi dai del lei?
    se è la seconda piantala! , mi fai sentire vecchio

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    170
    Grazie per la tua vecchia discussione, credo che implementerò il tutto quando avrò pianificato meglio il programma visto che potrebbe essere abbastanza utile il tuo metodo!

    Ma avrei un'altra domanda, come faccio a scaricare la memoria dalla dll quando questa non mi serve più, dopo averla caricata con il codice che mi avevi scritto in precedenza?

    codice:
    Dim asm As Assembly = Assembly.LoadFile("miaDLL.dll")
    Dim nomeVar As mioTipo = Activator.CreateInstance(asm.GetType("mioTipo"))

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Se ti va, puoi dare un'occhiata a questo progetto modulare, che carica le DLL esattamente come un PLUG-IN: è sufficiente che la DLL esista!

    Puoi creare moduli plung-in anche molto complessi, praticamente un'intera applicazione.
    Nell'esempio sono caricati gli assembly, i form (solo se permessi dal plug-in) e nell'applicazione principale vengono creati menu, toolbar, etc. per accedere ai form dei plug-in.
    Inoltre viene mostrato come passare valori tra applicazione principale e plung-in, ma anche tra plug-in!

    Gestione moduli plugin
    http://nuke.vbcorner.net/Progetti/NE...T/Default.aspx


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.