© 2009 progress software corporation 1 click to edit master subtitle style overview of openedge®...
TRANSCRIPT
© 2009 Progress Software Corporation
1
Click to Edit Master Subtitle Style
Overview of OpenEdge® GUI for .NETRelease 10.2A
Jarmo NieminenSenior Technical Account Manager,
Progress Software Oy19 March 2009
© 2009 Progress Software Corporation
2
Agenda
Introduction Architecture OpenEdge Language Support OpenEdge Tool Support
OpenEdge GUI for .NET
© 2009 Progress Software Corporation
3
A Microsoft .NET™ based Windows graphical user interface that can replace or be integrated into an existing OpenEdge GUI application
A Microsoft .NET™ based Windows graphical user interface that can replace or be integrated into an existing OpenEdge GUI application
© 2009 Progress Software Corporation
4
User Interface is based on .NET forms and controls Windows Forms (WinForms) is the graphical user
interface API included as part of Microsoft's .NET Framework providing event-driven applications
.NET Controls are reusable classes that interact with users and are contained within a form
– Microsoft® .NET Windows Form controls– Ultra Controls for .NET (Infragistics® WinForms)– 3rd-party .NET controls
Development is done entirely in the ABL environment .NET forms can be mixed with ABL windows in the same
application
User Interface is based on .NET forms and controls Windows Forms (WinForms) is the graphical user interface API included as part of Microsoft's .NET Framework providing event-driven applications .NET Controls are reusable classes that interact with users and are contained within a form
– Microsoft® .NET Windows Form controls– Ultra Controls for .NET (Infragistics® WinForms)– 3rd-party .NET controls
Development is done entirely in the ABL environment .NET forms can be mixed with ABL windows in the same application
Primary characteristics
© 2009 Progress Software Corporation
5
OpenEdge GUI Client Products Use object-oriented ABL to access .NET objects Data binding between ABL data sources and .NET
controls Write ABL event handlers for .NET controls
OpenEdge Architect Build forms using new Visual Designer – WYSIWYG
editor Basic set of .NET UI controls
OpenEdge Ultra Controls for .NET (optional) Available as an optional product providing additional
feature rich .NET controls from Infragistics
OpenEdge GUI Client Products Use object-oriented ABL to access .NET objects Data binding between ABL data sources and .NET controls Write ABL event handlers for .NET controls
OpenEdge Architect Build forms using new Visual Designer – WYSIWYG editor Basic set of .NET UI controls
OpenEdge Ultra Controls for .NET (optional) Available as an optional product providing additional feature rich .NET controls from Infragistics
OpenEdge Products
© 2009 Progress Software Corporation
6
Leverages ABL Single language – No need to learn C#, VB.NET Direct `access to .NET controls – no control container required Data binding between ABL data sources and UI controls Event binding between ABL methods and UI events
Single tool set: OpenEdge Architect No need to purchase, learn or use non-OpenEdge products
Integrates with existing GUI
Independent of deployment topology (client server or n-tier)
Extensible with 3rd party and custom controls
Takes advantage of .NET WinForms technology and advancement
Leverages ABL Single language – No need to learn C#, VB.NET Direct `access to .NET controls – no control container required Data binding between ABL data sources and UI controls Event binding between ABL methods and UI events
Single tool set: OpenEdge Architect No need to purchase, learn or use non-OpenEdge products
Integrates with existing GUI
Independent of deployment topology (client server or n-tier)
Extensible with 3rd party and custom controls
Takes advantage of .NET WinForms technology and advancement
© 2009 Progress Software Corporation
7
OpenEdge UI Technologies
OpenEdge GUI for .NET
Build modern state-of- the-art GUIs for Microsoft Windows in ABL
10.2A: OpenEdge Architect*, OpenEdge Studio, 4GL Development System
UI Technology Primary Use Tools to Use
Progress GUI
WebClient
Open Client
WebSpeed
Character
Build Windows 95 user interface look and feel
Build thick client GUI with thin client deployment characteristics
Build alternate UIs (.NET & Java™) to OpenEdge AppsBuild Web-browser based apps with zero client footprint
Build traditional green-screen user interfaces
Progress DynamicsOpenEdge StudioOpenEdge Architect
OpenEdge StudioOpenEdge Architect
Open Client Toolkit
WebSpeed® Workshop
OpenEdge Architect OpenEdge Studio4GL Development System* Visual Designer only available with OpenEdge
Architect
© 2009 Progress Software Corporation
8
Agenda
Introduction Architecture OpenEdge Language Support OpenEdge Tool Support
OpenEdge GUI for .NET
© 2009 Progress Software Corporation
9
OpenEdge GUI for .NET Architecture
OpenEdge Client
OpenEdge AVM
Microsoft CLR
OpenEdge UI (Controller) .NET UI (View)
BridgeBridge
OpenEdge and .NET™ CLR within a single process
Define GUI components Data access I/O blocking (Wait-For) Event handlers
GUI Visualization User interaction and events
© 2009 Progress Software Corporation
10
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 ).
METHOD EventHdlr1( ) …
ABL Logic
OpenEdge UI (Presenter)
.NET UI (View)BridgeBridge
4
12
6
7 3 5
© 2009 Progress Software Corporation
11
Agenda
Introduction Architecture OpenEdge Language Support OpenEdge Tool Support
OpenEdge GUI for .NET
© 2009 Progress Software Corporation
12
OpenEdge GUI for .NET – Code components
Window
Create form and controls Event subscription & event handler methods Data Binding definitions (ProBindingSource)
Forms
Startup.p Entry point to run GUI NEW’s Form.cls Performs WAIT-FOR
SupportingFiles*.cls, *.p, *.i
Alternate location for event handlers Data source definition and query
*.cls
© 2009 Progress Software Corporation
13
.NET Inheritance Stack
Root class: Progress.Lang.Object
OpenEdge Form
Progress.Lang.Object ABL System.Object System.MarshalByRefObject System.ComponentModel.Component System.Windows.Forms.Control System.Windows.Forms.ScrollableControl System.Windows.Forms.ContainerControl System.Windows.Forms.Form
Progress.Windows.Form OE
.NET
CustEntryForm OE
Progress.Lang.Object ABL System.Object System.MarshalByRefObject System.ComponentModel.Component System.Windows.Forms.Control
.NET
.NET Control
Infragistics.Win.UltraControlBase Infragistics.Win.Misc.ControlBase Infragistics.Win.Misc.AutoSizeControlB Infragistics.Win.Misc.UltraButtonBase Infragistics.Win.Misc.UltraButton
ABL Class .NET class
Infragistics Class OpenEdge form OpenEdge derived Class
© 2009 Progress Software Corporation
14
.NET classes used like ABL classes Share common base class Progress.Lang.Object Can refer to .NET object type using namespace Case-sensitive type names
.NET classes used like ABL classes Share common base class Progress.Lang.Object Can refer to .NET object type using namespace Case-sensitive type names
Access to .NET objects based on object-oriented ABL
DEFINE VARIABLE myForm AS Progress.Windows.Form.DEFINE VARIABLE helloBtn AS System.Windows.Forms.Button.myForm = NEW Progress.Windows.Form ( ).helloBtn = NEW System.Windows.Forms.Button( ).helloBtn:Text = “Hello World”.myForm:Controls:Add(helloBtn).MESSAGE helloBtn:Text VIEW-AS ALERT-BOX.…
© 2009 Progress Software Corporation
15
Bind ABL data to .NET controls (data binding) New Progress.Data.BindingSource
– Enables design-time binding to business objects – Provides layer of abstraction between data and UI
Can bind UI control with various data sources: – Buffers, queries, ProDataSets
Bind ABL data to .NET controls (data binding) New Progress.Data.BindingSource
– Enables design-time binding to business objects – Provides layer of abstraction between data and UI
Can bind UI control with various data sources: – Buffers, queries, ProDataSets
ABL data sources tied directly to .NET controls
DEFINE VARIABLE custbs AS Progress.Data.BindingSource.CREATE QUERY hdlQry. ... /* Prepare and open query */custbs = NEW Progress.Data.BindingSource( hdlQry,"*","").custGrid:DataSource = Custbs.
© 2009 Progress Software Corporation
16
Agenda
Introduction Architecture OpenEdge Language Support OpenEdge Tool Support
OpenEdge GUI for .NET
© 2009 Progress Software Corporation
17
OpenEdge GUI for .NET Tools Architecture
OpenEdge Architect
ABL Editor Visual
Designer
OpenEdge Client
Eclipse, OpenEdge and .NET CLR work together
OpenEdge AVM
Microsoft CLR
Eclipse (foundation platform)
Visual Designer
WYSIWYG designer ABL Code generation Event subscriptions & handler methods Properties view
© 2009 Progress Software Corporation
18
Define FormAdd .NET controlsSet propertiesDefine data binding
objectsAdd event
subscriptions
Define FormAdd .NET controlsSet propertiesDefine data binding objectsAdd event subscriptions
Built as an Eclipse plug-in for OpenEdge Architect
WYSIWYG Form creation and editing
© 2009 Progress Software Corporation
19
Summary - ABL to .NET in a Nutshell
Modern, competitive UI in ABL Uses .NET objects Many 3rd party controls available
Visual Designer – WYSIWYG tool Leverages ABL
Object-oriented extensions .NET objects integrated into ABL hierarchy Built-in data type conversions Event-driven programming (WAIT-FOR) Mix-n-match of OpenEdge GUI and OpenEdge GUI for .NET Topology independent: Standalone, C/S, n-tier, web
(WebClient) Developers need only write ABL code
© 2009 Progress Software Corporation
20
OpenEdge GUI for .NET
Questions?
OpenEdge Client
OpenEdge AVM
Microsoft CLR
OpenEdge UI (Controller)
.NET UI (View)Bridg
eBridge
© 2009 Progress Software Corporation
21
Thank you foryour time
© 2009 Progress Software Corporation
22
© 2009 Progress Software Corporation
23
Questions?