TMS WEB Core for Visual Studio Code

TMS WEB Core for Visual Studio Code

TMS WEB Core for Visual Studio Code beta is ready for TMS ALL-ACCESS users.

On July 26, 2018, we released the first version of TMS WEB Core for the Delphi IDE, hereby offering a RADically new way for creating web applications directly from the Delphi IDE. RADically different because TMS WEB Core offers RAD component based rich web client application development thanks to the technology of compiling the Object Pascal code to JavaScript with the pas2js compiler. The next step was to also enable using TMS WEB Core from the Lazarus IDE with the first version introduced in October 2018. At the same time, TMS WEB Core was extended with support for creating PWA’s, which is progressive web applications, meaning web applications that can be installed on mobile devices or Chrome desktop browsers, run offline, and access several parts of the device hardware. In a later step, February 2019, we announced support for creating cross-platform desktop applications via the Electron framework. On November 15, 2019, we unveiled that TMS WEB Core was also coming to Visual Studio Code. And now, today, after a huge amount of intensive work, we feel confident to give our baby in the hands of TMS ALL-ACCESS users. It took more time than expected to reach this level as the challenges turned out to be quite complex. Challenges we couldn’t have coped without having the absolute best engineers on board. In the first place, José Leon Serna, the architect of the IDE integration into Visual Studio CodeRoman Kassebaum overlooking and ensuring the Visual Studio Code integration works on 3 operating systems and remains compatible with Delphi’s project management, the pas2js compiler team assisting with debugging integration, the framework team itself taking up the huge task for making the UI controls all design-time editable.

Let’s go back to the WHY of taking up this huge & challenging task. Before embarking on this project, José Leon Serna, former Embarcadero IDE architect and head of the engineering team in Spain, and myself mutually shared the vision that Visual Studio Code offered a couple of unique technical features that could potentially make it an ideal candidate for using it for TMS WEB Core web client development. Visual Studio Code is based on web technology. Visual Studio Code is an Electron application and internally, everything is rendered via web views. This makes it ideal to offer design-time live rendering of the forms designed by TMS WEB Core. This is the primary driver. But there are nice additional benefits coming with Visual Studio Code. So, in a nutshell, key decision factors for our endeavour were:

  • Based on web technology, offers a live web rendered designer form
  • Is cross-platform, Visual Studio Code can be used on Windows, macOS, Linux
  • Designed to be extended via plugins with seamless plugin ‘marketplace’ distribution
  • A powerful established Pascal code editing plugin OmniPascal is already available
  • It is a high-DPI compliant IDE
  • Features built-in mechanisms for debugging of applications running in a browser
  • It features side-by-side editing, multi-view code editor windows that can be freely arranged
  • It has a very low barrier of entry, as Visual Studio Code itself is free and open-source
TMS WEB Core for Visual Studio Code

Just like our support for Lazarus adds freedom of choice, the capability to use Visual Studio Code now is extra freedom of choice. Of course, this won’t stop nor influence our plans for TMS WEB Core for Delphi. Version 1.4 of TMS WEB Core for Delphi is around the corner. All the work we did on the framework to make it behave nicely live in the Visual Studio Code designer benefits the quality of the framework itself, so also users with the Delphi IDE. And of course, Delphi remains the powerhouse for building fast native backend solutions for Windows or Linux servers with solutions such as TMS XData, Embarcadero RAD Server, or other commercial & open-source initiatives for creating server software. We actually hope in the fact that it helps to bring Object Pascal in the spotlights of Visual Studio Code users and makes developers curious for exploring and using RAD Studio as well.