Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419

    Compilazione condizionale

    Io ho una applicazione che viene utilizzata da diversi clienti, personalizzata per ognuno di loro.
    Io ho messo nel web.config una key che viene analizzata nel codice, per distinguere le operazioni da effettuare per ogni cliente.
    Chiaramente però le dll create contengono il codice di tutti i clienti.
    C'è la possibilità di compilare in modo condizionale le diverse parti del codice in base alla key presente nel web.config?
    Se ci fossero alternative diverse alla famosa key non c'è problema, la situazione esistente è quella che ho segnalato, nulla mi vieta di cambiare impostazioni.
    Ciao e grazie a chi mi potrà suggerire qualche idea.

    Legnetto

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Uhmmm ho fatto una cosa simile in un piccolo progetto.

    Per la parte "cangiante" del codice, potresti astrarla dal resto ed incapsularla in una libreria esterna (class library).

    Per ogni cliente poi potresti fare un progetto con un riferimento alla DLL giusta (compilate da riga comando), in modo da avere, alla fine, per ogni cliente una coppia Project / Riferimento Class Library (la class Library è una, i progetti N).

    Ma credo che sia una soluzione conveniente soltanto se non sono molti, i clienti

  3. #3
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Scusa se rispondo solo ora ma, prima non ho potuto.
    La soluzione che vorrei modificare, è troppo complessa per dividerla in classi separate.
    La verifica dei clienti viene chiamata moltissime volte in diverse situazioni, dovrei dividere in tante(troppe!!) classi le varie sezioni del codice e penso proprio che non ne valga la pena.
    Io sono convinto di aver sentito/letto da qualche parte che c'è la possibilità di far compilare a vs.net solo alcune porzioni di codice isolandone altre con dei tag particolari.
    Magari mi sbaglio.....
    Comunque l'applicazione va bene anche così, è solo una finezza aggiuntiva che volevo implementare.
    Se qualcuno ha altri suggerimenti ben vengano.
    Intanto grazie a djciko per il suo.

    Legnetto

  4. #4
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Mi rispondo da solo.....

    codice:
    #If 1 = 1 Then
        Private Sub Popola_Campi(ByVal idbp As Integer, ByVal codautore As Integer, ByVal statobp As Integer)
        'Codice che troveremo nella dll
        End Sub
    #Else
        Private Sub Popola_Campi1(ByVal idbp As Integer, ByVal codautore As Integer, ByVal statobp As Integer)
        'Codice che non troveremo nella dll
        End Sub
    
    #End If
    Ho disassemblato la dll creata dopo la compilazione e non c'è traccia della routine popola_campi1...
    Ciao a tutti.

    Legnetto

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da Legnetto
    Mi rispondo da solo.....

    codice:
    #If 1 = 1 Then
        Private Sub Popola_Campi(ByVal idbp As Integer, ByVal codautore As Integer, ByVal statobp As Integer)
        'Codice che troveremo nella dll
        End Sub
    #Else
        Private Sub Popola_Campi1(ByVal idbp As Integer, ByVal codautore As Integer, ByVal statobp As Integer)
        'Codice che non troveremo nella dll
        End Sub
    
    #End If
    Ho disassemblato la dll creata dopo la compilazione e non c'è traccia della routine popola_campi1...
    Ciao a tutti.

    Legnetto
    non avevo mai visto una cosa del genere...
    Cioe' crei una sub in modo condizionato, usando inoltre il '#' ?

  6. #6
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Praticamente tutto quello che viene inserito nell'if preceduto dal cancelletto, non viene visto in fase di compilazione.
    Non ho ancora fatto prove all'interno di routine ma, mettendolo appunto all'interno, non da errori di sorta.
    Non ho verificato però nelle dll, se il codice compreso in queste sezioni particolari (quando sono inserite in routine) viene considerato oppure no.

    Ciao.
    Legnetto

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.