Click or drag to resize

PPJ Framework

The PPJ Framework is the collection of libraries that are needed by ported applications to support features that are not available, or are too different, in the standard .NET Framework.  For example, masked editing is not available in .NET 1.1 and the way it's implemented in .NET 2.0 is too different from what SQLWindows/Team Developer applications expect to use.

Additionally the PPJ Framework  provides a very convenient layer in between the newly generated .NET code and the .NET Framework. Thanks to this layer we can provide fixes for bugs that are present in the .NET Framework and we can debug applications putting breakpoints into key places in the core libraries.

The PPJ Framework is composed of 6 separate libraries (Table 1) compiled into .NET assemblies. Its architecture is very thin, most of the low level work is left to the .NET Framework and the PPJ Framework simply provides plumbing code, or adapts parameters and checks for errors.

Most of the implementation work is related to the visual layer and SQL Support.

PPJ Assembly



The core support library. Contains everything that is needed by most SAL applications, including support for reports, SQL binding, COM/ActiveX support, forms, QuickObjects, etc.


Implementation of the Visual ToolChest library. The implementation is fully based on .NET controls and classes and there are no proprietary controls.


Implementation of the XSal2 library in .NET.


Implementation of DDE functionality found in SQLWindows/Team Developer. The implementation is based on Microsoft's DDEML module, which is extremely reliable and still used by most Microsoft applications, including Office.


Reporting module for Crystal Reports .NET.


Reporting module for Combit List & Labels.


Reporting module for Microsoft Reporting Services.


Reporting module for Stimulsoft.


FlexGrid.NET component. This component is redistributed as part of the PPJ Framework under an OEM license between ITG and ComponentOne.


RibbonBar.NET assemblies. This component is redistributed as part of the PPJ Framework under an OEM license between ITG and ComponentOne.



Flexgrid and Ribbon designer files. These assemblies are needed only if the application is deployed as source code.


The SharpZipLib is used only by XSalZip functions. It can be freely distributed. The source code is available here.


Skinning engine assembly. Needed if the application uses skinning.


Note Note

Ported applications reference only the PPJ libraries that are actually needed. If your application doesn't use DDE functionality, you will not need to reference or deploy PPJ.Runtime.DDE.DLL.


All the PPJ assemblies are strongly named and can be deployed using XCOPY deployment or the GAC.