Presentation is loading. Please wait.

Presentation is loading. Please wait.

A18: A Deep Dive into the OpenEdge GUI for.NET Peter Judge OpenEdge Principal Software Engineer.

Similar presentations


Presentation on theme: "A18: A Deep Dive into the OpenEdge GUI for.NET Peter Judge OpenEdge Principal Software Engineer."— Presentation transcript:

1 A18: A Deep Dive into the OpenEdge GUI for.NET Peter Judge OpenEdge Principal Software Engineer

2 © 2008 Progress Software Corporation 2 Get Ready… Were Going Under Attended OpenEdge GUI for.NET Intro Understand OO concepts Classes, Inheritance, Methods Comfortable with OpenEdge Architect Can hold your breath for a really long time…

3 © 2008 Progress Software Corporation 3 Demo: OpenEdge GUI for.NET in AutoEdge Existing application following OERA New: OpenEdge GUI for.NET –Main container –Customer maintenance form –Test drive scheduling form

4 © 2008 Progress Software Corporation 4 D I S C L A I M E R Under Development This talk includes information about potential future products and/or product enhancements. What I am going to say reflects our current thinking, but the information contained herein is preliminary and subject to change. Any future products we ultimately deliver may be materially different from what is described here. D I S C L A I M E R

5 © 2008 Progress Software Corporation 5 Agenda ABL for the OpenEdge GUI for.NET GUI for.NET Architecture ABL Forms & Controls ABL Data Binding ABL Event Handlers Mix and Match Support Using the GUI for.NET in AutoEdge

6 © 2008 Progress Software Corporation 6 OpenEdge GUI for.NET Architecture Single Process for OpenEdge Runtime and.NET Common Language Runtime (CLR) OpenEdge Runtime.NET CLR.NET GUI frm = NEW Form( ). frm:Closing:Subscribe( EventHdlr1 ). WAIT-FOR Application.Run( frm ). EventHdlr1( ) … frm = NEW Form( ). frm:Closing:Subscribe( EventHdlr1 ). WAIT-FOR Application.Run( frm ). EventHdlr1( ) … ABL Logic OpenEdge UI (Presenter).NET UI (View) Bridge

7 © 2008 Progress Software Corporation 7 OpenEdge GUI for.NET Architecture Single Process for OpenEdge Runtime and.NET Common Language Runtime (CLR) OpenEdge Runtime.NET CLR.NET GUI frm = NEW Form( ). frm:Closing:Subscribe( EventHdlr1 ). WAIT-FOR Application.Run( frm ). EventHdlr1( ) … frm = NEW Form( ). frm:Closing:Subscribe( EventHdlr1 ). WAIT-FOR Application.Run( frm ). EventHdlr1( ) … ABL Logic OpenEdge UI (Presenter).NET UI (View) Bridge

8 © 2008 Progress Software Corporation 8.NET Inheritance Stack UI components inheritance stack includes.NET root class: System.Object … CustEntryForm (ABL) System… Form Progress. Windows.Form System… Control Infragistics… UltraButton … … Progress.Lang. Object System.Object All.NET Classes ABL Forms.NET Controls.NET Classes = Green ABL Classes = Blue

9 © 2008 Progress Software Corporation 9.NET Windows I/O Blocking Model Application with a single main form WAIT-FOR Application:Run( form ). Used for dashboard and MDI applications Other forms are children of the main form Closing the main form automatically terminates WAIT-FOR Application with several equal forms WAIT-FOR Application:Run( ). Forms shown at the same time or separately An event handler needs to terminate WAIT-FOR Application:Exit( ).

10 © 2008 Progress Software Corporation 10 ABL Forms in the OpenEdge GUI for.NET ABL Forms are containers for.NET UI Controls.NET Controls Microsoft ®.NET Windows Form controls OpenEdge Ultra Controls for.Net (Infragistics ® NetAdvantage) 3 rd -party.NET controls ABL.NET controls User controls Inherited controls CLASS CustForm INHERITS Progress.Windows.Form:

11 © 2008 Progress Software Corporation 11 ABL.NET Controls - User Control Custom ABL control container for complex behavior Examples of user controls Label and editor Address block Grid and viewer CLASS AddrViewer INHERITS Progress…UserControl:

12 © 2008 Progress Software Corporation 12 ABL.NET Controls – Inherited control Inherits from existing.NET UI control for extending behavior Examples on inherited controls Buttons: Ok, Cancel, Help Drop-downs: States, Post codes, Countries CLASS OkButton INHERITS Infragistics…UltraButton:

13 © 2008 Progress Software Corporation 13 Demo: ABL Forms Create a login dialog

14 © 2008 Progress Software Corporation 14.NET Event Model Controls define events they publish Strongly-typed events Support a list of handlers (callbacks) Controls fire an event when an action occurs All subscribed handlers get called Event specific arguments passed in from.NET System.EventArgs Subscribe ABL event handlers to events CustForm:FormClosing:Subscribe( FormClosingHdlr ).

15 © 2008 Progress Software Corporation 15 Demo: Event Handler Validate user on OK button click

16 © 2008 Progress Software Corporation 16.NET Data Binding Model Progress.Data.BindingSource Provides data for.NET UI Controls –How: Provides required APIs to.NET Controls (IList) –Why: OpenEdge data provided as.NET needs –What: Any ABL Query, Buffer or ProDataSet OpenEdge Runtime.NET CLR Progress.Data. BindingSource ProDataSet Customer Lift Line Skiing Urpon Frisbee Hoops Croquet Order 15301/01/ /04/ /04/93 Query 1 2 3

17 © 2008 Progress Software Corporation 17 Power of Progress.Data.BindingSource Brings ABL data-centric behavior to.NET –Automatic data synchronization –Automatic updating –Automatic batching –Automatic currency Properties –Updating: AllowEdit, AllowNew, AllowRemove –Current row state: NewRow, RowModified –Typed screen value: InputValue, ChildInputValue –General Information: Position, Count

18 © 2008 Progress Software Corporation 18 Data Binding Examples Simple.NET control ( UltraEdit ).NET browse-like control ( UltraGrid ).NET list control ( UltraListView ) editBox:DataBindings:Add ( Text, pBS, OrderNum ). list:DataSource = pBS. list:DataTextField = State. list:DataValueField = State-Name. grid:DataSource = pBS.

19 © 2008 Progress Software Corporation 19 Demo: Data binding Bind a list of client types to the login dialog

20 © 2008 Progress Software Corporation 20 ABL Mix and Match UI for Migration.NET forms and OpenEdge GUI windows can co-exist in same session One can parent the other All functionality maintained independently OpenEdge GUI windows can be embedded in a.NET forms Client area managed in ABL Other functionality managed in.NET Progress.Windows.MDIChildForm Progress.Windows.WindowContainer

21 © 2008 Progress Software Corporation 21 Agenda ABL for the OpenEdge GUI for.NET GUI for.NET Architecture ABL Forms & Controls ABL Data Binding ABL Event Handlers Mix and Match Support Using the GUI for.NET in AutoEdge

22 © 2008 Progress Software Corporation 22 Outlook-style Container for AutoEdge OpenEdge GUI for.NET main form Dashboard / Container Dynamic menu and toolbar –Hook up events Re-use existing architecture –OERA and MVP Run using WAIT-FOR Application:Run ( ).

23 © 2008 Progress Software Corporation 23 Demo AutoEdge main container form

24 © 2008 Progress Software Corporation 24 In Summary Modern, competitive UI in ABL Uses.NET objects –Object-oriented ABL –.NET object features (methods, properties, events) –WYSIWYG Visual Designer –Unlimited controls available Leverages what you know –ABL (events, business logic, data constructs) –Event-driven programming (WAIT-FOR) –OpenEdge Architect

25 © 2008 Progress Software Corporation 25 Relevant Exchange Sessions DEV-2: Making OpenEdge Architect Work for You DEV-6: Introduction to the OpenEdge GUI for.NET DEV-16: Leveraging the Power of Advanced GUI DEV-20: Sex and Sizzle – Developing with.NET and OpenEdge 10 DEV-32: Using the Advanced GUI, Structured Error Handling and SonicMQ to build a Semi- Disconnected Point of Sales DEV-40: Using SmartDataObjects with the Advanced GUI

26 © 2008 Progress Software Corporation 26 Questions ?

27 © 2008 Progress Software Corporation 27 Thank You

28 © 2008 Progress Software Corporation 28


Download ppt "A18: A Deep Dive into the OpenEdge GUI for.NET Peter Judge OpenEdge Principal Software Engineer."

Similar presentations


Ads by Google