Adam’s November 2017 Meeting Feedback

Meeting Agenda

  • Talk: Utilising JSON to move small data sets from server to mobile and possibly back – Peter Edwards
  • Talk: Integrating Delphi & .NET code together – David Capps
  • Nugget: Transaction amount allocation engine – Andrew Cutforth

Adam’s Feedback

Peter “Rest on your terms”
Peter discussed the new third party component CDATA REST data connectors for RAD Studio, complaining about the £1,000 – £2,000 annual price tag, and suggesting cheap and free ways of rolling your own REST Connectors.
Peter showed how to create your own JSON End-point (to allow web-devs and others to access your data) using DataSnap Server. Lots of detail and gotcha’s, plus the weirdness of the DataSnap project’s “MetaData” Object.
Setting values of this object seemed to randomly generate output JSON … once you understand how it works it is all good, but typical of the weird behind the scenes way that some Delphi components seem to work.

David showed a frankly pretty amazing session. His company have written a compiler which generates a C# DLL from Delphi code. No you did not read that wrong.
They write Delphi, compile the DLL and it is a “C# DLL” accessible from any C# / Visual Studio program.
David’s session went through all the ways that a C# program can talk to a Delphi DLL and vice versa, with the exclusion of COM. It was detailed and showed the draw-backs of each one. He showed how with all normal ways of exchanging data between C# and Delphi the differences in language behaviour around Object management and disposal cause issues. He touched on basic DLLs, DLLs extended with RTTI and a couple of other techniques, before going on to show the “total” solution: Use the one language to generate code in the other!
… hats off to him for an amazing piece of work.

Andrew showed code for recursive iteration through long lists of numbers to match one side with the other. Exact matches, total matching and partial matching were discussed. In a 30 minute session there was not much time to delve into code, but the hazards of recursive routines throwing up very slow processes and Andrew’s methods for pulling out after a certain amount of time are obviously useful.

Further information and links for all the talks are available in the Members Group