Write Delphi Object Pascal Code – and out comes a fully working web app

A few days ago I helped host an Embarcadero webinar featuring representatives from TMS Software and AtoZed. This presentation featured a round-up of recent presentations on TMS WEB Core and Intraweb which are two of the THREE web frameworks Embarcadero are currently including in their special holiday promotion which you can find here: Special Offers on RAD Studio, Delphi & C++Builder – Embarcadero. The other framework is UniGui. Click on the preceding link to read more about it all. The same offer also gives you three years of update subscription updates – i.e. upgrades to the latest versions for the next free years included – along with other mind-boggling things like Architect for Enterprise pricing and so on. I’m not an Embarcadero employee although I am an Embarcadero MVP but this is a pretty good offer, I think.

Anyway – on the video replay the Q & A section doesn’t have any slides but we do mention some links being pasted into the chat window which you can’t see in the video. Those links are listed below so you don’t miss out.

I’ve used all three of these web frameworks at one time or another. I have particularly used both Intraweb and TMS WEB Core for commercially available products I’ve written and which are in use in 1000+ customer locations. I can vouch for both systems – and each has their own strengths.

Intraweb is a lot more like creating a Delphi app which then runs either as an ISAPI dll or stand-alone web server exe or service. It has a few idiosyncrasies which you very quickly get used to but overall it’s great to use and has been around for many years. Many Delphi programmers are already familiar with it due to the inclusion of a ‘free’ Embarcadero version of Intraweb and the ability to upgrade that free version to remove some of its restrictions like number of concurrent connections and so on. Go to the AtoZed site to read more. Chad mentions in his section of the video that they’re currently working on version 17 of Intraweb which will add a load of new functionality. I can’t wait to see that in action and I’ll do some reviews once I get my hands on stable copy.

TMS WEB Core I’ve discussed before both here and at a few webinars. It produces pure HTML 5, CSS and JavaScript right from your regular Delphi code. In essence you write a normal Delphi program and when you hit compile out comes the app as a set of web pages with the JavaScript and CSS to make it work on any standard web host or web server such as Apache. If you have a TMS All Access subscription you get WEB Core included and if you use their FNC components you can write code and generate forms which will work cross platform on Windows, macOS, Linux and the web. TMS WEB Core also allows you to easily turn that set of web pages into a stand-alone progressive web app (PWA) and an Electron app. I took part in some comparitive research recently and created the required test app as a WEB Core app in around 40 minutes and then took that and produced a PWA in an additional 6 minutes including writing notes and in a further 7 minutes after that created the same app as an Electron app. I reused the forms and the back-end code. It was that easy.

Anyway, the participants in the above video are:

and myself who was hosting on behalf of Embarcadero’s Jim McKeeth (Jim was unable to make it at short notice). Video playback was managed by April Calderon of Embarcadero.

Comparative Research Project

I’m going to publish the comparative research project code in the next day or so.

The comparative research code can be found here: ComparisonResearch/calculator/delphi-vcl/barker at main ยท Embarcadero/ComparisonResearch (github.com)

This code contains the same program produced as a bunch of apps written in pure VCL, Fluent UI VCL, WEB Core, PWA and Electron. It was a fun project to be involved in and really demonstrated the power and brevity of Delphi’s Object Pascal language and how with a bit of thought the amount of code reuse you can achieve without compromising on the power or syntax is pretty extraordinary.