All Blog Posts  |  Next Post  |  Previous Post

TMS WEB Core with backend: unparalleled productivity


Tuesday, March 26, 2024

Last week, we had the first public reveal and opening of the closed beta phase of our brand new service

TMS Software Delphi  Components

Stellar DataStore is our fast and easy solution to let your application use a backend as a service. Using the power of our REST API, you can easily fetch and manipulate data in the cloud. even enables you to set up a whole database with only a few API calls. We handle everything a backend might need, from data storage and manipulation to security and privacy. There is no need anymore for hosting servers or implementing new security measures. Stellar DataStore will handle this for you, leaving more room for implementing the things you want.

TMS WEB Core &

In this blog, we'd like to dive deeper in how TMS WEB Core new components will make working with backend seamless and will give you unparalleled productivity to create full-stack web applications. 

TStellarDataStore class

A first way to work with Stellar DataStore from a TMS WEB Core web client application is via the TStellarDataStore class. This is an Object Pascal wrapper class for the Stellar DataStore REST API. It basically allows to fully manipulate the metadata of your data in the backend and of course also perform CRUD operations on data (entities).

The hierarchy is:

TMS Software Delphi  Components

Via the TStellarDataStore class, you have access to the collection of tables TStellarDataStoreTables. In turn each table in this collection provides access to a collection of fields TStellarDataStoreFields and collection of entities TStellarDataStoreEntities. You can access each individual field in the Fields collection as TStellarDataStoreField and each entity in the Entities collection as TStellarDataStoreEntity. This way, you can add, delete, modify fields as well as add, delete, modify entities. 

This is a code snippet that shows you can use these classes to verify if a database is setup correct for a user and if not, initialize it with the fields needed:

    sdb := TStellarDataStore.Create(Self);
    // set the access token to connect directly
    sdb.AccessToken := edAccessToken.Text;
    // get the default project ID
    await(boolean, sdb.GetProject);    
    // check if the needed table exists
    res := await(boolean, sdb.HasTable(sdb_tablename));    if not res then
      ShowMessage('Table not found, trying to create table automatically');
      // create the needed table
      res := await(boolean,  sdb.CreateTable(sdb_tablename));
      // successful creation
      if res then
        // refresh the tables list
        await(boolean, sdb.GetTables);
        // find the new create table reference by name
        tbl := sdb.Tables.FindTable(sdb_tablename);
        // insert the needed fields for this table
        await(boolean, tbl.CreateField(sdb_fieldstatus, ftString, 50));
        await(boolean, tbl.CreateField(sdb_fielddescr, ftString, 50));
        await(boolean, tbl.CreateField(sdb_fielddate, ftDate, 50));
        ShowMessage('Failed to create table. Check account quota and/or permissions and retry.');


TWebStellarDataStoreClientDataSet component

Much easier is to start working with the TWebStellarDataStoreClientDataSet, especially with its strong design-time integration. Connect a TWebDataSource to a TWebStellarDataStoreClientDataSet and then connect the datasource to DB-aware controls and you are up & running. 
To initialize the dataset, invoke the design-time editor via the context menu:

TMS Software Delphi  Components

And from here, you can add, delete, update tables and for each table, you can add, delete, update fields:

TMS Software Delphi  Components

When you select a table, it will automatically initialize all fields in the dataset, making it actually immediately ready to be used from DB-aware controls in the TMS WEB Core client application.

To make it all more clear, watch this video, where we take on the challenge to create a full working web application with data in the backend with unparalleled productivity:

Closed Beta

Sign up here to get a chance to enter the closed beta and get a head start developing full-stack applications. We will invite people at regular intervals to the Closed Beta. When you are eligible to join, you will receive an invitation through e-mail with you credentials.

What's next?

We will release shortly an update of TMS FNC Cloud Pack that will include similar seamless integration components for but this time for native Windows VCL applications as well as FMX cross-platform applications. Watch this blog series for more information when we released it! 

Follow us now!

Show us support and follow us on our social media to always be up to date about

TMS Software Delphi  Components

TMS Software Delphi  Components

TMS Software Delphi  Components

TMS Software Delphi  Components

TMS Software Delphi  Components

TMS Software Delphi  Components

Bruno Fierens


This blog post has received 7 comments.

1. Tuesday, March 26, 2024 at 7:38:47 PM

Are there plans to incorporate the Scripter into this so we can upload scripts to run biz logic on that data? (Stored procs but not just SQL)

Schwartz David

2. Tuesday, March 26, 2024 at 9:32:13 PM

We consider adding programmability but not via the TMS Scripter product

Bruno Fierens

3. Thursday, March 28, 2024 at 6:24:07 PM

A 50 tables limit in the Ultimate version, that limit is too small in my opinion.

My main program has 155 tables :)

Ekerhovd Ole

4. Saturday, March 30, 2024 at 9:52:05 AM

Thanks for your feedback. Nothing is set in stone yet. That''s why we have our beta test period and gather feedback not only technically but also on modeling of tiers.

Bruno Fierens

5. Wednesday, April 10, 2024 at 9:14:07 PM

Looks Great. The 50 table limit might be an issue down the road depending on what I take from my current VCL apps to Web Core.

I was wondering if the user login with stallards has a means for dealing with password recovery. The sending and receiving of emails to reset passwords without me getting involved.

I have 3 fair sized apps (at partsync . com) and I need hunks of library management for my electronic components moved to the web.There is a fair amount of search logic and sorting involved and "Re-Indexing" of a search engine can take a good hunk of time.

Bob Kondner

Kondner Robert

6. Thursday, April 11, 2024 at 12:00:01 PM

Each user would have to manage his credentials himself. There is no central credential management (for security reasons). Recovery goes per account.

Bruno Fierens

7. Thursday, April 25, 2024 at 4:49:39 PM

Recently, I prepared to integrate PG payment service using the TMS WEB Core project. It was a scenario where I set StopUrl (called when canceling payment) and ReturnUrl (called when payment is successful) when integrating PG Javascript Lib to carry out PG payment business. However, I found that the redirect URL call delivered to each URL is delivered by POST communication method, and I need to use GET communication method to call the redirect URL to the TMS WEB Core project. After much thought, I changed the POST to GET by utilizing AWS Lambda function, stored the parameter information in AWS DynamoDB, and passed the key value. If is validated, it would be great to utilize without using complex AWS Serverless technology.

? ??

Add a new comment

You will receive a confirmation mail with a link to validate your comment, please use a valid email address.
All fields are required.

All Blog Posts  |  Next Post  |  Previous Post