Domanda

Vogliamo migrare da Delphi 7.0 a Delphi 2009, per stare al passo con un IDE moderno e la tecnologia attuale. La nostra piattaforma di destinazione è .NET. Qual è il modo migliore per raggiungere questo obiettivo?

È stato utile?

Soluzione

Mi occuperei della situazione Unicode con la gestione delle stringhe che è arrivata dal D2007 al D2009 - le modifiche coinvolte in questo passaggio potrebbero influenzare molto la tua applicazione (solo tu puoi dirlo). Inoltre, dovrai considerare quali strumenti / librerie / componenti di terze parti stai utilizzando. Non tutto ha ancora fatto il salto su D2009, ed è probabile che alcuni componenti meno popolari potrebbero non fare mai il salto.

Un percorso più intelligente potrebbe essere quello di migrare da D7 a D2007 (che è un percorso ben battuto, in gran parte indolore con molte vittorie e miglioramenti meritevoli). Quindi ti trovi in ??una piattaforma Delphi moderna, stabile, abbastanza aggiornata e supportata da cui puoi valutare meglio un salto in .Net.

La mia opinione su quest'ultima fase farebbe eco ad alcuni degli altri commenti, sia chiaro - a meno che non ci sia una grande vittoria che ottieni da .Net, non vedo perché ti dovresti allontanare da Delphi. Con i requisiti moderni di vari runtime e service pack, penso che Delphi stia diventando uno strumento sempre più fattibile pertinente per Sviluppo Win32. O evolve il codice da D7 a D2007 / D2009 o passa da D7 a .Net; fare uno e poi l'altro sembra un po 'strano!

Altri suggerimenti

Ricorda che D2009 è una versione win32 e non .net. Suppongo che tu voglia fare un percorso in due passi, prima spostati su D2009 e poi su .net?

Fortunatamente, Delphi è una piattaforma molto stabile ed è molto più facile convertire le vecchie applicazioni all'ultima versione, ma hai cose diverse da considerare.

Se l'applicazione utilizza BDE per accedere a un Db, convertilo per utilizzare un'altra tecnologia, come ADO o DBX.

Se si utilizzano componenti di terze parti, assicurarsi che esistano versioni per D2009 e / o .NET

Un aspetto molto delicato è la gestione delle stringhe. Se utilizzi stringhe "normalmente" non dovresti avere grossi problemi, ma se usi stringhe come " buffer di byte " come fai in C, allora devi stare attento e provare a riscrivere quelle parti. Una regola empirica è "provare a sbarazzarsi di tutti i PChar nel codice".

La migrazione da Delphi 7 a Delphi 2009 è probabilmente semplice, ci sono state solo piccole modifiche (come il passaggio recentemente discusso da ANSI a stringhe Unicode). Tuttavia, il passaggio a .NET non è così semplice. Sebbene esista un VCL.NET che rende possibili le GUI di migrazione, altre cose gravi non funzioneranno. Quindi potresti pensare di avere il codice Win32 E il codice .NET, riunendoli tramite COM. (Spero che tu già conosca COM, altrimenti questa probabilmente non è un'opzione ;-))

Delphi 2009 si rivolge solo a Win32. Per .NET è possibile utilizzare RAD Studio 2007 fornito con Personalità di Delphi per .NET e dovrebbe essere abbastanza facile eseguire il porting di una semplice applicazione VCL su VCL.NET destinata al framework .NET 2.0. Tuttavia, se si utilizzano componenti e librerie di terze parti, è necessario verificare anche le relative alternative .NET.

Se ritieni che questo sarebbe un lavoro eccessivo o se desideri indirizzare l'ultimo framework .NET, è meglio riscrivere il tuo progetto da zero usando Microsoft Visual Studio e C #.

Disclaimer: non ho esperienza nel porting di progetti Delphi Win32 su .NET, quindi questa è solo la mia modesta opinione.

Il porting non è mai facile. Tuttavia, la semantica tra Delphi e .NET è molto stretta, poiché entrambi avevano Anders Hejlsberg come architetto principale. Molto probabilmente dovrai sostituire le chiamate VCL Win32 con le loro cose VCL.NET equivalenti.

Potresti voler eseguire l'aggiornamento a CodeGear RAD Studio, poiché ciò ti consentirà di avere un IDE per entrambi i linguaggi Delphi e .NET (principalmente C #).

Molte volte sono stato in grado di ridurre il controllo delle sostituzioni passando da una tecnologia all'altra. Ad esempio, sono stato in grado di sostituire i controlli del database BDE con i loro sostituti ADO.NET, senza dover cambiare il codice. Alla fine, possiedi il codice e conosci meglio di chiunque di noi.

Perché vuoi scegliere come target il framework .NET, quando hai un ottimo supporto per gli eseguibili Win32? Delphi è già una piccola parte del settore e Delphi con .NET è ancora più piccolo. Delphi sarà sempre un cittadino di seconda classe nel mondo .NET. Delphi è già un cittadino Win32 di prima classe.

Seguendo la risposta di Giacomo sopra, Se stai usando BDE, allora posso suggerire il DAC di MicroOlap http: // www. microolap.com/ - Questo ti farà risparmiare un sacco di tempo nel non dover convertire il tuo codice in qualcos'altro. Sto usando PostgresDAC, questo prodotto è molto stabile e veloce.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top