Lions and Tigers and Bears... Oh My!

Default Blog Top Image
by Shelley Chase Posted on July 01, 2008

I'm back from Exchange and vacation and I would like to share some of the questions (and concerns) I heard regarding the Advanced GUI. First and foremost, let's get talk about a new name. It was announced at Exchange that the new names are OpenEdge GUI for .NET and OpenEdge Ultra Controls for .NET. I like these names as they convey exactly what the feature and product is.

Exchange was a great experience for me this year since this year is the culmination of all of the hard work we've been doing to natively integrate a .NET user interface into OpenEdge. I was at both Exchange workshops and sessions for the "Advanced GUI" - presenter of "A Deep Dive into the Advanced GUI". The interest was gratifying for me and most everyone was excited with the feature. I got a lot of accolades. But the looming question in everyone's mind was how hard is this going to be for me . I have a few comments on this.

GUI programming is GUI programming. An application gets into a wait state and an event loop takes over any processing. GUIs can be well architected or not. This remains true with .NET.

The OpenEdge GUI for .NET can easily be compared with the current OpenEdge GUI and there are a lot of similarities. I gave out a 2-page handout at Exchange on this topic. The following is an excerpt:

DEFINE VAR

C-Win

AS

WIDGET-HANDLE.

CREATE WINDOW C-Win ASSIGN …

DEFINE VAR custForm AS CLASS CustomerForm.

custForm = NEW CustomerForm( ).

DEFINE QUERY CustQry FOR Customer SCROLLING.

DEFINE QUERY custQry FOR Customer SCROLLING.

DEFINE VAR custSource AS Progress.Data.BindingSource.

custSrc = NEW Progress.Data.BindingSource ( custQry ).

DEFINE BROWSE CustBrowse QUERY CustQry …

DEFINE VAR custGrid AS Infragistics...UltraGrid.

custGrid = NEW Infragistrics…UltraGrid( ).

custGrid:DataSource = custSrc.

DEFINE FRAME Default-Frame CustBrowse …

ENABLE CustBrowse WITH FRAME Default-Frame IN WINDOW C-Win.

InitializeComponents( ):

 Controls:Add( custGrid ).

 …

(controls enables by default)

VIEW C-Win.

custForm:Show( ).

WAIT-FOR CLOSE OF THIS-PROCEDURE.

WAIT-FOR Application:Run( custForm ).

While it might take some getting used to the syntax to create and access .NET controls, it is not that hard and as you can see often a one-to-one mapping. The complexity of OOABL comes with using inheritance, interfaces and polymorphism. Getting started with the OpenEdge GUI for .NET generally does not require the use of any of these concepts except within generated code from the Visual Designer. It's good to have some of the hard work done for you!

The challenge really comes in with using the extensive features provided by the .NET controls. There are common properties, methods and events that will easily become second nature. The more specific, custom behavior of each control is more difficult to navigate. To help with this learning we are translating the samples that come with the Infragistics controls from C# to ABL. These demonstrate a large amount of custom behavior of the controls. These samples will be available with the FCS of 10.2A.

I have seen a growing beta participant list for 10.2A which is very exciting. So get out there and catch the wave! I'll try to keep back the lions.

-Shelley


ShelleyChase2019
Shelley Chase
Shelley Chase, a Software Fellow with Progress Software for over 20 years, takes a whole product view over the company’s core product, OpenEdge. Her technical skills and customer-driven focus drive the architectural direction of the product. Shelley is extremely talented in system architecture, object-oriented programming, and cloud deployment technologies. Her passion is to provide a well-architected product with an excellent user experience and works with engineers, product managers and services to guarantee success. Shelley has a patent for her work on “Alternate Presentation Types for Human Workflow Activities.”

 
More from the author

Related Tags

Related Articles

The Key Benefits of CI/CD - Continuous Integration and Delivery
Learn about the ways Progress Professional Services deploys CI/CD to help OpenEdge customers and how they can help your organization.
Using OpenTelemetry Metrics Support in OpenEdge on Azure
The OpenEdge 12.6 release introduced support for OpenTelemetry Metrics with OpenEdge Command Center 1.2.
A Conversation with Progress OpenEdge’s Top Managed Database Administration Expert: Insights into the MDBA Service
We get the candid take on the OpenEdge Managed Database Administration (MDBA) Service from Roy Ellis, Director of the MDBA team. Discover what he thinks about our customers and what type of company he believes is the best candidate for the managed DBA service.
Prefooter Dots
Subscribe Icon

Latest Stories in Your Inbox

Subscribe to get all the news, info and tutorials you need to build better business apps and sites

Loading animation