Tja, das ist des Pudels Kern. Ich habe jahrezehnte lange Delphi-Erfahrung und bin kein zwanzig mehr... (ja ok, schreiben wir's auf: Ich bin 44
). Ich bin immer hoch interessiert Neues zu lernen, doch in diesem Projekt muß ich vor allem effizient (ließ "schnell fertig") sein. Ich weiss genau, dass ich in C#/WPF erst eine steilere Lernkurve hätte... Deswegen schien Prism attraktivt unterstützt werden???
Du hast ja bis jetzt noch nicht viel über das Projekt gesagt. Da wundere ich mich schon das die Leute hier so fleißig Vorschläge mach was man verwenden soll.
- Wie viele Zeilen Code hat das Projekt?
- Wie viele Dialoge werden aufgerufen?
- Wie viele Entwickler programmieren daran herum?
- Wie häufig muss die Anwendung weiterentwickelt werden?
Eine komplette Neuentwicklung kann eine Chance sein, auf jeden Fall birgt sie auch große Risiken.
Als Entwickler neigt man dazu die Code-Qualität schlecht zu reden und würde nur zu gerne eine Neuentwicklung starten. Oft wird dabei die Menge an Code (der zwar grauselig aussieht, aber funktioniert) übersehen die es dabei zu ersetzen gilt.
Wenn nur Du an der Anwendung programmierst musst Du bei einer neu Entwicklung auch immer noch die Wartung bewerkstelligen. Da kann dann schnell jeder gut gemeinte Zeitplan ins Hintertreffen geraten. Bei einem gleichzeitigen Umstieg auf eine neue Programmiersprache/Entwicklungsumgebung wird es schwer sein die Anwendungsqualität gleich hoch zu halten (Und die funktionnalität muss ja da sein sonst hätte Ihr es ja schon längst in die Tonne getreten).
Meine Annahmen: Du bist der alleinige Entwickler/Tester/Dialog-Designer, die Anwendung ist groß (100 Tabellen, 100 Dialoge, min. 250000 Zeilen Code). Der Datenzugriff erfolgt großtenteils noch Tabellenorientiert. Da dann auch noch gilt: "doch in diesem Projekt muss ich vor allem effizient (ließ "schnell fertig") sein" würde ich zu folgender Strategieraten raten:
Schritt 1: Komponenten Migration- Migration der Anwendung auf Delphi 2700 (um die Unicode-Migration erst mal heraus zu halten)
Alle nicht mehr verfügbaren Komponenten und Bibliotheken durch aktuelle (die es auch für DelphiXE gibt) ersetzen.
- Diese Version ausliefern und mit arbeiten lassen
Schritt 2: Datenbank Migration- Die BDE durch Advantage Database ersetzt (die kommt sehr gut mit dem tabellenorientierten arbeiten zurecht und ist trotzdem eine super SQL-Datenbank, sehr leicht zu installieren und zu pflegen.
- Diese Version ausliefern und mit arbeiten lassen
Schritt 3: Unicode Migration- Immer noch Delphi 2007. Durchforste deine Units nach alten String verarbeitenden Routinen die vielleicht sogar noch mit PChar arbeiten und ersetze diese durch Standardversion aus SysUtils/StrUtils oder der JCL (nicht JVCL).
- Diese Version ausliefern und mit arbeiten lassen
- Migriere auf Delphi XE
- Diese Version ausliefern und mit arbeiten lassen
Du hast nun dein Anwendung in einer Entwicklungsumgebung die richtig Spaß macht, mit Du Dich nach kurzer Einarbeitungszeit sehr effizient arbeiten kannst und die Dir eine gute Unterstützung beim Refactoring dein Anwendung bietet.
Schritt 4: DesktopDB nach SQL Migration- Ersetze tabellenorientiertes arbeiten durch SQL.
- Nutze die Features deiner Datenbank (Stored Procedures, Triggers, Volltextsuche)
- Diese Version ausliefern und mit arbeiten lassen
Schritt 5: Modernisierung/Weiterentwicklung- Verbesser nach und nach den Code (Refactoring)
- Entwickle deine CleanCode-Mentalität
- Ändere immer das zu erst das deiner Firma (die bezahlen Dich) den meisten nutzen bringt
Egal wie Du Dich entscheidest, ich wünsche Dir viel Erfolg.