A4: Introduction to the OpenEdge® GUI for .NET Jim Lundy Principal Product Manager Agenda What is the New UI GUI for .NET Overview Architectural Overview Visual Designer Demo Q&A 2 © 2008 Progress Software Corporation Under Development D I S C L A I M E R This talk includes information about potential future products and/or product enhancements. What I am going to say reflects our current thinking, but the information contained herein is preliminary and subject to change. Any future products we ultimately deliver may be materially different from what is described here. D 3 I S C L A I © 2008 Progress Software Corporation M E R What is the New UI? The New UI is… A Microsoft® .NET™ based Windows graphical user interface that can replace or be integrated into an existing OpenEdge GUI Client 4 © 2008 Progress Software Corporation OpenEdge GUI for .NET Based on Microsoft .NET GUI Technology (WinForms) • De-facto standard for state-of-the-art desktop applications • Purposed for line of business applications – Data-centric UI controls – ADO.NET maps well to a ProDataSet™ • Wealth of .NET controls – Microsoft and Infragistics® – Other 3rd party controls 5 © 2008 Progress Software Corporation What is it Called? New UI • • • • New control set • • • • 6 Project name: “OpenEdge Advanced GUI” Not a product… A feature of OpenEdge Develop using OpenEdge Architect or ABL development products Project name: “OpenEdge Advanced UI Controls” Will be a product… optional add-on Add-on to OpenEdge development products Bundle of controls from Infragistics that extends the .NET UI development capability © 2008 Progress Software Corporation What is it Called? New UI • • • • New control set • • • • 7 Technology name: “OpenEdge GUI for .NET” Not a product… A feature of OpenEdge Develop using OpenEdge Architect or ABL development products Product name: “OpenEdge Ultra Controls for .NET” Will be a product… optional add-on Add-on to OpenEdge development products Bundle of controls from Infragistics that extends the .NET UI development capability © 2008 Progress Software Corporation Who is the target audience? ABL Developers using OpenEdge Architect… Seeking to build extremely modern and appealing .NET graphical user interface… Through the ease of ABL 8 © 2008 Progress Software Corporation Target audience characteristics ABL Developers using OpenEdge Architect… • For customers on OpenEdge • Comfortable with Object Oriented concepts Seeking to build extremely modern and appealing .NET graphical user interface… • Windows oriented for development and user client Through the ease of ABL • Desires an OpenEdge-centric development environment 9 © 2008 Progress Software Corporation Primary Features and Benefits Leverages the ABL • Single language; No need to learn C#, VB.NET • Data binding between ABL data sources and UI controls • Event binding between ABL methods and UI events Single design center: OpenEdge Architect • No need to purchase, learn or use non-OpenEdge products (Visual Studio®) Benefits: • Shorter ramp-up Higher productivity • Built-in data binding Purposed for business applications • Built on OpenEdge: Deployment and data source flexibility 10 © 2008 Progress Software Corporation Primary Features and Benefits Integrates with existing GUI (at container level) Benefits: Independent of deployment topology (C/S or n-tier) Extensible with 3rd party controls and custom controls Adaptable to future UI enhancements or other emerging UIs • Adopt at your own pace • Contemporary Windows look and feel without compromise • Architected for investment protection 11 © 2008 Progress Software Corporation How does it compare to other OpenEdge UI Technologies? UI Technology Tools to Use OpenEdge GUI for .NET Build modern state-ofthe-art .NET™ GUIs in ABL OpenEdge Architect 10.2A or above Progress® GUI Build Windows 95 user interface look and feel Progress Dynamics® OpenEdge Studio OpenEdge Architect WebClient™ Build thick client GUI with thin client deployment characteristics OpenEdge Studio OpenEdge Architect OpenClient Provides the capability to add alternate UIs (.NET & Java™) to OpenEdge Apps OpenClient Toolkit WebSpeed® Build Web-browser based apps with zero client footprint WebSpeed Workshop Build traditional green-screen user interfaces OpenEdge Architect OpenEdge Studio 4GL Development System Character 12 Primary Use © 2008 Progress Software Corporation How does it compare to other OpenEdge UIs? Zero Client Footprint Thin Client Footprint 2-Tier Computing OpenEdge GUI for .NET Progress GUI OpenClient .NET & Java™ WebSpeed Progress Character 13 © 2008 Progress Software Corporation n-Tier Distributed Computing OpenEdge GUI Architecture “Classic” DataSets, Temp-tables Data Access Data Sources 14 © 2008 Progress Software Corporation Common Infrastructure OpenEdge Runtime OpenEdge GUI ( Windows, Frames ) CLR GUI for .NET Architecture “New” .NET GUI Bridge OpenEdge GUI ( Windows, Frames ) DataSets, Temp-tables • GUI components • Data access • I/O blocking • Event handlers Data Access 15 Data Sources © 2008 Progress Software Corporation Common Infrastructure OpenEdge Runtime • GUI Visualization UI Logic ( and events, data binding ) Bridge • User interaction events Single Process ABL Extensions Progress.Windows.Form • ABL forms inherit from this class • InitializeComponent method (generated) Progress.Data.BindingSource • New ABL object to access Progress data sources • Extends .NET BindingSource class • Binds .NET control to ABL data source (query) Event Subscription • Subscribe method added to every .NET event • Takes an ABL method / procedure name 16 © 2008 Progress Software Corporation A Closer Look into the GUI for .NET Presentation Layer One Process for OpenEdge and .NET Runtime .NET GUI frm = NEW Form( ). frm = NEW Form( ). frm:Closing:Subscribe( frm:Closing:Subscribe( EventHdlr1 ). EventHdlr1 ). WAIT-FOR Application.Run( frm ). WAIT-FOR Application.Run( frm ). EventHdlr1( ) … EventHdlr1( ) … ABL Logic Bridge Bridge OpenEdge Runtime AVM: ABL Virtual Machine 17 .NET CLR CLR: Common Language Runtime © 2008 Progress Software Corporation A Closer Look into the GUI for .NET Presentation Layer DEF VAR frm AS Form. frm = NEW Form( ). frm:Closing:Subscribe( FrmClose ). .NET GUI WAIT-FOR Application.Run( frm ). Method VOID FrmClose( ) MESSAGE “BYE” VIEW-AS ALERT-BOX. 7 END. ABL Logic 4 1 3 2 Bridge Bridge 6 OpenEdge Runtime 18 5 © 2008 Progress Software Corporation .NET CLR GUI for .NET ABL Language Form.cls • Create form and controls • Event subscription & handler methods (default) • Binding to ABL data Form / Data • Alternate location for event handlers • Data source definition and query .p / .i’s Startup.p 19 • Entry point to run GUI • NEW’s Form.cls • Performs WAIT-FOR © 2008 Progress Software Corporation Window GUI for .NET – IDE Architecture Eclipse, OpenEdge and .NET work together Visual Designer Eclipse (foundation platform) 20 © 2008 Progress Software Corporation CLR ABL Editor .NET Bridge GUI AVM OpenEdge Architect UI Logic Bridge Visual Designer Built as an Eclipse plug-in for OpenEdge Architect WYSIWYG Form creation and editing • Define Form • Add .NET controls • Set properties of controls and components • Define data binding objects • Add event subscriptions Class Browser • Displays class member information about ABL and .NET classes 21 © 2008 Progress Software Corporation Generated code for a form ABL Editor (source code tab) Form class Define form property Define control variables Constructor Initialize form and components Destructor Delete / free resources 22 © 2008 Progress Software Corporation Visual Designer Perspective Visual Designer Toolbox Properties view Control Selected property Class Browser 23 Form © 2008 Progress Software Corporation GUI for .NET Demo 24 © 2008 Progress Software Corporation Visual Designer Perspective Visual Designer Toolbox Properties view Control Selected property Class Browser 25 Form © 2008 Progress Software Corporation What reviewers are saying… “OpenEdge 10.2A offers a superior interface that not only streamlines developer productivity but also allows us to enhance the look-and-feel of our applications for our end-users” Tony Vertenten, Intris 26 © 2008 Progress Software Corporation Areas for Learning in GUI for .NET ABL • Object-oriented ABL – Create and access UI objects – Call methods, access properties – Subscribe to UI events • .NET Windows Form Framework Classes • .NET Infragistics Windows Form Classes OpenEdge Architect • WYSIWYG Visual Designer – Properties View and Control Toolbox • Object-oriented Class Browser 27 © 2008 Progress Software Corporation Exchange 2008 Content OpenEdge GUI for .NET DEV-16 Leveraging the Power of the Advanced GUI • Tony Vertenten, Intris • Erwin in ‘t Veld, CCS • Roland de Pijper, Eric Debeij, Progress DEV-29 Deep Dive into Developing with Advanced GUI • Shelley Chase, Product Architect, Progress DEV-32 Using the Advanced GUI, Structured Error Handling and SonicMQ to build a Semi-Disconnected Point of Sale • Brian Preece and Romin Sanai, BCP Software DEV-40 Using SmartObjects with Advanced GUI • Mike Fechner, ConsultingWerk 28 © 2008 Progress Software Corporation When will it be available? Development Methodology • Early POC and Usability input from customers • Structured “Technology Preview” approach; Beta; GA Expected dates • Technology Previews released during 2007 • Beta test started Q3 2008 • General Availability target Q4 2008 29 © 2008 Progress Software Corporation Preparing for OpenEdge GUI for .NET Steps You Can Take Now… Move to OpenEdge 10… Ideally 10.1C Separate logic from UI Consider UI Design Get familiar with new concepts Ready? • Beta is under way! • www.progress.com/openedge/beta …Ride the Wave! 30 © 2008 Progress Software Corporation ? Questions 31 © 2008 Progress Software Corporation Thank You 32 © 2008 Progress Software Corporation 33 © 2008 Progress Software Corporation