Version 10.1 or newer represents a major advancement with simplified concepts and new technologies. While most legacy projects upgrade smoothly, 100% compatibility cannot be guaranteed. All upgraded projects require validation in a lab environment before production deployment.
Source Version | Direct Upgrade | Process |
---|---|---|
9.1, 9.2 | Yes | Direct upgrade to 10.1 or newer |
Earlier than 9.1 | No | First upgrade to 9.1/9.2, then to 10.1 or newer |
All projects must be revalidated in a lab environment before field deployment. This step is essential to confirm optimal functionality in the new version.
<project>.tproj
file in Solutions Manager folder.dbsln
file with same name.tproj
file remains intactAction | Result |
---|---|
Original file | Preserved unchanged |
New solution | Created as .dbsln |
Solution List | Shows only new .dbsln |
Legacy file | Hidden from list |
Issue: Table name change from EditSecurityUsers_Runtime
to SecurityRuntimeUsers
Required Action:
EditSecurityUsers_Runtime
SecurityRuntimeUsers
Applications using programmatic engineering (EngWrapper API) may lack compatibility due to internal structure changes. Contact support for upgrade assistance.
Version | Approach | Migration |
---|---|---|
9.2 | Complex customization | Manual review required |
10 | Simplified interface | Cannot fully automate |
Review screens and objects mapped to theme resources after upgrade.
Version 10.1 or newer uses async programming patterns for improved performance and HTML5 compatibility.
C# Example:
csharp
public async Task DisplayOpening()
{
await @Script.Class.ServerMain.Method1();
}
VB.NET Example:
vbnet
Public Async Function DisplayOpening() As Task
Await @Script.Class.ServerMain.Method1()
End Function
Replace LogOn()
with LogOnAsync()
:
JavaScript:
javascript
this.DialogOnOK = async function()
{
var result = await @Client.LogOnAsync("user1", "pass1");
return true;
};
C#:
csharp
public async Task<bool> DialogOnOK()
{
var result = await @Client.LogOnAsync("user1", "pass1");
return true;
}
VB.NET:
vbnet
Public Async Function DialogOnOK() As Task(Of Boolean)
Dim result As Integer = Await @Client.LogOnAsync("user1", "pass1")
Return True
End Function
Legacy Code (Synchronous):
vbnet
Public Function DialogOnOK() As Boolean
Dim log As eSecurityErrors
log = DirectCast(@Client.LogOn(@Client.InputUserName, @Client.InputPassword), eSecurityErrors)
If log = eSecurityErrors.OK Then
@Display.LogOn.Close()
Return True
End If
Return False
End Function
Updated Code (Async):
vbnet
Public Async Function DialogOnOK() As Task(Of Boolean)
Dim log As eSecurityErrors
log = DirectCast(Await @Client.LogOnAsync(@Client.InputUserName, @Client.InputPassword), eSecurityErrors)
If log = eSecurityErrors.OK Then
@Display.LogOn.Close()
Return True
End If
Return False
End Function
All mnemonics require default values:
Version | Format | Example |
---|---|---|
Legacy | #HourOfDay: | Missing default |
10.1 or newer | #HourOfDay:"" | Includes default |
Use Drawing Properties for positioning:
Feature | Legacy | 10.1 or newer |
---|---|---|
Method | Docking/alignment | New layout system |
Multi-level menus | Multiple docked windows | Single header window |
Submenus | Separate windows | ChildDisplay controls |
Projects from 9.2 or older versions that did not use the last screen in the layout list as the dynamic screen, which automatically switched screens with an open command and therefore needed to use the OpenAtIndex command, must have their layouts reconfigured, because in a migration to 10.1 or newer, the last screen in the layout list will be considered the main switching screen.
Feature | Status | Alternative |
---|---|---|
Synchronous SQL calls | Warning issued | Use async methods |
Custom theme editing | Not supported | Use standard themes |
<TagProvider>.("Topic Path") syntax | Removed | Map to AssetTree |
XPS documents | Not supported | Use PDF or other formats |
Issue | Solution |
---|---|
Display errors | Update async methods in CodeBehind |
Database failures | Rename RuntimeUsers table |
Theme problems | Review color mappings |
Layout issues | Redesign using new system |