300 likes | 504 Views
Your Applications and .netUI. John Campbell CTO ProStar Software. Overview. Personal and business introductions Architecture of.netUI Technical detour What's supported and what's not How to prepare / program for .netUI Alternatives Resources Futures. Personal Introduction.
E N D
Your Applications and .netUI John Campbell CTO ProStar Software
Overview • Personal and business introductions • Architecture of.netUI • Technical detour • What's supported and what's not • How to prepare / program for .netUI • Alternatives • Resources • Futures
Personal Introduction • Progress developer since 1985 • First QAD customer 1989 • Multiple Progress publications • Presenter and trainer for 20+ years • Domestic and international clientele • Author of multiple Progress applications
Business Introduction • ProStar Software – spun off in 2002 • Alliance partner in 2006 • Publisher of multiple QAD tools • Domestic and international distributor network • Over 70 customers worldwide
History of the QAD Application • Character starting in 1985 • GUI – character with win-95 front end • Desktop – first deployment to distributed (browser-based) architecture • .netUI – next-generation • MS .net – future implementation
.netUI Background • QAD's Strength: functionality • QAD's Achilles heel: "interface" • Actually, it is "modularity" • Desktop and .netUI are attempts to modernize QAD
.netUI Architecture • Character mode screen • Connection via telnet • Screen scraper (aka widget walker) • Browser rendering
Architecture – Part 2 • Screen scraper reads the screen • Creates a Progress temp table • Builds an XML document • Transfers to browser
Architecture – Part 3 • Code on browser side (Tomcat) intercepts XML doc • Renders doc into browser interface • Manages Web data entry
Screen Scraper Details • "Walks" a character screen • Reads the screen objects • Determines the characteristics of each • Records them • Transmits them
Drilling down the screen scraper • Only recognizes frames and fields • Finite / limited number of attributes • Location • Size • Format / label • Tab order • Etc.
Progress Technical Insights • V6 vs. V7 • V6 was static, frame-oriented interface • V7 introduced dynamic objects • Character and GUI • Ability to build and modify objects "on the fly" • Multiple new objects
List of Screen Objects • Windows OR character • Browser • Radio Set • Check Box • Selection List • Drop-down box • Editor • Alert-boxes • Etc.
A widget "tree" • Hierarchy of screen objects • Imagine a temp-table of on-screen objects • Attributes • Type • Location • Tab Order, etc. • Related through a pre-determined hierarchy • Window frame field
Tying this together • The screen scraper accesses this hierarchy by means of handles • It traverses the tree • Bundles the attributes • Transmits them
Screen scraper decisions • Which objects to recognize and package • Which to ignore • Which attributes to recognize • Which to ignore
Screen scraper display choices • How to represent objects in a browser • Character vs. logical, for example • How to add affordances (lookups, etc) • How to navigate • Next / prev buttons • Tab order
What objects are recognized • Frames and Fields • Period
The dark (gray) side • Any GUI applications have to be rewritten • You cannot use alert-boxes • You may not use anything but frames and fields
"Wrapper" Considerations • Entry events in wrappers only fire on the first field of a frame • Leave events do not fire • Overlay frames must disable the other frames on the screen until complete
The Bright Side • If you follow the rules on the last pages: • All applications will work: • Standalone programs • Source code customizations • Wrappers • TailorPro • Etc.
How to code for .netUI • Use QAD includes • Scrolling frames • Messages • Reports • Lookup Browsers • Can implement new menu items
Architecture Insights • Unix character is "single-tier" or host based • GUI is / can be client-server • .netUI approaches 3-tier • MS .net will be multi-tier
Implications of Multi-tier • Business logic MUST be separated out • Interface can perform validation • No direct connection to DB • Use of app server • Data exchanged through prodatasets • Code could be / should be object-oriented
Future considerations (cont'd) • Progress O-O ABL • Implementation of object orientation in the "4GL" • Difficult to design • New learning curve / paradigm • Will require complete rewrite of every line of QAD code
Worth Thinking About • Pros and Cons of .netUI • Alternatives to upgrading
Resources • QAD Desktop / .netUI development Guidelines • ProStar .netUI implementation guidelines
Discussion / Questions Thank you! John Campbell john@prostar-software.com