Confronto tra strumenti di conversione per Visual Basic 6.0

Qualcuno qui ha usato uno dei seguenti (o qualsiasi altro strumento) per convertire il tuo codice vb6 in una lingua .net?

Compagno di aggiornamento di Artinsoft (converte in c # e vb.net)

partner vbmigration (converte in vb.net)

Quanto erano efficaci e quali progetti di dimensioni hai convertito?

Quanto lavoro è rimasto da fare in seguito? Quanto sei felice con il progetto .net risultante. Come è stato il supporto? C’è un forum di supporto ovunque per gli utenti di strumenti come questi, nessuno dei due sembra offrirne uno.

    Cosa hanno fatto pagare, i loro prezzi non sono stati pubblicati e ho sentito prezzi estremamente diversi da fonti diverse per entrambi gli esempi sopra

    Penso che tu abbia già visto la domanda sugli strumenti per la migrazione da VB6 a VB.NET.

    Entrambi hanno pubblicato prezzi di offerta speciali per il mercato del Regno Unito sui loro prodotti di base su questa pagina di Microsoft UK. Naturalmente è necessario conoscere i limiti dei prodotti di base e i prezzi per il proprio mercato per dare un giudizio realistico, quindi probabilmente è necessario contattarli 🙁

    • Artinsoft Upgrade Companion Developer Edition £ 199 per un massimo di 50.000 righe di codice. EDIT Ora offre una versione gratuita che può fare fino a 10.000 linee di codice.
    • Visual Basic Migration Partner Professional Edition di Code Architects £ 399 . Mi hanno detto che questo era anche per un massimo di 50.000 linee di codice.

    Il wizard di aggiornamento Microsoft incorporato è patetico, secondo il tipo che lo ha scritto, ovviamente è di Artinsoft, quindi vuole venderti qualcosa di meglio. Microsoft UK afferma anche che gli strumenti Artinsoft e Code Architects sono migliori della procedura guidata di aggiornamento integrata.

    EDIT : Ho contattato Code Architects per un preventivo, hanno risposto molto velocemente. A differenza di questa domanda di Overflow dello stack di Angry Hacker che ha avuto un’esperienza peggiore. Ma poi Francesco Balena è apparso su Stack Overflow per rispondere alla sua domanda entro 12 ore, il che è più incoraggiante.

    Sono Eugenio La Mesa, direttore generale di Code Architects. Ho letto alcuni commenti sul nostro VB Migration Partner e sugli strumenti di conversione in generale, e ho pensato di aggiungere alcuni spunti utili.

    Innanzitutto, il nostro software di conversione supporta tutte le proprietà e i metodi grafici VB6, con l’unica eccezione di DrawMode e ClipControls. Supportiamo anche la proprietà AutoRedraw e le coordinate ScaleMode definite dall’utente, quindi la migrazione di un programma simile a CAD a VB.NET è abbastanza alla portata del nostro software. La sezione Esempio di codice su http://www.vbmigration.com contiene molti esempi di app VB6 ad alta grafica che sono state convertite in .NET con il minimo sforzo.

    Secondo, permettimi di chiarire la nostra struttura dei prezzi. Vendiamo due diverse edizioni di VB Migration Partner: la Professional Edition può convertire le app VB6 con max. 50.000 linee di codice, mentre la versione Enterprise non ha limiti di dimensioni e supporta alcune funzionalità avanzate aggiuntive, come l’integrazione con il software di controllo del codice sorgente e la generazione di componenti .NET compatibili con la DLL VB6 originale, che consente di implementare migrazioni graduali di applicazioni basate su COM a livelli.

    Il prezzo della Professional Edition per £ 399 è una promozione speciale fino al 30 giugno 2009, durante una campagna di marketing Microsoft UK, solo per il Regno Unito e per applicazioni fino a 50K linee di codice (LOC). Il prezzo dell’Enterprise Edition può variare in quanto dipende da diversi fattori, tra cui il numero di licenze e il numero di LOC da migrare. Questo spiega perché potresti vedere diverse quotazioni di prezzo. Inoltre, abbiamo recentemente diminuito leggermente il prezzo di listino come nostra risposta alla situazione economica. Stiamo inoltre pianificando di estrarre alcune funzionalità dal prodotto principale e offrirle separatamente, il che si tradurrebbe in una struttura dei prezzi più flessibile.

    Abbastanza onestamente, per le applicazioni con 25-50K LOC consigliamo di solito una riscrittura manuale. In effetti, ci concentriamo sul segmento del mercato enterprise, in cui spesso trovi le app VB6 con diverse centinaia di LOC, se non milioni. In questi casi, una riscrittura manuale è raramente un’opzione praticabile: richiede troppi sviluppatori VB6 / .NET esperti, richiede troppo tempo o costa troppo. Abbiamo recentemente pubblicato un case study relativo a un’applicazione con 650K LOC; uno dei nostri clienti sta attualmente migrando un’app monster con circa 15 milioni di LOC!

    “updrading” da VB6 a .NET è un termine improprio. Tutto ciò che ottieni è codice VB6 in .NET; generalmente è ansible ottenere risultati molto migliori con un refactoring / re-architecture, ad esempio utilizzando un diverso modello di class. Forse progettando di essere testato dall’unità, per esempio. O usando IoC.

    Se vuoi solo che il codice funzioni (e sei sicuro di poterlo testare), allora va bene.

    Personalmente, prenderei seriamente in considerazione una porta più manuale. E ho un sacco di codice VB6 legacy, quindi conosco il dolore.

    Ogni volta che abbiamo affrontato questo problema, l’abbiamo semplicemente riscritto in C # – come approccio, si è dimostrato molte volte.

    In realtà, raccomando Brownfield Application Deveopment (Manning), potrebbe fornire alcune preziose informazioni sulle cose da avere in atto prima di iniziare.

    Campo Marrone

    Il problema è che gli strumenti di conversione non offrono supporto per i comandi VB6 Graphics o il modello di stampante VB6. Inoltre, si ha un sacco di casi d’angolo quando si ha a che fare con i controlli ActiveX. So che le nostre applicazioni CAD / CAM non si tradurranno in alcuno degli strumenti di conversione, poiché sono state apportate molte modifiche all’interfaccia utente per consentirne il corretto funzionamento con il modulo motore VB6.

    Queste sono cose su cui gli strumenti di conversione falliscono poiché il motore WinForm richiede le proprie modifiche. La stessa cosa è stata sperimentata quando il nostro software è passato da DOS a VB3. A volte non c’è sostituzione per la conversione manuale.

    Detto questo, ci sono qualcosa che puoi fare per rendere la conversione considerevolmente facile. Innanzitutto assicurati che l’applicazione sia costruita a strati. In questo modo puoi convertire un livello alla volta, testare e continuare. Ha anche il vantaggio di lasciarti con un software utilizzabile ad ogni passo. Consiglio di iniziare dal livello superiore (modulo) e di procedere verso il basso.

    Assicurati che tutto ciò che è VB6 centric e non Basic Centric sia dietro un’interfaccia. Quando .NET è uscito per la prima volta diversi anni fa, ho creato un’interfaccia Canvas e l’ho implementata utilizzando il comando grafico VB6. Io uso la stessa interfaccia Canvas in VB.NET eccetto che ora usa l’object Graphics. Lo stesso è stato fatto per le stampanti.

    Quasi tutto il codice è stato spostato dalle nostre forms in classi che le forms chiamavano. I moduli stessi implementano un’interfaccia utilizzata dalle classi UI. Quando siamo passati a .NET abbiamo una definizione precisa di come il modulo ha interagito con il resto del sistema e la conversione del modulo è stata notevolmente più semplice.

    Tutti questi passaggi sono stati completati in VB6 e sottoposti al nostro normale processo di domande e risposte sul rilascio. Poi dopo abbiamo iniziato la conversione.

    Non ho usato nessuno degli strumenti menzionati, ma con un po ‘di preparazione, gli strumenti di aggiornamento in Visual Studio sono più che adeguati.

    La prima cosa che devi fare è ottenere Visual Advisor 6 Code Advisor da Microsoft. È di grande aiuto per preparare il tuo progetto alla migrazione.

    L’anno scorso avevo quotato $ 2500 per l’edizione professionale del partner di migrazione vb. Non l’ho comprato quindi posso commentarlo