Presentation is loading. Please wait.

Presentation is loading. Please wait.

A18: A Deep Dive into the OpenEdge GUI for .NET™

Similar presentations


Presentation on theme: "A18: A Deep Dive into the OpenEdge GUI for .NET™"— Presentation transcript:

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

2 Get Ready… We’re 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 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 Note that AutoEdge has ABL and ActiveX UIs. Say that this is the existing UI with OpenEdge GUI, Open Clients, WebSpeed®, Sonic™ Existing: Architecture / Code Replaced View only in existing MVP model presentation layer OERA business and data layers Mix and match for remaining windows

4 Under Development D I S C L A I M E R
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 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 OpenEdge GUI for .NET Architecture
Single Process for OpenEdge Runtime and .NET Common Language Runtime (CLR) OpenEdge Runtime .NET CLR ABL Logic .NET GUI frm = NEW Form( ). frm:Closing:Subscribe( EventHdlr1 ). WAIT-FOR Application.Run( frm ). EventHdlr1( ) … OpenEdge UI (Presenter) Bridge .NET UI (View) Bridge

7 OpenEdge GUI for .NET Architecture
Single Process for OpenEdge Runtime and .NET Common Language Runtime (CLR) OpenEdge Runtime .NET CLR ABL Logic .NET GUI frm = NEW Form( ). frm:Closing:Subscribe( EventHdlr1 ). WAIT-FOR Application.Run( frm ). EventHdlr1( ) … 4 7 1 3 5 2 OpenEdge UI (Presenter) Bridge .NET UI (View) Bridge 6

8 Infragistics… UltraButton
.NET Inheritance Stack UI components inheritance stack includes .NET root class: System.Object All .NET Classes ABL Forms .NET Controls Progress.Lang.Object System.Object System… Form System… Control Progress.Windows.Forms mainly for future functionality, mix & match Progress. Windows.Form Infragistics… UltraButton .NET Classes = Green ABL Classes = Blue CustEntryForm (ABL)

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( ). Note that if there’s even one .NET form in the app, you need to use .NET blocking model

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

11 ABL .NET Controls - User Control
CLASS AddrViewer INHERITS Progress…UserControl: Custom ABL control container for complex behavior Examples of user controls Label and editor Address block Grid and viewer Examples of user controls Label and editbox Address block Grid and viewer Sample inherited controls OK button Cancel button Read-only grid

12 ABL .NET Controls – Inherited control
CLASS OkButton INHERITS Infragistics…UltraButton: Inherits from existing .NET UI control for extending behavior Examples on inherited controls Buttons: Ok, Cancel, Help Drop-downs: States, Post codes, Countries Examples of user controls Label and editbox Address block Grid and viewer Sample inherited controls OK button Cancel button Read-only grid

13 Demo: ABL Forms Create a login dialog

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 Classes define events – strong type to control – strong typing between event and handler . All benefits of OO. CustForm:FormClosing:Subscribe( FormClosingHdlr ).

15 Demo: Event Handler Validate user on OK button click

16 Progress.Data. BindingSource
.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 ProDataSet Customer Lift Line Skiing Urpon Frisbee Hoops Croquet Order /01/ /04/ /04/93 Query Progress.Data. BindingSource 2 1 3

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 Data Binding Examples Simple .NET control ( UltraEdit )
.NET browse-like control ( UltraGrid ) .NET list control ( UltraListView ) editBox:DataBindings:Add ( “Text”, pBS, “OrderNum” ). grid:DataSource = pBS. LIST-ITEM-PAIRS attribute list:DataSource = pBS. list:DataTextField = “State”. list:DataValueField = “State-Name”.

19 Demo: Data binding Bind a list of client types to the login dialog

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 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 - Static members: overview of OOABL today – instance members - What does it mean to be static? - Static data (variables and properties) - Static methods (methods and properties) - What happens when a static member comes into being – static constructors - Static members in the hierarchy – inheritance, overriding and overloading - How to reference static members - How to use static members, use case example - Dynamic Programming (DYNAMIC-NEW, DYNAMIC-CAST - Data Widening rules

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 Demo AutoEdge main container form

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 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 ? Questions

27 Thank You

28


Download ppt "A18: A Deep Dive into the OpenEdge GUI for .NET™"

Similar presentations


Ads by Google