PDA

View Full Version : Porting da Visual Basic a C#


robertino_salemi
20-11-2019, 13:29
Buongiorno a tutti,
sto effettuando il porting di un'applicazione da VB6 a C#.

E' la prima volta che effettuo un'operazione del genere, avete consigli o suggerimenti da condividere?

Ad esempio: nel codice VB sono presenti 2 etichette che vengono richiamate da diversi goto, qual è la best practices da adottare in questo caso?

Grazie.

Mursey
20-11-2019, 14:24
nel codice VB sono presenti 2 etichette che vengono richiamate da diversi goto, qual è la best practices da adottare in questo caso?

Fare delle funzioni.

!fazz
20-11-2019, 15:33
ed evitare l'uso di goto che sono peggio della peste nera medievale

lorenzo001
20-11-2019, 18:53
Erano già inopportuni in vb6... ovviamente devi valutare caso per caso per la soluzione ma niente goto

Se sono usate per la gestione degli errori usa la try catch

Mursey
20-11-2019, 21:16
Si, in effetti strano che siano state usate su VB6.

robertino_salemi
21-11-2019, 08:42
Si, sicuramente utilizzerò delle funzioni, anche se non sarà semplicissimo il porting dato l'accessivo di numerosi goto verso la stessa etichetta che riporta all'inizio del codice.

:muro:

!fazz
21-11-2019, 10:27
Si, sicuramente utilizzerò delle funzioni, anche se non sarà semplicissimo il porting dato l'accessivo di numerosi goto verso la stessa etichetta che riporta all'inizio del codice.

:muro:

sviluppa il programma mediante macchine a stati finiti è la soluzione migliore in questi casi, individui e sposti in funzioni tutte le attività che sono logicamente raggruppabili e logicamente non divisibili

poi la logica del tuo programma la programmi mediante la gestione delle chiamate alla varie funzioni fino alla condizione di uscita
alla fine ogni goto non è altro che una transizione da uno stato all'altro del software


int FSM=0;
while(FSM!= ExitCondition)
{
switch(FSM)
{
case 0:{ init();FSM=1;};break;
.....
....
...
case N:{ lastActivities();FSM=ExitCondition;}
}
}

lorenzo001
21-11-2019, 10:59
Si, sicuramente utilizzerò delle funzioni, anche se non sarà semplicissimo il porting dato l'accessivo di numerosi goto verso la stessa etichetta che riporta all'inizio del codice.

:muro:

Si deve valutare caso per caso ma penso tu possa ridurre tutto ad un loop con dei controlli al posto giusto ...

Se conosci bene il C# e la OOP non dovresti avere problemi ...