Introduction
Installation
System Requirements
Installation Instructions
Installing uniGUI Using The New Installer
Trial Edition
Commercial Edition
Trial Edition (C++ Builder)
Commercial Edition (C++ Builder)
C++ Builder (Without RAD Studio)
Bypassing Installer BDS check
Building 64-bit library files
Silent Installation of Runtime Packages
Sencha Touch Installation
Running Demos
Technology Overview
Unified GUI
uniGUI Application Architecture
Deployment Options
Forms and Modules
ServerModule
MainModule
LoginForm
MainForm
Other Forms
Application Form
Free Form
DataModules
Application DataModule
Free DataModule
Frames
ServiceModule
Components
Standard
Additional
Data Controls
Extra
Special Objects
UniApplication Object
UniSession Object
UniServerInstance Object
Developer's Guide
Creating a New uniGUI Application
Standalone Server Project
Standalone Server / ISAPI Module Project
ISAPI Module Project
Windows Service Project
Application Design Considerations
General Design Concept
Web Application Scalability
Create Resources on Demand
Database Connections
Web Application Stability
Memory Management
Importance of Proper Memory Management
Object Lifetime Management
Special Considerations for ISAPI Modules
Thread Stack Size
Using OLE based components
Third party Component Libraries
Reporting Tools
FastReport
Important notes on FastReport and thread safety
ReportBuilder
Using a Report Server
Database Components
FireDAC
Using Runtime Packages
Runtime Packages & C++ Builder
Special Considerations
FormatSettings
Decimal Separator in Mobile Devices
Dynamically Created Controls
Creating Controls at Runtime
Destroying Controls at Runtime
Creating or Destroying of Multiple Controls at Runtime
Best Practices
Handling Concurrency
N-Tier web applications
Synchronous and Asynchronous Operations
Database-Centric Applications
User Interface
Small hybrid application
Features and limitations
Programming the hybrid application
Server Module
Main Module
Login Form
Main Form (launching pad)
Users Editor Form
Orders Editor Form
Sales Report Form
Client-side Scripting
Adding Custom Ext JS Events
Deployment
Sencha Ext JS License Considerations
uniGUI Runtime Package
uniGUI Runtime Package in tar.gz format
Adjusting Paths
Standalone Server
Windows Service
ISAPI Module
IIS 5
IIS 6
IIS 7 and Later
ISAPI and CGI Restrictions
Using a Different Account For Application Pool
Adjusting Upload File Size Limit
Apache 2.X
SSL Configuration
Obtaining a SSL Certificate from an Authority
Getting a SSL certificate from GoDaddy
Generate a Self-Signed Certificate
Configure SSL Parameters
SSL & Error Logging
Understanding SSL Protocols
Using SSL Under Linux
Adjusting Folder Access Rights
Native Apache 2.4 Module
Creating A New Apache Project
Configuring Apache to run uniGUI Apache Module
Running the Apache Application
Linux64
Preparing & Configuring Linux Development Environment
Compling & Running a uniGUI Application
Terminating the application in Standalone mode
Apache 2.4 Module
Installing Apache on Linux
Creating a New Apache Project
Configuring Apache for Linux
Setting Folder Access Rights
Running the Apache Application
Deploying Standalone app as a Service
Using a third party debugging tool
EurekaLog
Using FastMM in Full Debug Mode
Sample Test Application
FastMM4 Options
Running the Test Application
Conclusion
Stress Test Tool
Introduction
Usage
Recording a Session
Running the Stress Test
Server Flood Protection Considerations
Additional Settings
uniGUI HyperServer
What is HyperServer?
Terminology
A More In-depth Look at HyperServer
Installing and Configuring HyperServer
Important Changes in Build 1607
More on Transport Channels
HyperServer Standalone Mode
HyperServer ISAPI Module Mode
HyperServer Windows Service Mode
Additional Network Settings
HyperServer System Configuration Application
Important Notes Regarding HyperServer
32-bit Nodes vs 64-bit Nodes
Remote Deployment
SSL Support in HyperServer
Monitoring Sessions
HyperServer Server Farm
Setting up a HyperServer Server Farm
Distributing Traffic in a HyperServer Cluster
Managing Files in a Server Farm Cluster
Running Multiple ServerNodes on Same Computer
Scalability Concerns
Cluster Operation Modes
Configuring Server Farm in Mode-0
Configuring Server Farm in Mode-2 (Url Redirect)
Isolating ServerNodes in Mode-2
Managing Cookies in a Cluster
HyperServer Applications
Configuring HyperServer Applications
HyperServer Applications and Server Farm
HyperServer for Linux
Deployment Example (Standalone HyperServer)
Deployment Example (Server Farm)
Running Server Farm in Mode-2
Running HyperServer as a Linux Service
HyperServer and HTTP Authentication
Using Server Monitor (Server Control Panel)
Monitoring Sessions
Populating the UserString
Deploying Midas.dll file
Enabling Authentication
Delphi 11 and High DPI mode
WebSockets
uniGUI & WebSockets
Step by Step Creating a Basic WebSockets Application
WebSockets & HyperServer
Configuring the Cluster
Standard HyperServer Cluster
HyperServer Server Farm Mode-0
HyperServer Server Farm Mode-2
Using a Dedicated WebSockets Server
Setting up the application
Setting up the application in a HyperServer cluster
Updating the Client Directly
Binding to a Different Port or IP Address
IIS & Apache Deployment
WebSockets & SSL
Important Notes
Deployment Example
Choosing the Deployment Method
Obtaining the SSL Certificate
Testing the Certificate Locally
Setting Up a Dedicated WebSockets Server
Testing the Dedicated Server
Running the Dedicated Server on Default Ports
Testing with an ISAPI Application
Testing with a SSL Application
Integrating a HyperServer Cluster
Preparing the Applications
Deploying to Production Server
Configuring Microsoft IIS
Installing the Dedicated WebSockets Server
Configuring the Application
Deployment on Same IP But a Different Port
Configuring the Application