A Deep Dive into OpenEdge GUI for.NET ™ 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.
DEV-13: You've Got a Problem, Here’s How to Find It
OpenEdge GUI for .NET Adoption and Migration Strategies
John Sadd Progress Fellow and OpenEdge Evangelist
COMP-03 Business Objects’ Crystal Reports Server for Progress Customers and Partners Jason McCafferty, Business Objects Consultant Jim Lundy, Progress.
385 Amazing UI Modernization Using Telerik UI for WinForms
What’s new in Progress Developer Studio for OpenEdge 11.0?
OpenEdge 10.2B Ken Wilner, Vice President of Technology.
ARCH-6: UML Modeling with Enterprise Architect Phillip Magnay Technical Architect.
A New Object Model for WebSpeed and HTTP
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.
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.
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.
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.
ISYS 350 Business Application Development David Chao.
COMP-1: OpenEdge® Management Overview and Demo Principal Technical Support Engineer Cyril E. Gleiman.
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.
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.
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
DEV-29: A Deep Dive into the Advanced GUI OpenEdge ® 10.2A Shelley Chase OpenEdge Architect Peter Judge OpenEdge Principal Software Engineer.
C# and.NET. .NET Architecture  Compiling and running code that targets.NET  Advantages of Microsoft Intermediate Language (MSIL)  Value and Reference.
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.
A2: Making OpenEdge ® Architect Work For You Susan Houniet Senior Solution Consultant.
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.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Joe Hummel, PhD Dept of Mathematics and Computer Science Lake Forest College Lecture 4: Intro to GUIs and the.
DEV-21: Embracing OpenEdge ® Architect Sunil S Belgaonkar Software Architect.
Office 365 Development July 2014.
Office 365 Development July 2014.
DEV-25: You've Got a Problem, Here’s How to Find It
Jason McCafferty, Business Objects Consultant
Reaching more customers with accessible Metro style apps using HTML5
DEV-3: Introduction to the OpenEdge® GUI for .NET
ARCH-1: Application Architecture made Simple
– JukeBox – transparency, flexibility, speed and comfort!
DEV-15: A Deep Dive into OpenEdge GUI for .NET™
DEV-11: Architecting Your Application in OpenEdge® 10
Chapter 15: GUI Applications & Event-Driven Programming
Enterprise Developer Camp Jumpstart
Dev 11: Embracing OpenEdge® Architect
ARCH-2: OpenEdge Reference Architecture (OERA) Latest Thinking
Office 365 Development July 2014.
SOA-09: Conducting Business with OpenEdge® and SonicMQ®
Presentation transcript:

A Deep Dive into OpenEdge GUI for.NET ™ Peter Judge OpenEdge Principal Software Engineer

© 2008 Progress Software Corporation2 A Deep Dive into GUI for.NET Get Ready… We’re Going Under  Attended OpenEdge GUI for.NET intro session  Understand OO concepts Classes, Inheritance, Methods  Comfortable with OpenEdge Architect  Can hold your breath for a really long time…

© 2008 Progress Software Corporation3 A Deep Dive into GUI for.NET Demo: OpenEdge GUI for.NET in AutoEdge Update an existing application to use OpenEdge GUI for.NET New: –Main container –Customer maintenance form –Test drive scheduling form Existing: –Everything else… Note: application followed OERA

© 2008 Progress Software Corporation4 A Deep Dive into GUI for.NET 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 A Deep Dive into GUI for.NET Agenda  ABL for OpenEdge GUI for.NET GUI for.NET Architecture ABL Forms & Controls ABL Data Binding ABL Event Handlers Mix and Match Support  Using GUI for.NET in AutoEdge

© 2008 Progress Software Corporation6 A Deep Dive into GUI for.NET 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

© 2008 Progress Software Corporation7 A Deep Dive into GUI for.NET 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

© 2008 Progress Software Corporation8 A Deep Dive into GUI for.NET.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

© 2008 Progress Software Corporation9 A Deep Dive into GUI for.NET.NET I/O Blocking Model (Event Loop)  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 using call to Application:Exit( )

© 2008 Progress Software Corporation10 A Deep Dive into GUI for.NET ABL Forms in OpenEdge GUI for.NET  ABL Forms are containers for.NET UI Controls .NET UI Controls Microsoft ®.NET WinForms controls OpenEdge Ultra Controls for.NET (Infragistics ® NetAdvantage) 3 rd party.NET WinForms controls  ABL.NET UI controls User controls Inherited controls CLASS CustForm INHERITS Progress.Windows.Form:

© 2008 Progress Software Corporation11 A Deep Dive into GUI for.NET ABL.NET Controls - User Control  Custom ABL control container for existing controls to provide complex behavior  Examples of user controls Label and editor Address block Grid and viewer CLASS AddrViewer INHERITS Progress…UserControl:

© 2008 Progress Software Corporation12 A Deep Dive into GUI for.NET ABL.NET Controls – Inherited Control  Customizes behavior of an existing.NET UI control using inheritance  Examples of inherited controls Buttons: Ok, Cancel, Help Drop-downs: States, Post codes, Countries CLASS OkButton INHERITS Infragistics…UltraButton:

© 2008 Progress Software Corporation13 A Deep Dive into GUI for.NET Demo: ABL Forms  Create a login dialog

© 2008 Progress Software Corporation14 A Deep Dive into GUI for.NET.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 ).

© 2008 Progress Software Corporation15 A Deep Dive into GUI for.NET Demo: Event Handler  Validate user on OK button click

© 2008 Progress Software Corporation16 A Deep Dive into GUI for.NET.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 Corporation17 A Deep Dive into GUI for.NET 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 Corporation18 A Deep Dive into GUI for.NET 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 Corporation19 A Deep Dive into GUI for.NET Demo: Data binding  Bind a list of client types to the login dialog

© 2008 Progress Software Corporation20 A Deep Dive into GUI for.NET 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 Corporation21 A Deep Dive into GUI for.NET 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

© 2008 Progress Software Corporation22 A Deep Dive into GUI for.NET 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 ( ).

© 2008 Progress Software Corporation23 A Deep Dive into GUI for.NET Demo  AutoEdge main container form

© 2008 Progress Software Corporation24 A Deep Dive into GUI for.NET 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 Corporation25 A Deep Dive into GUI for.NETDEV-7 What’s New in the Object-Oriented ABL Additional Materials PSDN Live Boston 2008 Sessions  DEV-2: Making OpenEdge Architect Work for You  DEV-3: Introduction to the OpenEdge GUI for.NET  DEV-17: Using SmartDataObjects with the Advanced GUI (GUI for.NET)  DEV-19: OpenEdge ABL Info Exchange Exchange 2008 Sessions  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

© 2008 Progress Software Corporation26 A Deep Dive into GUI for.NET Questions ?

© 2008 Progress Software Corporation27 A Deep Dive into GUI for.NET Thank You

© 2008 Progress Software Corporation28 A Deep Dive into GUI for.NET