Dynamics4.NET FAQ: Is the rendering of static viewers possible with Dynamics4.NET?
Contents
At this point, the rendering of static viewers built on ABL Frames is not possible in Dynamics4.NET.
It is possible to create static .NET Viewers (substituting the ABL Frame with an .NET User Control) but there is no automated utility for that process (yet).
The recommended approach for such a situation would be to use the "save static object as dynamic object" function of the AppBuilder and continue with the dynamic rendering.
Reasons for using static viewers and options to avoid usage
Usually three reasons (beside traditional reasons) prevented developers from using dynamic viewers.
Performance
The performance of dynamic object rendering in Dynamics has greatly enhanced during recent 10.0B and 10.1 releases of OpenEdge. Dynamics4.NET leverages these optimizations. Additionally the static code generator has been implemented to combine the potential performance gain of static code deployment with the flexibility of dynamic repository based rendering. Dynamics4.NET objects can be deployed as static code as well.
Additionally the .NET Controls on the screen behave much faster than the ABL widgets. Container initialization behaves much faster as native .NET resizing is used. There is no need for runtime intensive window layout calculations and SmartObject positioning in the rendering procedures during the launch of folders or activating new folder pages.
Complexity of access to widgets in custom code
With the introduction of the Client Logic API (documented in "OpenEdge(R) Development: Progress Dynamics(R) Advanced Developmentā and the Dynamics4.NET Online documentation) the access to the widgets of a viewer or browser has become much easier. Direct access to properties of ABL widgets will be required in much fewer cases.
Integration of Active X Controls
Active X Controls are not supported in GUI for .NET Forms or Controls at all.
During the migration to Dynamics4.NET Active X Controls should be replaced with appropriate .NET Controls. We suggest using Infragistics Controls. Those advanced Controls will match the OpenEdge UltraControls and have support for the Infragistics AppStylist framework.
Our suggested approach for integrating .NET Controls into Dynamics4.NET is either a static SmartObject built using an ABL UserControl, a SmartDataField built using an ABL UserControl or an extended widget class built using an ABL UserControl or inherited Control.
See the Dynamics4.NET developers reference for additional details.
Other options
If that is not a feasible approach in your situation, please be aware, that complete ABL windows (i.e. DynObjc, DynFold or static windows) can be embedded into Dynamics4.NET Forms and the MDI Container. The toolbar can be replaced with a .NET version of the toolbar to enhance the look and feel. Please see the separate FAQ article on "Embedding ABL windows".
We have experimentally proven that the embedding of ABL windows can also be used to integrate individual SmartObjects (such as static viewers) into .NET rendered forms. Please contact us at d4support@consultingwerk.de for additional discussions on the ability of this solution. As of today this is not considered part of the Dynamics4.NET rendering engine.

![[+]](/D4wiki/wiki/explorer/img/toggle1.png)

![[-]](/D4wiki/wiki/explorer/img/toggle0.png)
