Book Review – TMS WEB Core Author: Dr. Holger Flick

Picture of Margaret Hamilton with a printout of her source code for the Apollo navigation system - source: https://commons.wikimedia.org/wiki/File:Margaret_Hamilton_-_restoration.jpg
Not Ian Barker

I’ve become book-wealthy. This is the status you achieve when you have lots of books stacked up and their critical mass is such that they start to softly cry out to you for attention. I am the kind of programmer who revels in – and is still slightly awed by – the fact that he is paid to write programs when really it’s the thing he loves to do most in the whole world. Programming: I love it. I love designing code. I love writing code. I love writing about code and I love reading about code.

Right now, sitting on my “do this” shelf I have just shy of a half-dozen of Delphi coding books. New Delphi coding books too, not slightly moth-eaten getting-a-bit-out-of-date Delphi coding books. And because they are all shiny spanking new books, I’ll write some reviews here in case it helps you out.

The first one to join my wonderous collection is specifically about TMS WEB Core from TMS Software which is perhaps why it’s called “TMS WEB Core, Web Application Development With Delphi by Dr. Holger Flick”.

Before I dip into the review, I feel I should point out a few things. Those of you who follow along with the Embarcadero Webinars and conferences may have seen me talk about TMS WEB Core before. I make no secret of the fact I think it’s an excellent framework. You may even have seen me jointly present a couple of videos with the author, Dr. Holger Flick. Holger and are friends. We originally bonded over our shared love of Delphi and as fellow MVPs based in the USA; but we share some other interests since we are both Europeans from slightly liberal socialist-leaning countries who are married to Americans and live in the Southern United States. It’s a challenge sometimes but I think we both like the sunshine here a little more than the wonderous damp gray of your average Northern European climate. That said, Holger is far enough away I can say mean things in this review safe in the knowledge I will be hidden in a tool shed before he can drive up and wreak Teutonic revenge.

Holger’s written style is, much like his spoken English, precise, brutally accurate and perfectly proper in the way only an English-speaking German can be. Where I err on the side of colloquial with a plump vocabulary of fluffiness, Holger writes like he cut each sentence into the paper with a razor blade. Given that he used to work for Borland in a QA position back in the mists of time it’s no surprise that he slots together the chapters and examples like a finely engineered craftsman. I know in the past he’s had some discomfort from someone trying to score low blows by trying to criticize his writing and sneeringly saying that “a native English-speaking author would have written things differently” but <politician mode>let me be clear</politician mode> that’s a stack of jealous, whiny, claptrap. There are some syntactical constructs Holger uses which are perfectly valid yet hint at his German origins but you’ve got to be a bit of a pedantic word wanger like me to be in any kind of position to throw some shade. As my daughter would say: fight me.

The book is written so that it comes in the form of sections. Each section starts with a contents page. It doesn’t include an index. Personally, I think an index in any technical book is, for me, pretty useful when it comes to the point where you’ve read the book and return to it later as a reference. It’s a lot harder to find “that bit where it tells you how to parse JSON” without an index. When Holger reads this, I’m sure he and I will have some kind of frank exchange of views but, to coin an Americanism, it’s a hill I’ll die on. There is a master contents page at the start which helps make up for it. If you’re an author and you’re reading this – add an index to your book if it’s a technical book. Please?

But this is the only thing I can waft a critical finger at – the rest is an absolute cornucopia of Very Good Things.

Honestly, it’s a cracking good book. It’s a solid inch and a quarter thick and covers just about everything you need to know with regard to TMS WEB Core ranging from installing and configuring it in RAD Studio / Delphi, through basics like a simple single page app, debugging, progressive web apps or PWAs, Electron apps (shriek!) to full client-server database-driven web apps, drag and drop, bootstrap, maps, interacting with web services and even the Swagger UI. There is more to TMS WEB Core. You could write another three or four books about it and still not cover everything. It’s a nebulous subject.

I don’t want to go into massive detail about the contents because it’s pretty comprehensive – but you will learn, with Holger’s help, how to go from knowing nothing about TMS WEB Core to being able to write fairly complex web apps using nothing more than pure Delphi Object Pascal code.

If you want to know some more detail go to the Amazon link here: https://www.amazon.com/dp/B086G6XDGW/ their “look inside” feature will allow you to browse the full main contents page.

One of the key strengths of TMS WEB Core is that you don’t need to know HTML or CSS, although it helps, and you will be thoroughly shielded from the depths of unpleasantness that is JavaScript. You write regular Delphi code – and out comes regular HTML website pages with CSS and JavaScript, all ready to go. You either just put it up on some normal web space like GoDaddy or, (even better) DreamHost – or some other place with a webserver such as your a corporate intranet – and it works just like a regular web page, except it’s a program you wrote, using Delphi code. It’s magical. Holger fully covers this, of course.

This book, combined with the attendant code samples which are available online, as well as the excellent sample apps from TMS themselves, will get you to some basic but fundamental mastery of creating web apps using Delphi. When I have demoed Web Core in the past it always blows people’s minds that I hit F12 on the web browser, set a breakpoint and up pops lines of Delphi source code. Yes, you can set breakpoints and debug the website and it shows your DELPHI object Pascal code. It’s a total mind-frack. Add into that things like the TMS FNC Components and some database stuff like XData – and you have some true power going on there; in fact things which would be quite long-winded and fiddly with other languages such as .Net. With Dr. Flick’s TMS WEB Core book you’ll know how to do all of this and a lot more besides.

Book: TMS WEB Core.  Web Application Development with Delphi
Author: Dr. Holger Flick
Author Website: https://flixengineering.com/books
Available in: English, German
Amazon US Direct Link: https://www.amazon.com/dp/B086G6XDGW/

For more about TMS WEB Core: https://www.tmssoftware.com/site/tmswebcoreintro.asp

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.

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