Platform migration from PowerBuilder to .NET
Convert PowerBuilder to .NET
Move PowerBuilder client-server applications onto .NET without losing the business rules sealed inside binary PBL libraries and DataWindow objects. Spec-first, validated, and governed end to end.
Six reasons to move off PowerBuilder
PowerBuilder still runs working line-of-business systems, but the risk of standing still compounds every year.
Logic is locked in binaries
Application logic ships inside compiled .pbl libraries that cannot be read, searched, or diffed in source control without the proprietary IDE. Nobody can review what they cannot open.
Same functionality, new platform
Migration does not mean rebuilding features. Forge reconstructs what your PowerBuilder objects actually do into a Living Spec, then generates C# that preserves that behavior.
BEHAVIOR PRESERVED
A natural fit for the data layer
PowerBuilder estates commonly sit on SQL Server. Moving to .NET keeps that data tier in place while replacing the client-server front end with a supported stack.
Talent is disappearing
The pool of engineers fluent in PowerScript shrinks every year, while .NET has one of the deepest hiring pools in enterprise software.
Escape the desktop deployment model
Client-server executables pushed to every workstation become web-deployable ASP.NET Core services, removing an install-and-update burden from every release.
Security and compliance
Actively maintained .NET releases receive the patches and audit tooling that aging PowerBuilder runtimes no longer get.
See your ForgeScore before you commit
Every import is scored across eight engineering-health dimensions before a Work Order is planned, so you know what you are dealing with up front.


Every PowerBuilder-to-.NET project on Forge starts the same way: your codebase is imported, scored across eight engineering-health dimensions with ForgeScore, and reconstructed into a Living Spec before a single line of C# is generated. That is what keeps behavior intact and architecture on plan.
8
ForgeScore dimensions
Every stage
Approval gates
6
Pipeline stages
What changes when you move to .NET
The shift is more than syntax. Paradigms, data access, and runtime assumptions all move, and each one needs an explicit mapping.
01
Language & paradigm
PowerScript event handlers attached to visual objects are restructured into idiomatic C# classes and services rather than transliterated event for event.
02
Data access
DataWindow objects, which bind query, layout, and update logic in a single artifact, are decomposed into explicit Entity Framework Core data access plus a separate presentation layer.
03
Runtime & packaging
Client-server executables deployed to desktops give way to ASP.NET Core services, with the database connection moved behind an application tier.
04
Tooling & workflow
The proprietary PowerBuilder IDE and binary PBLs are replaced by Visual Studio or Rider, plain-text sources under Git, automated tests, and CI pipelines.
What Forge actually produces
Every PowerBuilder import is scored across 8 engineering-health dimensions, then broken into Build, Migrate, and Decommission work orders. Here is what that looks like for a DataWindow coupling finding.
ForgeScore finding
Data Weight
54
How data is modeled, moved, and owned. Moderate score: DataWindow objects bind query, layout, and update rules together, though the SQL Server data tier itself stays in place.
Medium severity finding
Migration work order
Migrate: d_customer_list
Migrate
Decompose the customer DataWindow into a typed C# model, explicit data access, and a separate presentation layer with equivalent validation. Includes verification against the original PowerBuilder behavior before this work order is marked complete.
Common challenges
Most PowerBuilder migrations fail for the same handful of reasons, and it is rarely the technology itself.
Logic sealed in binary PBLs
Business rules live inside compiled library files that cannot be read or searched without the proprietary IDE, so discovery has to happen before any planning.
DataWindow coupling
A single DataWindow binds SQL, layout, validation, and update behavior together, and each concern has to be separated before it can move.
Type & semantic mismatches
PowerScript's decimal handling and implicit conversions need explicit mapping onto C# decimal and nullable types to preserve financial precision.
No test coverage
Legacy PowerBuilder systems usually ship with nothing to prove behavioral parity against.
Frequently asked questions
How long does migrating PowerBuilder to .NET take?
Can Forge read our compiled PBL files?
Will the generated C# be maintainable?
What happens to our DataWindows?
How do you prove the migrated system behaves the same?




