Configure global solution properties.

Reference → Solution →  Designer → Settings and Tools →  Settings | Categories | Import Tags | Import Plugin | Export | History


The Solution Settings page provides centralized configuration for solution-wide parameters including platform targeting, licensing, runtime options, and interpreter settings.

Access: Solution → Settings



Settings Sections

Solution Information

Read-only information about the current solution:

FieldDescriptionExample
NameSolution filenameMyProject
File SizeDatabase size45.2 MB
DescriptionUser-defined textProduction monitoring system
Solution PathFull file locationC:\Solutions\MyProject.dbsln
Tag CountLocal tags1,234
External TagsFrom TagProviders567
Help URLCustom documentationhttps://docs.company.com/

Target Platform and License

Core deployment configuration:

SettingOptionsImpact
Target PlatformWindows Only / MultiplatformFramework and OS support
Product FamilyFrameworX / FactoryStudio / EdgeMachine / EdgeConnectFeature set
Product Model150 / 300 / 500 / 1500 / 5000 / UnlimitedPoint limits

Solution Options

Solution-wide options:

OptionDescriptionDefault
Culture InfoLanguage/localeen-US
Allow Client TasksDesigner editing option. When checked, the Designer lets you set a Task's domain to Client and shows the built-in client tasks. It does not change runtime behavior: the WPF Rich Client runs its client scripts, including ClientStartup, ClientShutdown, and Client-domain classes, whether or not the option is checked.Unchecked
Diagnostics LocationLog file pathLocal

Retentive Database Settings

Click gear icon to configure:

FieldDescriptionOptions
ProviderDatabase typeSQLite, SQL Server, PostgreSQL
DatabaseDatabase nameSolution.dbRetentive
ServerIPRemote serverlocalhost or IP
PasswordAuthenticationOptional

Run Modules Inside Main Process

Controls whether each module runs inside the main TServer process or in a dedicated isolated process (TProcessDomain.exe).

ModuleCheckbox labelDefault
Script TasksScript TasksUnchecked
DeviceDevice Channel(s)Unchecked

Both settings default to disabled (unchecked). Leave them disabled unless the hardware constraints described below apply.

When to enable

Enable only when all three of the following conditions are true:

  • The target hardware has severely limited CPU (e.g., embedded or edge controllers).
  • The target hardware has severely limited memory.
  • The solution contains very few modules/channels (typically one or two).

This is a last-resort optimization for resource-constrained deployments. For any normal deployment, leave both disabled.

Trade-offs

Out-of-process (default)In-process (enabled)
Process isolationFull isolation — a module crash does not affect TServerNo isolation — a module fault can destabilize the entire runtime
Security boundaryModule code runs in a separate security domainModule code runs inside the main process
PerformanceSlight inter-process overheadMarginal reduction in IPC overhead
Module synchronizationCross-process synchronizationIn-process synchronization (marginally more efficient)

Diagnostic: confirming the execution mode at runtime

In the Devices runtime monitor, each channel displays:

  • Process Name — shows TServer when the channel runs inside the main process; shows TRunModule when running in a separate process.
  • Process PID — the PID of the hosting process.

Python Interpreter

Python integration paths:

Path TypeDescriptionExample
LocalClient machineC:\Python39
ServerServer machine/usr/bin/python3

Global Script Namespace Declarations

From FrameworX 10.1.6, the Global Script Namespace Declarations field lists namespaces available to every C# and VB.NET script of the solution, with no per-script declaration: Script Tasks, Script Classes, expressions and display code-behind, on the server and on the clients.

  • Separate the namespaces with semicolons, for example System.Text.Json;MyCompany.Common.
  • Enter plain dotted namespace names. A pasted using or Imports prefix is removed. Aliases and using static are not supported, and invalid entries are ignored.
  • A change applies at the next compile, with no Designer restart.
  • The global namespaces also feed IntelliSense and appear in the predefined list of the per-script Namespace Declarations dialog.
  • A namespace declaration does not add an assembly to the build. For a namespace from an external DLL, add the DLL in Scripts → References. See Scripts References Reference.

In 10.1.5, namespaces are declared per script only, in the Namespace Declarations dialog of the Code Editor.


Provider Support

Database Providers

ProviderDatabases SupportedUse Case
ODBCMultiple via DSNLegacy systems
OleDbMultiple via connectionWindows databases
SQLiteSQLite filesEmbedded/local
SQLClientSQL ServerEnterprise
PostgreSQLPostgreSQLOpen source
OracleClientOracleEnterprise Oracle

Configuration Guidelines

Platform Selection

Windows Only - Choose when using:

  • Windows Authentication
  • OPC Classic
  • Canary Historian
  • Windows-specific .NET libraries

Multiplatform - Choose when:

  • Deploying to Linux
  • Using Docker containers
  • Cross-platform requirement
  • Cloud deployment

License Configuration

Must match production license:

If License IsSet Family ToSet Model To
FrameworX-5000FrameworX5000
FactoryStudio-1500FactoryStudio1500
EdgeMachine-300EdgeMachine300

Culture Info Settings

CultureFormat ExampleUse For
en-US12/31/2024, $1,234.56US English
pt-BR31/12/2024, R$ 1.234,56Brazilian Portuguese
de-DE31.12.2024, 1.234,56 €German
ja-JP2024/12/31, ¥1,234Japanese

Best Practices Checklist 

Initial Setup

  • Set Target Platform before development
  • Configure Product Model to match license
  • Set Culture Info for target locale
  • Configure Python if using scripts

Retentive Database

  • Use SQLite for standalone
  • Use SQL Server for enterprise
  • Test connection before saving
  • Document connection string

Module Execution

  • Script Tasks and Device Channel(s): leave both disabled unless the hardware is severely resource-constrained (limited CPU, limited memory, very few modules/channels). See Run Modules Inside Main Process above.
  • Monitor Process Name in the Devices runtime monitor to confirm which execution mode is active.



Troubleshooting

IssueCauseSolution
Platform grayed outSolution has objectsRemove objects first
License mismatch warningWrong modelMatch to actual license
Python scripts failWrong pathVerify interpreter location
Database connection failsWrong credentialsTest connection

In this section...