260 likes | 460 Views
Unleashing the Power of OpenEdge GUI for .NET. Part 1. Peter van Dam. Agenda. Background Architecture Microsoft .NET Controls OpenEdge Ultra Controls for .NET Office 2007 Graphic Design. My Background. Extensive ABL experience No .NET programming experience
E N D
Unleashing the Power of OpenEdge GUI for .NET Part 1 Peter van Dam
Agenda • Background • Architecture • Microsoft .NET Controls • OpenEdge Ultra Controls for .NET • Office 2007 • Graphic Design
My Background • 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 • 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 • Too many clicks • Too complex • No overview • A lot of hidden functionality • Too slow • ‘Card paradigm’ does not apply anymore
The Plan • 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
Visual Designer Perspective Visual Designer ABL Editor Design Canvas Sort by property/category Reset to default property Perspective Toolbox Properties view Category Control Group Properties tab Control Events tab Selected property Selected property description Bold indicates modified property WYSIWYG form designer Class Browser
Object Oriented Programming A B C D E 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(..,..)
Progress DataSet HeaderData DetailData ProDataSets DEFINE TEMP-TABLE ttCust NO-UNDO FIELD CustNum AS INTEGER FIELD Name AS CHARACTER FIELD Balance as DECIMAL ... 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).
OpenEdge Reference Architecture Enterprise Services Presentation BusinessComponents DataAccess DataSources
Implementing OERA with Classes http://www.psdn.com/library/ kbcategory.jspa?categoryID=1212 • 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…
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
You Must Register for Office 2007 Guidelines • 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 • Do you have the necessary skills? • Knowledge? • Creativity?
Graphic Design • 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
Example 2: Family Data (1) Employee Relative Benefit
? Questions so far