Title: DEV-6: Introduction to the OpenEdge
1DEV-6 Introduction to the OpenEdge Advanced GUI
Jim Lundy
Principal Product Manager
2Agenda
- What is the New UI
- Advanced GUI Overview
- Architectural Overview
- Visual Designer Demo
- Q A
3Under 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.
4What is the New UI?
The New UI is
- A Microsoft .NET based Windows graphical user
interface that can replace or be integrated into
an existing OpenEdge GUI Client
5Why an OpenEdge GUI for .NET?
- Microsoft Windows is the market leader for
desktop applications - De-facto standard
- Competitive
- Start-of-the-art user interfaces
- Microsoft .NET Windows Forms is purposed for line
of business applications - Model-View-Presenter (MVP) pattern
- Data-centric UI controls
- ADO.NET maps well to a ProDataSet
6.NET UI Components
- Wealth of .NET controls
- Microsoft and Infragistics
- Other 3rd party controls
- .NET Extender providers
- Cross-control functionality (Tooltips, Errors)
- .NET User Controls
- User-defined custom controls
7What is it Called?
- New UI
- Project name OpenEdge Advanced GUI
- Not a product
- A feature of OpenEdge
- Develop using OpenEdge Architect or ABL
development products - New control set
- Project name OpenEdge Advanced UI Controls
- Will be a product optional add-on
- Add-on to OpenEdge development products
- Bundle of controls from Infragistics that extends
the .NET UI development capability
8Who is the target audience?
- ABL Developers using OpenEdge Architect
- Seeking to build extremely modern and appealing
.NET graphical user interface - Through the ease of ABL
9Target audience characteristics
- Customers using OpenEdge Architect
- For customers on OpenEdge
- Comfortable with Object Oriented concepts
- Seeking to build extremely modern and appealing
.NET graphical user interface - Windows oriented for development and user client
- Through the ease of ABL
- Desires an OpenEdge-centric development
environment
10When will it be available?
- Development Methodology
- Early POC and Usability input from customers
- Structured Technology Preview approach Beta
GA - Expected dates
- Technology Previews released during 2007
- Beta test target Q3 2008
- General Availability target 2H 2008
- Interested?
- Beta signup will be open at Exchange!
- www.progress.com/openedge/beta
11What reviewers are saying
OpenEdge 10.2A offers a superior interface that
not only streamlines developer productivity but
also allows us to enhance the look-and-feel of
our applications for our end-users
Tony Vertenten, Intris
12Primary Features and Benefits
- Leverages the ABL
- Single language No need to learn C, VB.NET
- Data binding between ABL data sources and UI
controls - Event binding between ABL methods and UI events
- Single design center OpenEdge Architect
- No need to purchase, learn or use non-OpenEdge
products (Visual Studio) - Benefits
- Shorter ramp-up ? Higher productivity
- Built-in data binding ? Purposed for business
applications - Built on OpenEdge Deployment and data source
flexibility
13Primary Features and Benefits
- Integrates with existing GUI (at container level)
- Independent of deployment topology (C/S or
n-tier) - Extensible with 3rd party controls and custom
controls - Adaptable to future UI enhancements or other
emerging UIs - Benefits
- Adopt at your own pace
- Contemporary Windows look and feel without
compromise - Architected for investment protection
14How does it compare to other OpenEdge UI
Technologies?
UI Technology
Tools to Use
Primary Use
OpenEdge Advanced GUI
Build modern state-of- the-art .NET GUIs in ABL
OpenEdge Architect 10.2A or above
Progress DynamicsOpenEdge StudioOpenEdge
Architect
Build Windows 95 user interface look and feel
Progress GUI
Build thick client GUI with thin client
deployment characteristics
OpenEdge StudioOpenEdge Architect
WebClient
Provides the capability to add alternate UIs
(.NET Java) to OpenEdge Apps
OpenClient Toolkit
OpenClient
Build Web-browser based apps with zero client
footprint
WebSpeed
WebSpeed Workshop
OpenEdge Architect OpenEdge Studio4GL
Development System
Build traditional green-screen user interfaces
Character
15How does it compare to other OpenEdge UIs?
n-Tier Distributed Computing
Zero Client Footprint
2-Tier Computing
Thin Client Footprint
OpenEdge Advanced GUI
Progress GUI
OpenClient.NET Java
WebSpeed
Progress Character
16OpenEdge GUI Architecture (Classic)
OpenEdge GUI ( Windows, Frames )
DataSets, Temp-tables
Common Infrastructure
OpenEdge Runtime
Data Access
Data Sources
17Advanced GUI Architecture (New)
.NET GUI
CLR
OpenEdge GUI ( Windows, Frames )
- GUI Visualization
- User interaction and events
UI Logic ( events, data binding )
DataSets, Temp-tables
- GUI components
- Data access
- I/O blocking
- Event handlers
OpenEdge Runtime
Common Infrastructure
Data Access
Data Sources
18ABL Extensions
- Progress.Windows.Form
- ABL forms inherit from this class
- InitializeComponent method (generated)
- Progress.Data.BindingSource
- New ABL object to access Progress data sources
- Extends .NET BindingSource class
- Binds .NET control to ABL data source (query)
- Event Subscription
- Subscribe method added to every .NET event
- Takes an ABL method / procedure name
19A Closer Look into the Advanced GUIPresentation
Layer
One Process for OpenEdge Runtime and .NET CLR
.NET GUI
ABL Logic
OpenEdge Runtime
.NET CLR
20A Closer Look into the Advanced GUI Presentation
Layer
DEF VAR frm AS Form. frm NEW Form(
). frmClosingSubscribe( FrmClose ). WAIT-FOR
Application.Run( frm ). Method VOID FrmClose(
) MESSAGE BYE VIEW-AS
ALERT-BOX. END.
.NET GUI
ABL Logic
OpenEdge Runtime
.NET CLR
21Advanced GUI ABL Language
- Create form and controls
- Event subscription handler methods (default)
- Binding to ABL data
Form.cls
Form / Data .p / .is
- Alternate location for event handlers
- Data source definition and query
Startup.p
- Entry point to run GUI
- NEWs Form.cls
- Performs WAIT-FOR
22Advanced GUI Tools Architecture
Eclipse, OpenEdge and .NET CLR work together
OpenEdge Architect
OpenEdge Client
ABL Editor
Visual Designer
Microsoft CLR
Eclipse (foundation
platform)
OpenEdge AVM
23Visual Designer
Built as an Eclipse plug-in for OpenEdge Architect
- WYSIWYG Form creation and editing
- Define Form
- Add .NET controls
- Set properties of controls and components
- Define data binding objects
- Add event subscriptions
- Class Browser
- Displays class member information about ABL and
.NET classes
24Visual Designer Perspective
Visual Designer
Toolbox
Properties view
Control
Selected property
Form
25Generated code for a form
26Advanced GUI Demo
27Visual Designer Perspective
Visual Designer
Toolbox
Properties view
Control
Selected property
Form
28Advanced GUI Prerequisites
- ABL Programming
- Object-oriented ABL
- .NET Windows Form Framework Classes
- .NET Infragistics Windows Form Classes
- OpenEdge Architect
- WYSIWYG Visual Designer
- Properties view and Control Toolbox
- Object-oriented Class Browser
29Preparing for Advanced GUI
Steps You Can Take Now
- Move to OpenEdge 10 Ideally 10.1C
- Move UI logic to methods
- Consider UI Design
- Get familiar with OOABL constructs and syntax
- Create and access UI objects
- Call methods, access properties
- Subscribe to UI events
- Beta signup
Catch the Wave!
30Exchange Content OpenEdge Advanced GUI
- DEV-16 Leveraging the Power of the Advanced GUI
- Tony Vertenten, Intris
- Erwin in t Veld, CCS
- Roland de Pijper, Eric Debeij, Progress
- DEV-29 Deep Dive into Developing with Advanced
GUI - Shelley Chase, Product Architect, Progress
- DEV-32 Using the Advanced GUI, Structured Error
Handling and SonicMQ to build a Semi-Disconnected
Point of Sale - Brian Preece and Romin Sanai, BCP Software
- DEV-40 Using SmartObjects with Advanced GUI
- Mike Fechner, ConsultingWerk
- DEV-43 OpenEdge Tools and User Interface Info
Exchange - Jim Lundy, Principal Product Manager, Progress
31?
Questions
32Thank You
33(No Transcript)