Einzelnen Beitrag anzeigen

jensw_2000
(Gast)

n/a Beiträge
 
#47

AW: Quo vadis Embarcadero?

  Alt 21. Feb 2014, 21:23
Das stimmt. Es gibt keine VCL und nur eine sehr schlanke RTL (vergleichbar mit der Foundation bei iOS).
Ergo muss man all seinen Code, der auf der VLC oder der riesigen Delphi RTL basiert anpassen.
Wir habe das alle (ansatzweise) auch schon innerhalb von Delphi hinter uns, weil RTL und VCL auf Grund der von Firemonkey, iOS und Android komplett umgemodelt wurden. Bei Oxygene muss man halt die GUI neu machen, da es keine VCL mehr gibt. Das ist analog zu der Umstellung VCL zu FMX, richtig? Nur dass man anstatt FMX eben WinForms, Silverlight oder WPF benutzt und die RTL Dinge aus den .Net Namespaces holt, bzw. aus den IOS- oder Android SDKs bzw. Sugar.
Da ist es sehr hilfreich, wenn man seine Projekte zuvor in Delphi so aufgebaut hatte, dass UI und Implementation weitgehend voneinander getrennt waren. So ist es auch bei der VCL-FMX Migration.
Für den verbleibenden Delphi Code hat Oxygene dann zwei grundlegende Sachen zu bieten. Zum Einen gibt es den Oxydizer (Delphi Code in die Zwischenablage kopieren und in Oxygene als Oxygene Code wieder einfügen.). Solche Oxydizer gibt es für Java, C#, Delphi und (aktuell noch Beta) ObjectiveC. Zum Anderen hat Oxygene einige Kompatibilitätsoptionen, die dafür sorgen, dass der Kompiler "klassische" Delphi Syntax eher "gerade rückt".
Beide Migrationshilfen machen natürlich keinen 1:1 kompilierbaren Code. Aber es hilft sehr.

Also zusammengefasst.
- UI wegwerfen (wie beim VCL/FMX Wechsel)
- eingebundene RTL Units rauswerfen und durch .Net Namespaces ersetzen (anstatt "uses DateUtils, SynObjcs" nun "using System, using System.Threading") (ähnlich wie beim RTL Umbau für FMX & Co.)
- .Net, iOS oder Java Klassen anstatt Delphi Klassen benutzen (dafür hat Delphi keinen leider keinen richtigen Ersatz)

Ich habe seit Montag einen in Delphi geschriebenen Service weitgehend migriert (reine Größe in PAS Dateien 4,8 MB, keine Lust jetzt Zeilen zu zählen). Zugegeben, so ein Service hat keine Formulare. Daher war es nur "Code schupsen". Trotzdem ist es leichter als ich erwartet hatte. Nachdem der Code wieder kompilierbar ist wird das Refactoring aber sicher einige Wochen dauern. Unter Delphi sind viele Sachen einfach codelastiger als unter .Net. Mit der Oxygene Syntax kann man das Ganze nochmal gegenüber vergleichbarem C# Code deutlich zusammenkürzen.

Geändert von jensw_2000 (21. Feb 2014 um 21:38 Uhr)
  Mit Zitat antworten Zitat