Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Deploying FrameworX runtime components for production environments.

Parent Page: Deployment (Reference)



Deploying FrameworX runtime components for production environments.

Parent Page:

Deployment

(Reference)Deployment

Scenarios

Windows Runtime Deployment

For Windows-only solutions targeting .NET Framework 4.8:

  • Install the complete FrameworX platform (same as Designer)
  • No separate runtime-only installer exists
  • Configure to use only runtime components in production
  • Disable Designer access if needed for security

Multiplatform Runtime Deployment (.NET 8)

For solutions targeting Linux, Docker, or edge devices:

OptionComponentsSizeUse Case
Runtime-OnlyTServer.exe, drivers, minimal files~100 MBProduction edge devices
Full PlatformAll files including Designer~500 MB+Enable remote ClickOnce Designer
TWebServices-OnlyCommunication server onlyMinimalDevelopment/testing

Windows Runtime Setup

Since Windows uses the full platform installation:

  1. Install FrameworX (see Installation & Licensing)
  1. Configure for Runtime Only
    • Solution Center → Runtime → Startup
    • Set solution to auto-start
    • Configure as Windows Service
Install as Windows Service

Solution Startup Configuration

TStartup.exe Overview

TStartup.exe is the executable that runs FrameworX solutions. It supports various parameters for debugging, redundancy, and advanced configuration.

Basic Startup Methods

Manual Start:

  • From Solution Manager: Select solution → Runtime Startup
  • From Designer: Runtime → Startup → Run Startup
  • Using Windows shortcut with parameters

Windows Service:

  • Runs on computer startup
  • No user login required
  • Configure at Runtime → Startup

Command Line/Batch File:

cmd

cd "C:\Program Files (x86)\Tatsoft\FrameworX\10.1"
InstallTStartup
TStartup.exe /
service
Solution:"C:\Solutions\MySolution.tproj"

Required Parameters

The minimum parameter needed:

/Solution:"C:\Solutions\Solution.tproj"

Solution Merging on Startup

The platform supports modular project design by automatically merging multiple project files at runtime based on naming conventions.

How It Works:

When launching a main solution (e.g., MyProject), FrameworX automatically merges any projects with names following the pattern:

  • Base name + double underscore + suffix + double underscore
  • Example: MyProject__ModuleName__

Example Structure:

MyProject.tproj                    → Main solution
MyProject__DeviceConfig__.tproj    → Device configurations
MyProject__DBTest__.tproj          → Test database settings
MyProject__CustomerA__.tproj       → Customer customizations

Runtime Behavior:

  • Detects all matching MyProject__*__.tproj files
  • Merges contents (tags, scripts, displays, connections)
  • Creates unified runtime environment
  • Maintains modular development structure

Windows Service Configuration

Automated Setup

Configure in Runtime → Startup:

  1. Select "Run as Windows Service"
  2. Set service name and startup type
  3. Configure user credentials
  4. Apply settings

Manual Service Installation

The automated setup executes these steps:

  1. Create command line:

cmd

"C:\Program Files (x86)\Tatsoft\FrameworX\10.1\TStartup.exe" 
  /Solution:"C:\Solutions\Solution.tproj" 
  /username:Administrator
  1. Install service:

cmd

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil 
  "C:\Program Files (x86)\Tatsoft\FrameworX\10.1\TStartupAsService.exe"
  1. Registry entry added:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TStartup\ImagePath
  1. Service set to automatic start

Service Security Settings

Log On Configuration:

  • Default: Local System account
  • Custom: Domain user for external resources
  • Configure in Windows Services console

Delayed Start:

  • For dependencies on other services
  • Configure delay in service properties

Startup Parameters Reference

Main Parameters

ParameterDescriptionExample
/SolutionSolution path (required)/Solution:"C:\Solutions\Solution.tproj"
/usernameRuntime user/username:Administrator
/passwordUser password/password:SecurePass123
/waWindows Authentication/wa:true
/ip1Primary server IP/ip1:192.168.1.100
/port1Primary server port/port1:3101
/viewonlyRead-only mode/viewonly

Redundancy Parameters

ParameterDescriptionDefault
/redundancyEnable redundancy-
/autoswitchAuto-switch to primary-
/timeautoswitchSwitch delay (seconds)60
/ip2Secondary server IP-
/port2Secondary server port3101
/connectiontimeoutWatchdog timeout5
/connectionretryRetry attempts1
/SolutionIPPathRemote solution path-

Redundancy Example:

cmd

TStartup.exe /Solution:"C:\Solutions\Solution.tproj" 
  /redundancy 
  /ip1:192.168.1.1 /port1:3101 
  /ip2:192.168.1.2 /port2:3101
  /autoswitch /timeautoswitch:60

Diagnostic Parameters

ParameterDescriptionOutput Location
/SaveLog:3Debug loggingC:\Users\Public\Documents\FrameworX\TraceLogs
/AutoRunDiagnostics:30Auto diagnostics (minutes)C:\ProgramData\FrameworX
/LogDeviceWriteStartupDevice write loggingC:\ProgramData\FrameworX\Device

Advanced Parameters

ParameterDescriptionDefault
/NumberOfDevicesAtSameTimeConcurrent device startup3
/TimeBetweenModulesModule start delay (seconds)0
/AutoCheckWatchDogAuto-restart frozen channelsDisabled
/nocacheDisable cache (SmartClient)false
/port1WAWindows Auth port-

Linux/Docker Startup

systemd Service

  1. Service Configuration
    • Service name: FrameworX Runtime
    • Startup type: Automatic
    • Recovery: Restart on failure

.NET 8 Runtime Deployment

Option 1: Runtime-Only (Production)

Deploy minimal components for production:

Required Files:

/opt/frameworkx/
??? TServer.exe
??? TWebServices.exe
??? Driver assemblies
??? Solution files (.tproj, .dbsln)
??? Runtime dependencies

Linux Installation:

bash

# Create directory
sudo mkdir -p /opt/frameworkx

# Copy runtime files
sudo cp -r /source/net8.0/runtime/* /opt/frameworkx/

# Set permissions
sudo chmod +x /opt/frameworkx/*.exe

# Start runtime
./TServer.exe /solution:MySolution.tproj

Option 2: Full Platform (Remote Designer)

Deploy all files to enable ClickOnce Designer access:

Benefits:

  • Windows clients access Designer with zero installation
  • Browse to http://device-ip:10108/solutions
  • Designer runs on client, edits on device
  • Supports multiple product versions

Deployment:

bash

# Copy entire platform
sudo cp -r /source/net8.0/* /opt/frameworkx/

# Includes Designer files (not executed on device)
# Size: ~500 MB+

Option 3: TWebServices-Only (Development)

Minimal deployment for development:

  • Deploy only TWebServices.exe
  • Push solution and runtime remotely
  • Not recommended for production (slow)
  • Useful for testing and development

Service Configuration

Windows Service

Configure in Runtime → Startup or manually:

xml

<service>
  <name>FrameworXRuntime</name>
  <displayName>FrameworX Runtime Service</displayName>
  <description>FrameworX Solution Runtime</description>
  <startMode>Automatic</startMode>
</service>
Linux systemd

Create /etc/systemd/system/frameworkx.service:

ini

[Unit]
Description=FrameworX Runtime
After=network.target

[Service]
Type=simple
User=frameworkx
ExecStart=/opt/frameworkx/TServerTStartup.exe /solution:MySolutionSolution:/opt/solutions/Solution.tproj
Restart=always
RestartSecUser=10frameworkx

[Install]
WantedBy=multi-user.target

Enable and start:

bash

Docker Entrypoint

dockerfile

ENTRYPOINT ["./TStartup.exe"]
CMD ["/Solution:/app/solutions/Solution.tproj"]sudo systemctl enable frameworkx
sudo systemctl start frameworkx

Auto-Start Configuration

Windows Startup Folder

Create shortcut in:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\

TWebServices Auto-Start

Configure TWebServicesRunPrograms.json:

json

{
  "appSettings": {
    "RunPrograms": {
      "Solution1MainSolution": "/opt/frameworkx/solutions/MySolutionMain.tproj",
      "CustomAppBackupSolution": "/usropt/localframeworkx/binsolutions/customappBackup.tproj"
    }
  }
}
Location: /home/frameworkx/MachineSettings/ (Linux) or C:\Users\Public\Documents\FrameworX\MachineSettings\ (Windows)

Client Display Considerations

When running as Windows Service:

  • Server components run without user interface
  • Client displays must be started separately
  • Use AutoStartClient.exe for automatic client startup
  • Configure remote access via TWebServices

AutoStartClient Example:

cmd

AutoStartClient.exe /server:localhost /port:3101 /display:MainScreen

This consolidated page now includes all the startup configuration details, parameters, and the solution merging feature in the appropriate context.