BIZ

TMS XData

Delphi framework for multi-tier REST/JSON HTTP/HTTPS application server development and ORM remoting.



TMS XData can be simultaneously used on these frameworks:



TMS XData can be simultaneously used on these operating systems/browsers:


TMS XData can be simultaneously used on these IDE's:



json

Feature overview

  • Server based on REST/JSON architecture style
  • Easily accessible from different client platforms like .NET, Java, JavaScript, since it's REST/JSON based
  • Uses standard POST, GET, PUT and DELETE HTTP methods for data request and data modification operations
  • Partial update of objects (PATCH)
  • Full-featured query mechanism
  • Multi-Model design makes it easy to create multiple servers with different mapping, types and service operations
  • Service Operations allow adding custom business logic to your server using interfaces and methods
  • Well-defined JSON representation of resources including entities, associations, streams and proxies
  • Support for streams (blobs)
  • Several databases supported in back end: SQL Server, MySQL, PostgreSQL, Oracle, Firebird, etc.. (through TMS Aurelius)
  • Design based on standard OData protocol
Based on TMS Sparkle HTTP/HTPS server architecture, which provides:
  • HTTP(s) server based on Windows http.sys stack
  • Support for HTTP Secure (HTTPS)
  • Kernel-mode caching and kernel-mode request queuing (less overhead in context switching)
  • Multiple applications/process can share (respond) the same port (at different addresses)
  • Secure Sockets Layer (SSL) support in kernel-mode

Feature details

TMS XData is a full-featured Delphi framework that allows you to create HTTP/HTTPS servers that exposes TMS Aurelius objects through REST/JSON.

Example of an Aurelius class mapped:
 
  [Entity, Automapping]
  TCustomer = class
  strict private
    FId: integer;
    FName: string;
    FTitle: string;
    FBirthday: TDateTime;
    FCountry: TCountry;
  public
    property Id: Integer read FId write FId;
    property Name: string read FName write FName;
    property Title: string read FTitle write FTitle;
    property Birthday: TDateTime read FDateTime write FDateTime;
    property Country: TCountry read FCountry write FCountry;
  end;
XData enables access via a simple HTTP GET:
  
GET /tms/xdata/Customer(3) HTTP/1.1
Host: server:2001
Example JSON representation of the customer object returned in the body of HTTP response:
  
{
  "$id": 1,
  "@xdata.type": "XData.Default.Customer",
  "Id": 3,
  "Name": "Maria Anders",
  "Title": "Sales Representative",
  "Birthday": "1980-05-20",
  "Country": null
}
Use a HTTP POST to create new objects, HTTP DELETE to remove objects, HTTP PUT or HTTP PATCH to update objects.

Example: Change the value of Title property of the customer resource:
 
PATCH /tms/xdata/Customer(1) HTTP/1.1
Host: server:2001
 
{ 
  "Title": "Marketing Manager" 
}
Easily perform queries on existing objects.

Example of retrieving customers with country name equal to "USA", ordered by customer's name:
 
GET /tms/xdata/Customer?$filter=Country/Name eq 'USA'&$orderby=Name&$top=10 HTTP/1.1
Host: server:2001
Server will return with a JSON array of objects containing all the filtered objects.

Query paging built-in to restrict the number of objects returned in each request.


Sample source Aurelius integrated full server-side logic using methods

Testimonials

BTW I am VERY happy with XDATA in a project I am developing at the moment. Great way to develop distributed applications.

Roland Kossow, via email



After trying some REST frameworks, my last choice is to use XData! It's really a great framework, very flexible and powerful! TMS Business is a subscription that every serious Delphi developer should have in his toolbox!

Piffer Claudio, via TMS forum



I'm really, really impressed with everything. And thanks for helping me with my newbie questions.
There is a lot of ground to cover when you start, but the possibilities are really mind boggling. I'm writing a blog system in WebCore, as a warming up for the rewrite of our webshop.
I'ts been a long time (I guess since delphi 1 and the first introduction of firemonkey) that I've been this excited. Feeling like a kid in a candy store right now!

Filip Demuynck, via email


Pricing

Single Developer License Small Team License Site License
 

TMS BIZ Essential


€ 395

120 yearly renewal
license for 1 developer


Includes
check  Aurelius
check  Sparkle
check  XData
check  Logging
close  Data Modeler
close  RemoteDB
close  Scripter
close  Sphinx
close  Echo
check  Full source code
check  Access to the TMS Support Center
check  Free updates and new releases
 

TMS BIZ Standard


€ 495

150 yearly renewal
license for 1 developer


Includes
check  Aurelius
check  Sparkle
check  XData
check  Logging
check  Data Modeler
check  RemoteDB
check  Scripter
close  Sphinx
close  Echo
check  Full source code
check  Access to the TMS Support Center
check  Free updates and new releases
MOST POPULAR

TMS BIZ Premium


€ 595

180 yearly renewal
license for 1 developer


Includes
check  Aurelius
check  Sparkle
check  XData
check  Logging
check  Data Modeler
check  RemoteDB
check  Scripter
check  Sphinx
check  Echo
check  Full source code
check  Access to the TMS Support Center
check  Free updates and new releases
BEST VALUE

TMS ALL-ACCESS


€ 1,795

575 yearly renewal
license for 1 developer


Includes
check  Aurelius
check  Sparkle
check  XData
check  Logging
check  Data Modeler
check  RemoteDB
check  Scripter
check  Sphinx
check  Echo
check  Full source code
check  Access to the TMS Support Center
check  Free updates and new releases
check  All TMS BIZ products
check  All TMS products
more_horiz  Discover more
All prices excl. VAT. Renewal price is subject to change and only valid up to 30 days after license has expired. After renewal period a discount price is offered to renew the license.

TMS ALL-ACCESS

key
Your unlimited access to all TMS products
local_offer
One money and time saving bundle

Free Trial

Start a free TMS BIZ evaluation today!
RAD Studio

What our customers say

When I purchased TMS All Access, it was with the aim of using the controls, Flexcel and TMS Web Core in the next stage of the current project, using the economics of purchasing the various products separately vs as one product-suite as part of that decision. But having access to the full product line-up and in the phase of "what did I get for my money?", I learnt about XData (which I will definitely be using for the web side of things) and Aurelius (which will save me hours in terms of development time, and will effectively pay for itself if one translates saved time to money).

- Roland Skinner

As a developer for 30+ years, and a Delphi developer since 1996, I've a solid foundation on desktop development. But I was skeptical of indulging in web development. Though the market was demanding a switch, it seemed too difficult to make the transition. TMS Software was my "magic bullet" to get me started with zero intimidation. Love their Web Core and XData products. Now I can develop powerful web applications using Delphi. TMS Software has renewed my love for Delphi and won my heart for their innovators. Thanks to the team for great products and a large volume of demos and manuals. You ROCK!

- Larry

In the past I have purchased other components from other parties. I will say proudly that TMS is the best in support, price and style. Whenever I need a help your team is always there to help me. Keep up the good work

- Mohamed Thooloon

Hi Bruno Just want to drop you a line about how great your presentation was today. We often fail to point out to someone when they do a great job! You did a great job, you gave me a lot of ideas, and you answered my question very well. THANK you for your great products & super support.

- Lawrence Green

Thank you for developing components where I can best describe it like this: TMS components is a case where "The wheels fit the car, and NOT the car fit the wheels". Well done.

- Sathiparsad

TMS WEB Core

language
Create modern web apps in Delphi & VSC
build_circle
Use Object Pascal code to build JavaScript apps