DEV-29: A Deep Dive into the Advanced GUI OpenEdge ® 10.2A Shelley Chase OpenEdge Architect Peter Judge OpenEdge Principal Software Engineer.

Slides:



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

DEV-2: Getting Started with OpenEdge® Architect – Part I
Improving your OpenEdge® Development Productivity David Lund Sr. Training Program Manager, Progress.
OpenEdge® Object-oriented ABL
DEV-13: You've Got a Problem, Here’s How to Find It
OpenEdge GUI for .NET Adoption and Migration Strategies
A Deep Dive into OpenEdge GUI for.NET ™ Peter Judge OpenEdge Principal Software Engineer.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
John Sadd Progress Fellow and OpenEdge Evangelist
385 Amazing UI Modernization Using Telerik UI for WinForms
What’s new in Progress Developer Studio for OpenEdge 11.0?
ARCH-6: UML Modeling with Enterprise Architect Phillip Magnay Technical Architect.
A New Object Model for WebSpeed and HTTP
Visual Basic 2008 Express Edition The IDE. Visual Basic 2008 Express The Start Page Recent Projects Open an existing project Create a New Project.
Hands-on Introduction to Visual Basic.NET Programming Right from the Start with Visual Basic.NET 1/e 6.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
What's New In Progress Developer Studio for OpenEdge?
DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer.
© 2009 Progress Software Corporation 1 Click to Edit Master Subtitle Style Overview of OpenEdge® GUI for.NET Release 10.2A Jarmo Nieminen Senior Technical.
Using the Actions Pane, Host Controls, and Smart Tags
DEV-2: Making OpenEdge ® Architect Work For You David Lund Product Readiness.
An Introduction to Visual Basic
OpenEdge GUI for.NET Adoption & Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd.
Virtual techdays INDIA │ Nov 2010 Developing Office Biz Application using WPF on Windows 7 Sarang Datye │ Sr. Consultant, Microsoft Sridhar Poduri.
ARCH-03: Implementing the OpenEdge™ Reference Architecture – Part 1 John Sadd Progress Fellow and OpenEdge Evangelist.
A4: Introduction to the OpenEdge ® GUI for.NET Jim Lundy Principal Product Manager.
Windows Forms: Harnessing The Power And Flexibility Of Windows Forms 2.0 Erick Ellis PRS402 Program Manager.NET Client Microsoft Corporation.
DEV-5: Introduction to WebSpeed ® Stephen Ferguson Sr. Training Program Manager.
Chapter One An Introduction to Visual Basic 2010 Programming with Microsoft Visual Basic th Edition.
DEV-6: Introduction to the OpenEdge ® Advanced GUI Jim Lundy Principal Product Manager.
DEV-05: Ratcheting up your OpenEdge™ Development Productivity Sunil S Belgaonkar Principal Software Engineer.
DEV-09: User Authentication in an OpenEdge™ 10.1 Distributed Computing Environment Michael Jacobs Development Architect.
ARCH-4: The Presentation Layer in the OpenEdge® Reference Architecture Frank Beusenberg Senior Technical Consultant.
DEV-36: Composite MVP – Building Blocks in Presentation Layer
DEV-16: Leveraging the Power of Advanced GUI Power is nothing without control Erwin in ‘t VeldCCS Tony VertentenIntris Eric DebeijProgress Roland de PijperProgress.
DEV-8: OpenEdge® Architect – Extensibility & Third Party Integration Sunil Belgaonkar Principal Software Engineer Architect Phillip Magnay.
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer, Progress Sonic.
C# GUI - Basics. Objectives.NET supports two types: WinForms, traditional, desktop GUI apps. WebForms – newer, for Web apps. Visual Studio.NET supports.
INNOV-14: A Look Inside the OpenEdge® UI Research Lab Bruce Gruenbaum Principal Software Engineer Shelley Chase
OpenEdge ® GUI for.NET ™ Modernize your user interface with ABL Shelley Chase OpenEdge Architect Progress Software Corporation Session 113.
ARCH-07: Implementing the OpenEdge™ Reference Architecture – Part 2
MOVE-5: Improving the look and feel of your OpenEdge® Application The OpenEdge User Interface Jiri De Jagere Product Consultant.
ARCH-11: Building your Presentation with Classes John Sadd Fellow and OpenEdge Evangelist Sasha Kraljevic Principal TSE.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design Second Edition by Tony Gaddis.
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer Progress Sonic.
DEV-6: Advanced Object-Oriented Programming in the ABL Evan Bleicher Senior Development Manager Shelley Chase
How a spark between Progress and an ISV can easily turn into a fire !
Your building blocks for fast and future-proof development Koen Verbeeck Senior R&D Engineer Evy De Block R&D Engineer
Amazing UI Modernization Using Telerik UI for WinForms
A7: Architecting Your Application in OpenEdge ® 10 Mike Ormerod Applied Architect.
ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect.
DEV-5: Using ProDataSets™ in OpenEdge ® 10 Cheryl LaBarge Product Readiness.
ARCH-5: Service Interfaces in Practice Christian Stiller Technical Architect.
MOVE-15: Leveraging Business Entities, Data Access Objects and ProDataSets with a Progress Dynamics® or ADM2 GUI Peter Judge Principal Software Engineer.
Understanding Desktop Applications Lesson 5. Understanding Windows Forms Applications Windows Forms applications are smart client applications consisting.
First Experiences With OpenEdge GUI for.NET Peter van Dam.
Peter Judge A8: What’s New in Object-Oriented ABL Principal Software Engineer OpenEdge 10.1C and beyond.
DEV-21: Embracing OpenEdge ® Architect Sunil S Belgaonkar Software Architect.
Adam Schultz MVVM and WPF. MVVM Model, View, ViewModel A software architecture designed to separate out User Interface design, Business Logic, and Data.
Office 365 Development July 2014.
Working in the Forms Developer Environment
Chapter 1: An Introduction to Visual Basic 2015
Chapter Topics 15.1 Graphical User Interfaces
DEV-25: You've Got a Problem, Here’s How to Find It
DEV-3: Introduction to the OpenEdge® GUI for .NET
ARCH-1: Application Architecture made Simple
DEV-15: A Deep Dive into OpenEdge GUI for .NET™
Chapter 15: GUI Applications & Event-Driven Programming
SOA-09: Conducting Business with OpenEdge® and SonicMQ®
Presentation transcript:

DEV-29: A Deep Dive into the Advanced GUI OpenEdge ® 10.2A Shelley Chase OpenEdge Architect Peter Judge OpenEdge Principal Software Engineer

© 2008 Progress Software Corporation2 DEV-29: A Deep Dive into the Advanced GUI Get Ready… We’re Going Under  Attended Advanced GUI Intro  Understand OO concepts Classes, Inheritance, Methods  Comfortable with OE Architect  Can hold your breath for a really long time…

© 2008 Progress Software Corporation3 DEV-29: A Deep Dive into the Advanced GUI Demo: Advanced GUI in AutoEdge  Existing application following OERA with OpenEdge GUI, Open Clients, WebSpeed ®, Sonic ™ New: Advanced GUI –Main container –Customer maintenance form –Test drive scheduling form Existing: Architecture / Code –Replaced View only in existing MVP model presentation layer –OERA business and data layers –Mix and match for remaining windows

© 2008 Progress Software Corporation4 DEV-29: A Deep Dive into the Advanced GUI 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

© 2008 Progress Software Corporation5 DEV-29: A Deep Dive into the Advanced GUI Agenda  ABL for the Advanced GUI Advanced GUI Architecture ABL Container Classes Mix and Match Support ABL Data Binding ABL Event Handlers ABL Custom Controls  Using the Advanced GUI in AutoEdge

© 2008 Progress Software Corporation6 DEV-29: A Deep Dive into the Advanced GUI Advanced GUI 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

© 2008 Progress Software Corporation7 DEV-29: A Deep Dive into the Advanced GUI Advanced GUI 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

© 2008 Progress Software Corporation8 DEV-29: A Deep Dive into the Advanced GUI.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 (ABL) System.Object (.NET) All.NET Classes ABL Forms.NET Controls.NET Classes = Green ABL Classes = Blue

© 2008 Progress Software Corporation9 DEV-29: A Deep Dive into the Advanced GUI.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

© 2008 Progress Software Corporation10 DEV-29: A Deep Dive into the Advanced GUI ABL Forms in the Advanced GUI  ABL form classes inherit from one of the following: Progress.Windows.Form –ABL WINDOW Progress.Windows.Dialog –ABL FRAME VIEW-AS DIALOG-BOX Progress.Windows.MDIForm –No ABL equivalent CLASS CustForm INHERITS Progress.Windows.Form:

© 2008 Progress Software Corporation11 DEV-29: A Deep Dive into the Advanced GUI.NET Controls and ABL Forms  ABL Forms are containers for.NET UI Controls Microsoft ®.NET Windows Form controls Advanced GUI Controls (Infragistics ® WinForms) 3 rd -party.NET controls  Other supported components Non-visual controls Extender providers ( UltraToolTipManager ) User-defined ABL custom controls

© 2008 Progress Software Corporation12 DEV-29: A Deep Dive into the Advanced GUI Demo: ABL Forms  Create a login dialog

© 2008 Progress Software Corporation13 DEV-29: A Deep Dive into the Advanced GUI 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

© 2008 Progress Software Corporation14 DEV-29: A Deep Dive into the Advanced GUI.NET UI Programming Model  Supports static (pre-defined) and dynamic (on-the-fly) user interfaces Static UI normally built using new WYSIWYG Visual Designer in Architect Dynamic UI is coded, often repository-based – customized for site, user, etc.  Mix of both is supported Apply each where necessary Hide / show / modify controls dynamically as necessary

© 2008 Progress Software Corporation15 DEV-29: A Deep Dive into the Advanced GUI.NET Data Types  Value types All numeric data types, Boolean Structures (Datetime, Size, Color) Enumerations Always passed by value  Reference types System.String.NET arrays ( indexes start at 0! ) All other objects Always passed by reference

© 2008 Progress Software Corporation16 DEV-29: A Deep Dive into the Advanced GUI.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  Subscribe ABL event handlers to events Information passed in from.NET

© 2008 Progress Software Corporation17 DEV-29: A Deep Dive into the Advanced GUI Event Handling in the Advanced GUI  Use the Subscribe( ) method to add event handlers written in ABL Method or internal procedure Support for multiple subscribers to one handler  Event handler called when events fires Two parameters passed in –Object firing the event ( System.Object ) –Event specific arguments( System.EventArgs) CustForm:FormClosing:Subscribe( FormClosingHdlr ).

© 2008 Progress Software Corporation18 DEV-29: A Deep Dive into the Advanced GUI Demo: Event Handler  Validate user on OK button click

© 2008 Progress Software Corporation19 DEV-29: A Deep Dive into the Advanced GUI.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

© 2008 Progress Software Corporation20 DEV-29: A Deep Dive into the Advanced GUI 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

© 2008 Progress Software Corporation21 DEV-29: A Deep Dive into the Advanced GUI 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.

© 2008 Progress Software Corporation22 DEV-29: A Deep Dive into the Advanced GUI Demo: Databinding  Bind a list of UI styles to the login dialog

© 2008 Progress Software Corporation23 DEV-29: A Deep Dive into the Advanced GUI ABL Custom Controls: User Controls  Inherits from Progress.Windows.UserControl Custom ABL control container Gives common behavior, look and feel to UI Add to control toolbox in Visual Designer  Examples of user controls Label and editbox Address block Grid and viewer CLASS AddrViewer INHERITS Progress…UserControl:

© 2008 Progress Software Corporation24 DEV-29: A Deep Dive into the Advanced GUI ABL Custom Controls: Inherited Controls  Inherits from existing.NET UI control Customize existing control Gives common behavior, look and feel to UI Add to control toolbox in Visual Designer  Sample inherited controls OK button Cancel button Read-only grid CLASS OkButton INHERITS Infragistics…UltraButton:

© 2008 Progress Software Corporation25 DEV-29: A Deep Dive into the Advanced GUI Demo: User-defined ABL Controls  Create ExplorerBar user control

© 2008 Progress Software Corporation26 DEV-29: A Deep Dive into the Advanced GUI Agenda  ABL for the Advanced GUI Advanced GUI Architecture ABL Container Classes Mix and Match Support ABL Data Binding ABL Event Handlers ABL Custom Controls  Using the Advanced GUI in AutoEdge

© 2008 Progress Software Corporation27 DEV-29: A Deep Dive into the Advanced GUI Outlook-style Container for AutoEdge  Advanced GUI main form Dashboard / Container Dynamic menu and toolbar –Hook up events Re-use existing architecture –OERA and MVP  Run using WAIT-FOR Application:Run ( ).

© 2008 Progress Software Corporation28 DEV-29: A Deep Dive into the Advanced GUI Demo  AutoEdge main container form

© 2008 Progress Software Corporation29 DEV-29: A Deep Dive into the Advanced GUI MDI Child Forms  Progress.Windows.MDIChildForm Hosts OpenEdge GUI windows –Only client area used –Uses window handle of.w –Menu, statusbar, etc. on main form  Progress.Windows.Form New Advanced GUI form –Infragistics: UltraGrid, UltraTree, Ribbon –ParentMDI property on child –Menu, statusbar, etc. on main form

© 2008 Progress Software Corporation30 DEV-29: A Deep Dive into the Advanced GUI Demo  MDIChild forms and GUI windows

© 2008 Progress Software Corporation31 DEV-29: A Deep Dive into the Advanced GUI 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

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

© 2008 Progress Software Corporation33 DEV-29: A Deep Dive into the Advanced GUI Questions ?

© 2008 Progress Software Corporation34 DEV-29: A Deep Dive into the Advanced GUI Thank You

© 2008 Progress Software Corporation35 DEV-29: A Deep Dive into the Advanced GUI