Through a series of step-by-step instructional tutorials, Paweł Głowacki, veteran Delphi trainer, guides you to a deeper understanding of the powerful technologies in Delphi. You will gain the solid foundation of knowledge upon which to unleash your creative genius.

The beauty of rapid application development is that you can build complex systems by assembling components. This approach to building software applications shines when applied to Delphi DataSnap programming. In a matter of minutes, you can create a multithreaded server application, capable of servicing many concurrent clients and listening on multiple communication ports simultaneously.

Series 1: DataSnap

In the first series of tutorials Paweł demonstrates the Delphi DataSnap technology for building distributed, scalable, multi-tier applications accessible from a wide range of client technologies from pure Delphi Win32 VCL Forms applications to pure JavaScript clients running on mobile devices. DataSnap technology is only available in Enterprise and Architect versions of Delphi, C++Builder and RAD Studio.

These step-by-step tutorials are intentionally very simple, so even inexperienced Delphi programmers should be able to build projects described here and enjoy programming.


Ep01-Calc_thumb

Pawel kicks off the series with a simple client/server application, where the server exposes four basic arithmetic operations and client provides a GUI for data input and displaying results.

Get whitepaper | Get source code


Ep02-mutlitier_thumb

Our series continues with another DataSnap application, this time using an actual database (InterBase) The setup is very close to the original Delphi MIDAS approach with dataset providers on the server and client communicating with providers via "remote server" connection components.

Get whitepaper | Get source code


Ep03a-SvrMethodLifecyle_thumb

In this first part, we have another multi-tier application. The server method instance has overridden constructor where its private FID is initialized with a generated GUID and "GetId" server method is implemented to be able to uniquely identify a server methods instance on the client. This way, every connected client has its own server methods instance inside the server application.

Get whitepaper | Get source code


Ep03b-SvrMethodLifecyle_thumb

In this second part, both server and client are extended. Ultimately at the end of the demo, we verify that server method instances are global to all clients, session instances are unique per client, and invocation instances are created and destroyed on the fly.

Get whitepaper | Get source code


Ep04-DBXplorer_thumb

In this episode, Pawel creates a DataSnap server listening on multiple TCP/IP and HTTP ports. Instead of building a client, however, Pawel shows you how he tests the server functionality using Data Explorer that is part of the RAD Studio IDE.

Get whitepaper | Get source code


Ep05-Security_thumb

Pawel demonstrates the basics of authentication and authorization with a simple role-based security scheme.

Get whitepaper | Get source code

Video 2 of this Episode


Ep06-Filters_thumb

In DataSnap architecture, you can use different communication protocols like TCP/IP, HTTP or HTTPS, and you can also use transport filters to programmatically access the raw stream of bytes that are transmitted between client and the server over the wire.

In this lab, Pawel builds a simple system consisting of a server and a client application. They will be using TCP/IP as the transport protocol and ZLib as compression filter.

Get whitepaper | Get source code


Ep07-REST_web_thumb

In this epidsode, we are using "Delphi REST Application" wizard to generate a complete project consisting of a web application running in the stand-alone VCL Forms web server application and a pure JavaScript client embedded in the html markup.

Get whitepaper | Get source code


Ep08a-WebBroker_thumb

Pawel has been working hard to produce this episode on how we can use Delphi XE to build a web application for displaying database data coming from a DataSnap server using jQuery Mobile JavaScript library. The episode got so big that it has to be divided. Here's the first part of the lesson, and stay tuned for the second part.

Get whitepaper | Get source code

Video 2 of this Episode


Ep08b-jQueryMobile_thumb.jpg

This is a continuation from the last episode. Pawel demonstrates practical steps for building jQuery Mobile web frontend application for displaying InterBase XE “Employees” database data from a standalone Delphi DataSnap server. The system described is based on the "Delphi WebBroker jQuery Mobile Boilerplate" project described in the previous Delphi Labs tutorial.

Pawel has uploaded the resulting application to Amazon EC2 cloud. You can find it at http://79.125.25.31:8080/. Please understand, however, that this link may not be there forever.

Get whitepaper | Get source code

Video 2 of this Episode | Video 3 of this Episode


Ep09-WinService_thumb

In this episode, Pawel implements and installs a Delphi DataSnap server, which is a Windows Service application. This scenario is very useful when your services are deployed in the cloud and new machine images are started and stopped automatically by a load balancer.

Get whitepaper | Get source code


Ep10-PODOs_thumb

Today, Pawel shows us the use of TObject-descendant as parameter types in DataSnap server methods, a new feature in Delphi XE. Pawel will concentrate on this parameter type in this episode, if you are interested in seeing what other types are possible, please check out Jim Tierney's blog.

In Java Enterprise Edition (JEE) there is a concept of “Plain Old Java Object” for passing data between applications. Here we are going to use the same pattern for exchanging data between clients and servers written in Delphi, so it should be OK to call these parameter types: “Plain Old Delphi Objects” or “PODOs” in short.

Get whitepaper | Get source code


Ep11-Callbakcs_thumb

In this bonus episode, Pawel has created a simple example of using callbacks. Both client and server are Delphi VCL Forms applications. To keep it simple, his is using TCP/IP and DBX. This tutorial covers broadcasting to a channel and notifying a specific callback.

Get whitepaper | Get source code

Video 2 of this Episode | Video 3 of this Episode


About Our Expert Speaker

Pawel_100 Paweł Głowacki
Embarcadero Technologies.


Paweł Głowacki is Senior Software Consultant and EMEA Technical Lead for Delphi, RAD Studio and All-Access for Embarcadero Technologies. Previously, Paweł spent over 7 years working as a senior consultant and trainer within Borland Education Services and CodeGear. As well as working with Embarcadero customers across the region, he also represents Embarcadero internationally as a conference and seminar speaker

For more information, check out Paweł's technical blog

Special Offer

DCP-221x200_webinar_on-demand

About RAD Studio

Embarcadero RAD Studio is a comprehensive application development suite and the fastest way to visually build GUI-intensive, data-driven applications for Windows, Mac, .NET, mobile and Web. RAD Studio includes Delphi®, C++Builder®, Delphi Prism, and HTML5 Builder - enabling developers to deliver applications up to 5x faster across multiple devices and platforms.

radstudio
Complete solution for Windows, Mac, .NET, mobile and Web application development.
delphi
The developer force multiplier for Windows and Mac
c++builder
The C++ developer force multiplier for Windows and Mac