CodeRage XII Modernizing your VCL application

Thank you for watching my session on Modernizing your VCL application at CodeRage XII.

If you want to watch the video again, you can use this YouTube link:
https://youtu.be/qKy1QEuj4Es

Slides, source code and database for this webinar is available for download here:
https://dannywind.nl/get/DannyWind_ModernizingYourVCLApplication.zip

The zip file is password protected to add some level of security to it.
The password is coderagexii

Additional Tips:

The Windows-10 styles can be modified or appended with your own styling using Tools | Bitmap Style Designer.

When using a TTask to get things done in the background, avoid sharing resources with the main thread. Either disable access from the main thread to these resources or create copies for the TTask. After that feedback the results to the main thread using TThread.Queue or TThread.Synchronize.

When using TTask, use a task-based approach just like you would in the real world when you let a colleague do a task. Just delegate an entire task with the required resources (memory, file handles, connections, datasets) to a TTask and allow the task to feedback its results at the end of the task. Avoid using locking as this can easily lead to deadlocks, waitlocks and other blocking effects.

When using Change Views keep in mind that the first time a subscription is activated on the Change View it will return all records, as it does not yet know which records you have already received for the specified subscription identifier.

Change View subscription identifiers should be unique but repeatable for each running application instance. Create an identifier, such as [MachineName+UserName] and use it to activate the subscription. If the application is stopped and then run again, it can activate the subscription using the same identifier, so you will get the changes back again.

CodeRage XII – Modernizing your VCL application

If you haven’t already sign up for this years CodeRage XII conference.

CodeRage XII is an online conference for three days starting Tuesday Nov 7th on 13:00 in the afternoon (CET, Amsterdam time), until Thursday Nov 9th at one a clock in the night.

There are a lot of interesting sessions this year, covering everything from JSON to Linux Libraries, Amazon data storage to running on Arduino with Visuino. And many more.

Key speakers this year are Robert C. Martin on Clean Coding and Agile, Marco Cantu on ExtJS, and of course our own Paweł Głowacki on Amazon data storage integration.

I’ve got a session as well, on Modernizing your VCL application. It takes a Webshop BackOffice application and re-styles it for Windows-10 and 2017, removes the user wait times by using FireDAC Async SQL and TTask from the Parallel Programming Library (PPL) and uses Interbase Change Views to take a first step to changing from a save/load based approach to a state-based application, where the user always has the latest data available.

Delphi 10 Update Training – 14 en 15 december 2017

Ben je al wat langer met Delphi bezig, kom dan naar de Delphi 10 Update Training om je kennis op te vijzelen met de nieuwe features en mogelijkheden.

Op donderdag 14 en vrijdag 15 december 2017 stomen we je klaar voor al je goede Delphi voornemens in 2018 met de mooiste, belangrijkste en nuttigste onderwerpen behandelen die Delphi erbij heeft gekregen sinds Delphi 2010.

We behandelen in deze twee dagen heel veel Delphi onderwerpen; Unicode, FireDAC, Parallel Programming (PPL), FireMonkey, Livebindings, maar ook advanced language features zoals Generics en anonymous methods.

Er is ook ruimte voor eigen inbreng en vragen. Heb je interesse in Interbase ChangeViews bijvoorbeeld, dan kunnen we dat ook behandelen.

Meer info en inschrijven voor kan hier.

Delphi “The LAB” – 19 september 2017

Er komt een mooi evenement aan met de prachtige gelegenheid om rustig te spreken met de presenters van het evenement in “The LAB”.

Neem de tijd om bij een kopje koffie te praten met elk van de presenters in het restaurant van het Evoluon, maar volg ook de interessante sessies van sprekers als Jens Fudge, Andrea Magni, Bob Swart en David Millington. Vergeet ook de CurieWise C++ Builder sessie van Ludo Stroetenga niet.

Mijn sessie op dit seminar gaat over het oppeppen van bestaande Delphi VCL applicaties. Verplaats de gehate zandloper naar TTasks, poets je User Interface op met fraaie controls en gebruik enkele nieuwe technieken om je code indrukwekkend sneller te maken. In “The LAB” heb je ook nog eens uitgebreid de tijd om me vragen te stellen over het gebruik van TTask, User Interfaces of over het maken van een goede espresso.

The LAB, where you get to spend time with Delphi presenters

The LAB

PDF met de sessies:
https://www.barnsten.com/media/factsheet/Agenda_The_LAB.pdf

Inschrijven kan hier:
http://embt.co/2udBG5p

Accelerate Your Delphi Development – European Delphi Tour 2017 – 19 mei 2017

Op 19 mei 2017 hebben we een evenement dat net iets anders is dan anders. Het nieuwste van Delphi 10.2 Tokyo is namelijk niet alleen de focus van deze dag. Op verzoek van deelnemers aan eerdere evenementen laten we die dag ook zien op welke manier je je bestaande Delphi applicaties kunt moderniseren met de recente features van Delphi.

Natuurlijk zie je ook de nieuwste features van Delphi 10.2 Tokyo; zoals back-end software op Intel Linux, MariaDB toegang, en demo’s van enkele van de fraaie nieuwe VCL en FMX componenten. Paweł Głowacki laat al dat fraais natuurlijk graag zien. Maar er is meer dan dat alleen.

Is je applicatie nu nog Client/Server of maak je gebruik van eigen Datasnap? In zijn sessie laat Bob Swart zien hoe je gebruik kunt maken van RAD Server voor een snellere Time-To-Market en een eenvoudige manier om in te stappen in multi-tier services, zonder dat je zelf servers hoeft te gaan hosten.

Is je applicatie nu nog straight VCL? In mijn sessie laat ik zien hoe je in korte tijd met beperkte inspanning de User Experience significant kunt verbeteren. In deze sessie zet ik een VCL applicatie om naar een moderne User Interface met tactile feedback, een dashboard en technieken als background threading en Async SQL. Gebruikers verwachten een applicatie die eenvoudig toegankelijk en overzichtelijk is, maar ook één die onmiddelijk reageert en die samenwerkt i.p.v. vertraagt. Oh ja, uiteraard mooi gestyled, dat ook.

Meer info en inschrijven:
Accelerate Your Delphi Development – European Delphi Tour 2017 – 19 mei 2017

Delphi in het onderwijs – 20 april 2017

Als u als leraar kennis wilt maken met de mogelijkheden van Delphi als programmeertaal in het voortgezet onderwijs dan kan dit nu op de Slim bijeenkomst op 20 april 2017, deelname is gratis, de locatie is het SLB diensten kantoor te Amsterdam.

In deze bijeenkomst laat ik samen met Barnsten zien waarom Delphi voor leerlingen de beste taal is om te leren programmeren.

  1. Delphi is Pascal, en Pascal is gemaakt om te leren programmeren
  2. Delphi kent een lineaire leercurve, vanaf uur 1 maak je al je eerste eigen applicatie
  3. Delphi bestrijkt het hele spectrum van low-level CPU tot aan high-level classes en frameworks
  4. Delphi applicaties compileer je naar alle platformen, Windows, Mac (OSX), iPhone (iOS), Smartphones (Android) en web servers (Linux)
  5. Delphi spreekt de jonge developer aan met Apps op de Android SmartPhone en met IoT communicatie met gadgets

Meer informatie over de locatie en inschrijving vindt u hier:
https://www.barnsten.com/nl/events/details?events_id=278
https://www.slbdiensten.nl/slb/nieuws/evenementen/infosessie-programmeertaal-delphi/inschrijven-infosessie-programmeertaal-delphi#meerleren

Delphi 10.2 Tokyo

Delphi 10.2 Tokyo has been released today!

The new feature I’m most excited about is the support for Linux server-side. We can now build server applications on Linux, allowing us to deploy webservices and all other kinds of server-side stuff to all those Linux servers out there. Officially only Ubuntu 16.04 LTS and
RedHat Enterprise Linux 7 are supported, but with some tinkering you can also run on some of the other Linux platforms. Other good news for Linux compilation, it is seriously fast!

A feature that’s important to me is Multi-Threading Support for TBitmap, TCanvas and TContext3D. This will allow you to more easily render images in a background thread. Games anyone? Actually I plan to use this feature for my Delphi presentation for teachers at the Dutch Gymnasium schools. Thinking that using a gaming element could get teenage students enthusiastic about programming.
https://www.slbdiensten.nl/slb/nieuws/evenementen/infosessie-programmeertaal-delphi

But there is a lot of other stuff to look into. If you go low-level you might like the fact that the FireMonkey framework now no longer has a purgatory class, making it more predictable an stable.

For the full list of new things take a look at http://docwiki.embarcadero.com/RADStudio/Tokyo/en/What’s_New

Delphi Update Training – 9 en 10 februari 2017

Net overgestapt naar de nieuwste Delphi versie, of al wat langer bezig met Delphi 10 Seattle of Berlin?

Kom dan naar de Delphi 10 Update Training om je kennis op te vijzelen met de nieuwe features en mogelijkheden. Op donderdag 9 en vrijdag 10 februari 2017 gaan we in Etten-Leur de mooiste, belangrijkste en nuttigste onderwerpen behandeln die Delphi erbij heeft gekregen sinds Delphi 2010. We gaan dus van Delphi 2010 naar Delphi 10.

We behandelen ondermeer Unicode, FireDAC, Parallel Programming (PPL), FireMonkey, Livebindings, maar ook advanced language features zoals Generics en anonymous methods.

Meer info en inschrijven kan hier.

Happy 2017

Happy New Year!

With Linux support coming this 2017 it will definitely be a happy new year. What it will bring is support in Delphi for Linux for server-side applications, such as Datasnap and/or REST servers, either running under Apache or as an application. The relevant RTL functionality will all be there, but no User Interface stuff.

And this is great, because it will allow us to deploy web services to Linux Apache servers, and it will also support one of our use cases; deploying low cost, ultra low power, micro servers that are placed at multiple locations inside building.

Keep in mind that if you are running something commercial on a Linux server, MySQL (MySQL Pricing) might be more expensive than you think, because of the licensing model that MySQL uses since Oracle acquired it. Interbase (Interbase pricing) may actually be a better and more affordable solution.

It will be a great 2017!