> For the complete documentation index, see [llms.txt](https://docs.iceteagroup.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iceteagroup.com/general/framework/extensions.md).

# Extensions

The PPJ Framework is not simply a supporting library for ported applications. It is also a complete and mature framework that makes it possible for complex business applications to function correctly using the .NET Framework. It takes the best of both worlds and puts it together. All the controls and classes in the PPJ Framework are directly based on existing .NET classes and controls. Therefore, all the great features that are available to all .NET classes and controls are also available to the ported code.

But the PPJ Framework also adds a lot of functionality (most of it is behind the scenes) and fixes a lot of bugs or incomplete features coming from the .NET Framework. By itself the .NET Framework is not really ready for enterprise level business applications, it needs a lot of additional work to achieve even the most basic functionality that is simply available to SQLWindows/Team Developer developers.

To name a few:

*Masked editing, Typed controls, Consistent MDI support, Transparent SQL support, Expression Interpreter, Advanced Tab Control, Advanced Grid Control, Consistent Validation system, DDE Support, Inherited Properties support in the designer, etc. etc.*

Ported applications benefit from the improvements in the PPJ Framework without having to modify any line of code. The most important improvements on existing controls are listed in the table below:

<table><thead><tr><th width="269">Functional Area/Component</th><th>Description</th></tr></thead><tbody><tr><td>Navigation Bar</td><td>The new SalNavigationBar control replaces in full the new Navigation Bar added in Unify Team Developer 6.</td></tr><tr><td>Table Window Control</td><td>The new SalTableWindow control is based of the FlexGrid.NET control and adds a lot of new features to the existing code.</td></tr><tr><td>Tab Control</td><td>The new SalQuickTabs control is based on the TabControl (Common Controls) in the .NET Framework.</td></tr><tr><td>Unicode Support</td><td>Ported applications are immediately Unicode compliant. The PPJ Framework adds new options to also support Unicode databases and files.</td></tr><tr><td>Bug Fixes</td><td>The PPJ Framework fixes a large number of bugs in the .NET Framework, mostly in the System.Windows.Forms namespace.</td></tr><tr><td>Object Oriented Types</td><td>All Sal and Sql functions are also implemented as object oriented functions allowing for ported and new code to use the new syntax seamlessly.</td></tr><tr><td>Custom Parser</td><td>The powerful built-in interpreter allows custom parsers to be plugged in in order to support any syntax.</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.iceteagroup.com/general/framework/extensions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
