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.

Creating interactive web sites with Delphi

Earlier this week I presented a webinar with fellow Embarcadero MVP and TMS Evangelist Dr. Holger Flick about the superb TMS Web Core product.

You can view the official replay here:

TMS Web Core allows you to create fully interactive web pages using Embarcadero Delphi as the ‘back end’ programming language. When you hit the compile button instead of a traditional Windows executable being created you get instead pure HTML pages with CSS ready to copy over to a plain old regular web server – no further requirements beyond that.

The programmable functionality of the web application is delivered as a JavaScript file. You don’t have to write or even understand JavaScript – you just write Delphi code and the compiler converts that code into the JavaScript for you.

Web Core really highlights how easy and yet powerful the Delphi language is for writing programs. The ‘strong typing‘ is part of the secret sauce and the “R” in RAD truly demonstrates itself to mean “rapid”. Using Delphi you can frequently and repeatedly produce robust, performant and richly functional applications with embarrassingly minimal effort. Seriously, it’s sometimes a little too easy and you think to yourself, “did I miss something?” – but no, it doesn’t have to be hard to create applications – and TMS Web Core extends that understated power to creating interactive web sites using Delphi.

I can’t even begin to tell you how game- changing TMS Web Core is for Delphi programmers. There are creditable alternatives such as the venerable IntraWeb, but TMS Web Core feels a little more ‘right’, to me, and genuinely the experience is one of creating a regular Delphi application which just happens to pop out as a set of HTML pages. No mess, no fuss and easy to put up on to any web host on any hosting service of your choice.

I’m going to stream some more about this soon as I think the way I would present the product is slightly different to Holger – not better or worse, just an alternative angle!

Holger has written several excellent books on using Web Core and Delphi in general. He’s an excellent developer with broad experience, even working for a time for Borland. I recommend taking a look at the books by clicking here.

Live webinar with Holger Flick demonstrating TMS frameworks plus two new books

This past week I helped host an Embarcadero Webinar with Dr Holger Flick who, like me, is an Embarcadero MVP but in addition to that he’s also a tech evangelist for TMS Software.

Holger has written some books on how to create Delphi apps using various TMS frameworks as well as their excellent TMS Web Core which I absolutely love.

The webinar is an hour long and you can see the official replay for it here:

You can get Holger’s books either directly from the links on his website here: https://flixengineering.com/archives/1290 or via various sites like Amazon. Visit Holger’s pages to view the details.

The lock-down continues – so we stream more live coding

Are you at a loose end and like watching people code live and enjoy hearing coders chatting about code and generally hanging out? Then you might want to subscribe to the Apocalypse Coders live stream.

It’s streamed live on Saturdays and Sundays – sometimes for as long as four hours – and features a group of Embarcadero MVPs and Delphi coders creating a cloud-based card game live on the stream using a multitude of technologies.

I’m one of the MVPs on the stream and you’ll see us using all sorts of coding methods and techniques to produce the server-side services as well as several versions of the client-side apps to showcase various technologies including VCL, FMX/Firemonkey and TMS Web Core. We intend to produce clients for Windows, Mac and Linux as well as a browser-based web client and we might even stretch out and produce iOS and Android clients too if the mood takes us.

We’re not intending to get too serious, it’s more to stream coding in Delphi rather than a huge formal tutorial, but even so we might lay out a few techniques which fellow coders may not have seen or wanted to know more about.

One of the MVPs, Andrea has produced a playlist of the most recent stream as well as an online Delphi Italia event here:

I’ll be there again this Sunday at 9am CST, 8am MNT, 14:00 UTC / BST – you can subscribe to Craig’s ChapmanWorld YouTube channel and get notified when we go live and catch the stream by going here: https://www.youtube.com/c/ChapmanWorldOnTube

Live coding – using TMS Web Core

Streaming live coding in Delphi

If you’ve been using Delphi for a while you’ve almost certainly come across the fabulous TMS Software with their enormously useful and comprehensive set of components. If you haven’t heard of them yet it’s worth clicking on the link and taking a look at what they have to offer – you’ll definitely end up saving yourself a massive amount of time using something ready-made from TMS rather than writing a whole bunch of code of your own.

Anyway, recently, Craig Chapman, Frank Lauter and myself have recently been streaming live coding on Craig’s Chapmanworld YouTube channel. For the last couple of weeks we’ve been writing a game loosely based on Apples to Apples and/or Cards Against Humanity type games.

The code is all open source and purely for the fun of it to demonstrate various coding techniques. You can follow along on the stream and also get the code from the GitHub repo which can be found here: https://github.com/ApocalypseCodingGroup/ApocalypticCards

This week I took over quite a large part of the streaming time to show TMS’ Web Core components which allow Delphi programmers to produce fully-capable web apps from within the Delphi IDE which are then transpiled into pure HTML and CSS. That’s right: write Delphi object Pascal code, design the forms and HTML pages in the IDE in the normal way – and out pops a real self-contained web app all ready to go.

The stream is quite long, 4 hours, but I start getting down to actually using TMS Web Core and writing code around 1 hour 6 minutes in. The embedded video below starts from that point onwards although you can wind back to the start of the stream if you want to hear Craig, Frank and myself discussing various things (and getting the kinks out of the streaming technology).

We’ll be streaming every Sunday at the same time at least for the next few weeks – 8am CST, 2PM BST, 1pm GMT. Go to the Chapman World web pages for more details and subscribe to the YouTube channel to get notifications of when we’re next live again.

TMS Web Core for Apocalypse Cards