2009-04-05 14 views
14

Qualcuno ha utilizzato uno dei seguenti (o qualsiasi altro strumento) per convertire il codice vb6 in una lingua .net?Confronto di strumenti di conversione per Visual Basic 6.0

Artinsoft's upgrade companion (convertiti a C# e vb.net)

vbmigration partner (converte in vb.net)

Quanto efficace stavano e quale progetto dimensioni ti è convertire?

Quanto lavoro è rimasto da fare in seguito? Quanto sei felice con il progetto .net risultante. Come era il supporto? C'è un forum di supporto ovunque per gli utenti di strumenti come questi, né il fornitore di sembra offrirne uno.

Cosa fanno pagare, i loro prezzi non sono pubblicati e ho sentito selvaggiamente prezzi differenti provenienti da diverse fonti per entrambi gli esempi sopra

risposta

4

penso che hai già visto il question su strumenti per la migrazione VB6 a VB.NET.

Entrambi hanno pubblicato prezzi di offerta speciali per il mercato del Regno Unito sui loro prodotti di base su questo Microsoft UK page. Naturalmente è necessario conoscere i limiti dei prodotti di base e dei prezzi per la vostra mercato per fare un giudizio realistico, quindi probabilmente c'è bisogno di contattarli :(

  • Artinsoft upgrade Companion Developer Edition £199 per un massimo di 50.000 righe di codice. EDIT Ora che offrono una free version che può fare fino a 10.000 righe di codice.
  • visivo migrazione di base di Partner codice architetti Professional Edition £399. mi hanno detto che questo era anche per un massimo di 50.000 righe di codice.

La procedura guidata di aggiornamento Microsoft integrata è patetica - according to the guy who wrote it - ovviamente è di Artinsoft, quindi vuole venderti qualcosa di meglio. Microsoft UK anche say gli strumenti Artinsoft e Code Architects sono migliori della procedura guidata di aggiornamento incorporata.

EDIT: Ho contattato Code Architects per un preventivo, hanno risposto molto velocemente. A differenza di questo Stack Overflow question da 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.

+0

Questi prezzi sono molto più bassi di quelli che ho sentito in precedenza. Ho sentito una citazione di oltre $ 2.000 per il partner di migrazione vb professionale e molto più alto per l'edizione aziendale – kjack

+0

Sembra che si applichino al Regno Unito solo se – kjack

+0

Sì, "per il mercato del Regno Unito" come ho detto. Mi sono collegato alle pagine in cui danno i prezzi. Ho avuto una citazione per l'edizione aziendale del partner di migrazione che era significativamente più dell'edizione professionale. Non credo che dovrei condividere la cifra esatta come se fosse una citazione solo per me. – MarkJ

1

Non ho usato uno dei due strumenti citati, ma con un minimo di preparazione, gli strumenti di aggiornamento in Visual Studio sono più che adeguati.

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

+0

Grazie, il consulente del codice vb6 richiede excel e ci credo o no la mia copia di excel era troppo vecchia l'ultima volta ho guardato, (dovrebbe essere ok ora però :)) – kjack

+0

Lo strumento Microsoft è patetico - secondo il ragazzo che ha scritto it (che vuole anche venderti qualcosa di meglio, ovviamente). http://www.devx.com/vb/Article/16822 E, Microsoft UK afferma che i due strumenti che chiedi sono migliori del loro wizard http://msdn.microsoft.com/en-gb/dd408373. – MarkJ

4

"updrading" da VB6 a .NET è un termine improprio. Tutto ciò che ottieni è codice VB6 in .NET; generalmente puoi ottenere risultati molto migliori con un refactoring/re-architecture - usando un modello di classe diverso, per esempio. 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 lotto 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à - Io raccomando Brownfield Application Deveopment (Manning) - può dare alcune preziose informazioni sulle cose da avere in atto prima di iniziare.

Brownfield

+0

in realtà ho solo la cosa su cui lavorare. La riscrittura richiederebbe troppo tempo. – kjack

+0

Quanto erano grandi i progetti che hai riscritto? – kjack

+0

Bene, il codebase originale è centinaia di DLL COM + in VB6, ma con un grado ragionevole di isolamento dei componenti - abbiamo solo portato le funzionalità a nostro piacimento: abbiamo ancora un numero deprimente di DLL VB6, ma funzionano ... per ora ... –

3

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 le cose su cui gli strumenti di conversione falliscono poiché il motore WinForm richiede i propri ritocchi. La stessa cosa è stata sperimentata quando il nostro software è passato da DOS a VB3. A volte non c'è sostituzione per la conversione manuale.

Con ciò detto, ci sono alcuni 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.

Assicurarsi 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'oggetto Graphics. Lo stesso è stato fatto per le stampanti.

Quasi tutto il codice è stato spostato dalle nostre forme in classi che i moduli hanno chiamato. 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 della forma è stata notevolmente più semplice.

Tutti questi passaggi sono stati eseguiti in VB6 e trasferiti nella nostra versione normale. Q & Un processo. Poi dopo abbiamo iniziato la conversione.

+0

partner vbmigration è un prodotto piuttosto recente <= 1 anno. Lo hai usato perché penso che gli strumenti di conversione siano migliorati sicuramente ben oltre il wizard di aggiornamento. – kjack

+0

ArtinSoft non sembra aver aggiunto nulla di utile per la nostra applicazione CAD/CAM. Comunque vbmigration sembra aver adottato lo stesso approccio che ho fatto (costruisci una libreria di supporto compatibile, ecc.). Li guarderò più da vicino. Grazie. –

+0

Hai menzionato il modello di stampante: hai guardato la Libreria di compatibilità della stampante negli alimentatori VB.NET? Presumibilmente rende facile l'aggiornamento del codice oggetto della stampante. http://msdn.microsoft.com/en-us/vbasic/bb735936.aspx – MarkJ

0

Mi è stato quotato $ 2500 per l'edizione professionale del partner di migrazione vb l'anno scorso. Non l'ho comprato quindi posso commentarlo

5

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.

In primo luogo, il nostro software di conversione supporta tutti i metodi e le proprietà grafiche VB6, con la sola 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 www.vbmigration.com contiene molti esempi di app VB6 ad alta grafica che sono state convertite in .NET con il minimo sforzo.

In secondo luogo, vorrei 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 di 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 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!

+0

Ciao Eugenio Qual è il costo dell'edizione professionale per persone al di fuori del Regno Unito? Grazie – kjack

+0

Oggi il prezzo del Professional è $ 1.500, ma potrebbe cambiare nei prossimi mesi, quando invieremo una nuova major release con nuove funzionalità. –

+0

Grazie per l'informazione, Eugenio. Il prezzo non è sicuramente molto costoso, ma sfortunatamente è abbastanza costoso da costringere molte persone come me a lottare con vb6 fino a quando MS supporterà le nostre app. – kjack

Problemi correlati