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