Tja, dat is helaas wel vaker het geval. De VCL is wat dat betreft bedroevend qua uitbreidbaarheid en aanpasbaarheid. Het was vooral een heel gepuzzel om 'm toch te kunnen gebruiken. We hadden uiteindelijk ook onze eigen componenten kunnen schrijven, of een 3rd party library kunnen zoeken, maar we hebben in dit geval gekozen voor de standaard componenten, juist omdat de verwachting is dat dit soort kinderziektes en onvolkomendheden waarschijnlijk nog wel gladgestreken worden. Rest zal tenslotte nog wel een poosje blijven, en Embarcadero heeft er alle belang bij om die componenten goed te krijgen en te houden.
Uiteindelijk was het ook niet heel ingewikkeld. Het probleem is vooral dat Delphi uberhaupt geen nullables kent. Spring heeft die wel, maar dat is intern in feite een record met een IsNull vlaggetje en de daadwerkelijke waarde. De JSON conversie van Delphi snapt niet hoe je een string in een stuk Json moet vertalen naar zo'n record (of andersom), dus dat hebben we moeten hacken. Verder viel het wel mee. Dat soort maatwerk zal je ook altijd wel houden, en ik verwacht niet dat Embarcadero voor alles een standaard oplossing biedt. Het was alleen vervelend dat het niet makkelijk is om dit te doen. Ik zou verwachten dat je gewoon zelf een marshaler voor specifieke typen zou kunnen registreren, maar het was wel iets meer werk dan dat.
Bookmarks