Catch Me If You Can

advertisement
Unleashing the Power of
OpenEdge GUI for .NET
Part 1
Peter van Dam
Agenda






2
Background
Architecture
Microsoft .NET Controls
OpenEdge Ultra Controls for .NET
Office 2007
Graphic Design
My Background






3
Extensive ABL experience
No .NET programming experience
Participated in 10.2A alpha and beta
programs
Created a prototype for a customer
Currently working on a project for that
customer
And learning a lot!
Project Background







4
Application developed in ADM II
Without using AppServer
Style Guide dates from 1997 (Win95)
Tool set dates from 2001 (v9.0b)
800 users (about 550 concurrent)
Application has grown pretty large over the
years (4000 programs, 300 tables)
Reaching end of technical life time
User complaints






5
Too many clicks
Too complex
No overview
A lot of hidden functionality
Too slow
‘Card paradigm’ does not apply anymore
The Plan




6
Introduce rich .NET user interface
Adopt Office 2007 user interface
Implement OERA
Implement AppServer
for performance
Where to Begin?
Prerequisites:
 OpenEdge Architect (Eclipse)
 Object-Oriented Programming
 Structured Error Handling
 ProDataSets
 OERA
7
Visual Designer Perspective
Perspective
Sort by
Reset to
property/category default property
Design
Canvas
Visual
Designer
ABL
Editor
Toolbox
Properties
view
Category
Control
Group
Properties
tab
Control
Events
tab
Selected
property
Selected
property
description
Class Browser
8
Bold indicates
modified property
WYSIWYG
form designer
Object Oriented Programming
A
B
C
E
9
D
F
G
H
Structured Error Handling
Catch Me
If You Can
ROUTINE-LEVEL ON ERROR UNDO, THROW.
CATCH e AS Progress.Lang.Error…
UNDO, THROW NEW Progress.Lang.AppError(..,..)
10
ProDataSets
DEFINE TEMP-TABLE
FIELD CustNum
FIELD Name AS
FIELD Balance
...
ttCust NO-UNDO
AS INTEGER
CHARACTER
as DECIMAL
Header
Data
Progress
DataSet
Detail
Data
DEFINE TEMP-TABLE ttOrder NO-UNDO
FIELD OrderNum AS INTEGER
FIELD CustNum AS INTEGER
FIELD OrderDate AS DATE
...
DEFINE DATASET dsCustOrd FOR ttCust, ttOrder
DATA-RELATION CustOrdRel FOR ttCust, ttOrder
RELATION-FIELDS (CustNum, CustNum).
11
OpenEdge Reference Architecture
Presentation
Enterprise Services
Business Components
Data Access
Data Sources
12
OERA Implementation with Classes
13
Implementing OERA with Classes
http://www.psdn.com/library/
kbcategory.jspa?categoryID=1212




14
Documentation
Sample Code
Based on 10.1B
Adjust to your own needs
Standard Microsoft .NET Controls
 The .NET platform comes with an
extensive set of standard controls
 Some are essential for any .NET
application
 But they are not sufficient to build a
modern .NET application with an
Office 2007 look-and-feel…
15
OpenEdge Ultra Controls for .NET
 These are in fact Infragistics controls
 They are not free: an additional €770,per developer is charged
 There is no runtime license
 Includes Office 2007 look-and-feel
 Includes ‘AppStyling’
 IMHO you cannot do without
16
Office 2007 User Interface
17
Office 2007 User Interface Guidelines
18
Office 2007 User Interface Guidelines
19
You Must Register for Office 2007 Guidelines





20
Go to http://msdn.microsoft.com/officeui
Register for a license (free)
Download and study the Office Fluent UI
Design Guidelines
Install the OpenEdge Ultra Controls for .NET
after registering
Install NetAdvantage Help from the OE10.2A
Doc/3party directory last.
Graphic Design



21
Do you have the
necessary skills?
Knowledge?
Creativity?
Graphic Design





22
The customer never paid attention to graphic
design
Application design was based on
functionality, not user experience
We decided to add a User Experience
Designer to the team
He helps turn around users, designers,
developers
Yields Style Guide and awareness
Example 1: Payment Data
Header
Detail
23
Example 2: Family Data (1)
Employee
Relative
Benefit
24
?
Questions so far
25
Let’s Go To
The Fun Part!
26
Download