Come posso convertire il codice VB6 per C#?

Qualcuno sa un modo per convertire da codice VB6 per C#?

C’è uno strumento che può fare questo per me?

  • Puoi fornire il codice?
  • Ho il sospetto che c’è una domanda interessante, lì da qualche parte. Ci puoi dare maggiori dettagli?
  • Ho intenzione di chiudere questo, si prega di aprire una domanda e includere le informazioni pertinenti in esso.
  • “non è una vera domanda” non abbastanza in forma, ma proprio il meglio che ho potuto venire con.
  • So che è facile per chiudere una domanda, ma non è stato difficile per aiutare lui. Vi esorto a considerare aiutare la prossima volta, invece di chiusura.
  • Non c’era alcun motivo per chiudere questa domanda, anche se la risposta era NO.
  • e ‘ difficile aiutarti se c’è domanda.
  • Ho trovato, e così ha fatto un’risposto. Hai sempre l’opzione di lasciare che qualcun altro a lavorare su di esso, e semplicemente lo ignora.
  • Ho blieve la domanda è: “qualcuno sa di un modo per convertire da codice VB6 per C#? “
  • Sì, non era molto difficile da capire. Alcune persone hanno bisogno di essere un po ‘ più tolleranti con le persone per le quali l’inglese è una seconda lingua.
  • Sono d’accordo con Ricca B su questo. Penso basl meritato un po ‘ più di tempo per approfondire la sua domanda.
  • Grazie. Penso che sia abbastanza facile per quelli di noi con > 2000 rep per aiutare le persone che hanno problemi con l’inglese o domanda. La chiusura non è adatto a tutti per questa situazione.
  • Ho pensato che questo sarebbe una grande domanda. Io stesso ho una sfilza di codice VB6 che vorrei convertire in C# e sono curioso di sapere anche. Generico come è, penso ancora che la sua una buona domanda.
  • Hai provato a postare il tuo codice VB per Stackoverflow.com ? Questo “strumento” può farlo per voi, forse per la prima volta…
  • Un progetto che abbiamo cercato di usare gmStudio. Verrà produrre codice. Ma resta il fatto che sarà ancora codice VB6 in una moda. La codifica è ancora quello di VB. Se siete nei panni di aggiornamento perché non una riscrittura completa, dal momento che c’è un sacco di lavoro da fare, anche dopo un strumento di conversione, ha fatto il suo lavoro?
  • È possibile utilizzare VB.NET 2008 in bundle VBUW per la conversione di VB.NET e poi convertire l’output in C# con Visual Studio plugin da Roslyn squadra. Fatto un po di me.

InformationsquelleAutor basl | 2008-10-07



10 Replies
  1. 27

    VisualStudio offre (o almeno offerti) una procedura guidata per fare una conversione da VB6 a VB.NET (che potrebbe poi essere convertito in C# con un po ‘ di lavoro, eventualmente aiutato da #sviluppare la VB.NET <-> C# converter), ma quando l’ho usato, per nulla banale, c’era un sacco di lavoro manuale bisogno di essere fatto in modo che ho il sospetto che probabilmente stai meglio riscrittura o porting da parte se questo è un grande e/o applicazione importante.

    • Il prodotto è stato creato da ArtinSoft (ora Mobilize.Net) e si è evoluta per il VBUC.
  2. 12

    Si potrebbe venire attraverso come un po ‘ sfacciato, ma il tuo cervello potrebbe essere lo strumento migliore da utilizzare.
    Potrebbe essere la pena di ri-scrivere.

    Forse non hai bisogno di un porting. Potrebbe il VB6 essere trasformato in un componente COM?
    Porta COM, chiamata da C#, a casa in tempo per il Giudice Judy.

    • “[…]a casa in tempo per il Giudice Judy” non ha prezzo!
    • +1 per l’idea di farne un COM.
  3. 10

    Come qualcuno che ha fatto un mucchio di volte, questo non è un processo facile. È possibile utilizzare il VB6 per VB.Net strumento come indicato in questa risposta, e quindi utilizzare il Riflettore o SharpDevelop per la conversione in C#. Con il SharpDevelop di conversione, un paio di avvertimenti. Viti il backup di tutti i riferimenti di matrice e pensa che siano chiamate di funzione, e tutti gli operatori logici vengono convertiti operatori logici bit a bit (E diventa & non &&). Con Riflettore si perde un sacco di roba. Anche il Visual Studio converter non funziona su un sacco di progetti di grandi dimensioni, appena si blocca e non viene completata.

    Una volta ottenuto il codice convertito in C#, è necessario iniziare il lavoro vero e proprio. La conversione si ottiene al meglio il 50% del suo cammino, si deve risolvere un sacco di roba (vedrete il vostro codice piena di cose da fare), il refactoring di un sacco di roba, e alla fine si sono lasciati con C# che è una rappresentazione della propria VB6, a meno che non si dispone di molto bello codice VB6 non si vuole veramente essere. Anche tutto il codice con essere piena di VB aiutanti piuttosto che DotNet utilizzando le apposite funzioni (tutte le funzioni di stringa sono aiutanti, piuttosto che oggetti di classe, per examples0. Se è stato utilizzato Varianti a tutti coloro che devono essere riscritti. Se è stato utilizzato un sacco di chiamate API, hanno in genere bisogno di essere stato riscritto.

    Alla fine, si ottiene una base, ma la conversione di un progetto di grandi dimensioni (20-30 forme, 30 classi, 30 moduli) può richiedere diversi uomo mesi. Essere stato riscritto da zero, tuttavia, può richiedere il doppio del tempo e si perde tutta la logica di business. Così, si può fare (io l’ho fatto con 3 o 4 progetti di grandi dimensioni), ma non è la panacea, nessun proiettile d’argento, e qualsiasi strumento che dice che lo farà per voi solo, sta mentendo.

    • se il vostro vero lavoro inizia solo quando il codice viene convertito in c#, perché non si lascia nel vb.net? Sono le persone che fanno l’analisi costi-benefici prendere una decisione informata?
    • Oh, c’è un sacco di lavoro da fare se si converte solo per VB.Net ma non vi è alcun punto nel fare che lavorare in VB.Net se avete intenzione di tradurre in C#, risolvere il problema della lingua che si intende finire in. Abbiamo portato un paio di progetti da VB6 a VBNet, ma i nostri sviluppatori sono molto più produttivi in C#.
  4. 8

    Aprire il progetto con una nuova versione di Visual Studio, la conversione del codice in VB.Net e quindi scaricare .Net Reflector per aiutarvi con il C# trasformazione.

    Buona fortuna!

    • Questa risposta è fuorviante, in quanto la conversione da VB6 è pieno di sottile lordi e cambiamenti nel comportamento. NON fare questo. È meglio avere un piano metodico per la conversione che tratta .NET come piattaforma separata, quindi, basarsi su una qualsiasi delle strumenti di conversione.
    • eppure, io credo che sia un approccio migliore che basta avere un metodo…
    • Buona Fortuna è di destra! Per qualsiasi non banale programma c’è una migliore possibilità di vincere la lotteria di produrre qualcosa di utile con questo metodo. 🙂
    • .Net Reflector non fa un buon lavoro di conversione da VBNet di C#, ci sono tonnellate di etichette, goto, ecc creati dal processo. Utilizzando una semantica converter (Come quello che si trova in CSharpDeveloper o simili) è molto meglio.
  5. 8

    Artinsoft (Ora rinominato Mobilize.Net) fa proprio questo, specificatamente il Aggiornamento Di Visual Basic Compagno.

    Tuttavia, anche dopo l’utilizzo del VBUC ci sono ancora alcune parti del sistema che deve essere migrati/insonorizzate a mano. Ma è di solito un set molto più piccolo del problema originale. E alcuni dei problemi di migrazione sono stati risolti grazie all’esperienza del passato con le migrazioni.

    Artinsoft è la stessa società che ha costruito la procedura guidata che viene fornito con Visual Studio, citato in theraccoonbear post. Tuttavia, se non erro la procedura guidata consente di migrare solo per VB6 VB.Net.

    Full disclosure: io lavoro per Artinsoft

    • Esteban. ci sono limiti al numero di volte che il vbuc può essere eseguito su file? Mi riferisco a questa dichiarazione sul tuo sito web “il rilascio di Licenza per l’applicazione, che permette di eseguire il VBUC più volte sulla stessa VB6 file. “
    • Se non sbaglio ti fondamentalmente essere limitata nel tempo (in genere 1 anno) durante il quale è possibile eseguire la migrazione di volte come molti come si desidera. La licenza è abbastanza permissiva, una volta che si ottiene per l’effettiva esecuzione. Nella maggior parte dei casi ArtinSoft appena si basa sul client che fa la destra con i termini della licenza.
    • Grazie per le informazioni, Esteban, che suona molto meglio che il preventivo mi ha dato, che è indicativo di un bel limite restrittivo.
    • Artinsoft ora stanno offrendo una licenza gratuita per il loro prodotto, in grado di aggiornare 10.000 righe di codice artinsoft.com/…
  6. 4

    La risposta breve è che VB6 e VB.NET (e, di conseguenza, C#) sono lingue distinti, ma correlati lingue. Ci sono molte sottili (Intero essere Int32 invece di Int16) e al lordo delle differenze (grafica, forma, e la stampa motori) tra le due piattaforme. È necessario trattare questo come se si stanno convertendo ad una piattaforma completamente diversa.

    Le questioni trattate in maniera più approfondita qui

    Come Passare una Grande App da VB6 a VB.NET

  7. 3

    Microsoft consiglia di ArtinSoft dell’Aggiornamento di Visual Basic Compagno (VBUC).

    Microsoft e ArtinSoft hanno collaborato per offrire una connessione VBUC in licenza. Il codice sconto riportato di seguito può essere utilizzato per l’acquisto di una licenza che vi permetterà di eseguire la migrazione di un’applicazione fino a 10.000 righe di codice VB6 per VB.NET o C# per libero. Esso può essere applicato anche quando l’acquisto di una più grande di licenza.

    Non è perfetto, codice risultante richiede ancora un sacco di correzioni manuali fino ad compila ma ancora questo strumento è la pena di dare un colpo.

  8. 2

    Una domanda da porsi è: quanto è importante per C# piuttosto che VB.NET? Se si sta convertendo un applicazione di grandi dimensioni, forse si dovrebbe solo aggiornare VB.NET che sarà più conveniente.

    Ci sono alcune caratteristiche in VB6 con esattamente equivalente in C# (la gestione dell’errore, l’associazione tardiva, ecc). Chiedetevi perché vale la pena lo sforzo manuale per la conversione di coloro che, quando si poteva andare a VB.NET che non li supportano.

    E se non credete a me (e nessuno ha votato per la mia risposta, sob sob!) forse ti credere Francesco Balena e Dan Appleman (in un libro Movimento per VB.NET) che sono d’accordo con me.

  9. 1

    A GreatMigrations, lo facciamo a mano, usiamo le nostre mani per sviluppare una VB6/COM del compilatore. Il compilatore legge un VBP (o gruppo di VBPs) e fa riferimento a librerie COM e costruisce un “modello semantico”. Questo modello è estremamente dettagliata serie di tabelle di simboli e di opcode flussi completamente e descrivere accuratamente tutte le informazioni le strutture definite e le operazioni eseguite dal sistema di origine.

    Lo strumento quindi si applica una serie di algoritmi che modificare e ristrutturare il modello per renderlo più compatibile con .NET e, facoltativamente, si applica trasformazioni personalizzate; ad esempio la sostituzione di componenti COM con .NET classi. Le regole di trasformazione sono progettati da persone e creato “a mano” per soddisfare le loro specifiche esigenze.

    Infine, il modello è “eseguito”, ma invece di destinare il modello di dati e l’esecuzione delle operazioni, si crea il file di strutture, modello di dati e le operazioni in notazione della piattaforma di destinazione. Siamo in grado di autore, sia VB.NET e C# che utilizza questo approccio. Abbiamo anche utilizzare questo processo per eseguire la migrazione ASP siti ASPX, (disponiamo anche di un multi-dialetto FORTRAN-a-C prodotto)

    L’approccio non producono pronto per la produzione del software al primo tentativo, ma può essere migliorata e resa per la produzione di “meglio” software modificando la configurazione dello strumento e di rieseguire il processo di traduzione. Il vantaggio di questo strumento è la sua ripetibilità, la velocità e la flessibilità che consente un agile strumento assistita da riscrivere metodologia. IMO, la migrazione squadre che sfruttano il nostro approccio sarà di beneficio per l’allocazione di molte più risorse per la valutazione di alternative di riprogettazione e sviluppo di miglioramenti di processo piuttosto che di ri-raccolta di requisiti funzionali, di mano di codifica e test. Saranno alla fine godere di un più gestibile di sistema e una più fedele riproduzione dell’originale funzionalità dell’applicazione dopo la migrazione, nonché un maggiore controllo e visibilità durante la migrazione.

    Un’edizione di prova del nostro strumento è disponibile qui gmStudio Sentiero Richiesta di Download. Essa vi permetterà di sperimentare con ASP/VB codici fino a 10K LOC e corre fino a 30 sedute.

    • La versione di prova offerti abbastanza inutile, e non è facile per vedere se questo prodotto offre nulla di valore per VB6-clueless convertitori…

Lascia un commento