59
OpenEdge GUI for .NET Adoption and Migration Strategies ike Fechner enior Architect & Director, onsultingwerk Ltd. Session 1018

OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

Embed Size (px)

Citation preview

Page 1: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

OpenEdge GUI for .NET Adoption and Migration Strategies

Mike FechnerSenior Architect & Director, Consultingwerk Ltd.

Session 1018

Page 2: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.2

Mike Fechner, Consultingwerk Ltd.

Independent IT consulting organization

Focusing on OpenEdge and .NET

Located in Cologne, Germany

Customers in Germany, Europe, USA

Vendor of tools and consulting programs

20 years of Progress experience (V5 … V10)

GUI for .NET early adaptor (since 10/2006)

Page 3: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.3

Agenda

Review GUI for .NET Adoption challenges Adoption strategies

• Parallel use of ABL GUI and GUI for .NET• Embedding of ABL GUI into GUI for .NET

(and vice versa)• New development using GUI for .NET

Conclusion

Page 4: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.4

OpenEdge GUI for .NET

A Microsoft® .NET™ based Windows graphical user interface that can replace or be integrated into an

existing OpenEdge GUI application

Page 5: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.5

OpenEdge GUI for .NET

State-of-the-art UI on the Windows desktop Integrated feature of OpenEdge 10.2A and 10.2B Supported by both GUI clients

• Fat client, prowin32.exe• WebClient

No separate license required• Deployment • Development

Access and use any .NET control

Page 6: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.6

Agenda

Review GUI for .NET Adoption challenges Adoption strategies

• Parallel use of ABL GUI and GUI for .NET• Embedding of ABL GUI into GUI for .NET

(and vice versa)• New development using GUI for .NET

Conclusion

Page 7: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.7

Adoption Challenges

Need to support pre-10.2A users as well Thousands of existing screens Training requirements

• OO fundamentals (new programming paradigm)• .NET fundamentals• Infragistics controls (or any other vendor)• OpenEdge 10.0: ProDatasets etc.

New tool: OpenEdge Architect

Page 8: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.8

Adoption Challenges

What are our architecture requirements? Where’s the ADM3? Or at least a working complete

sample application? I’ve never used Office 2007, but my customers or

sales people request the ribbon… Dockable panes, Explorer bars? What are you talking

about? Where the heck is the “Orb” in Office 2010?

Page 9: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.9

Agenda

Review GUI for .NET Adoption challenges Adoption strategies

• Parallel use of ABL GUI and GUI for .NET• Embedding of ABL GUI into GUI for .NET

(and vice versa)• New development using GUI for .NET

Conclusion

Page 10: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.10

Parallel Use of ABL GUI and GUI for .NET

Progress client supports ABL widgets and .NET controls at the same time

Procedures may instantiate and interact with classes Classes may run procedures Procedures may create .NET controls and subscribe

to events

Page 11: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.11

Enable ABL UI menu.w to support .NET Forms

Requires: The (one and only) WAIT-FOR Statements needs to be .NET style

Small modification in mainmenu.w program

WAIT-FOR CLOSE OF THIS-PROCEDURE .

/* .NET WAIT-FOR not associated to a .NET Form */

WAIT-FOR System.Windows.Forms.Application:Run () .

/* Use this method to terminate the WAIT-FOR, e.g from a WINDOW-CLOSE trigger. */

System.Windows.Forms.Application:Exit() .

Page 12: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.12

Enable ABL UI menu.w to Support .NET Forms

Requires: The (one and only) WAIT-FOR Statements needs to be .NET style

Small modification in mainmenu.w program

WAIT-FOR CLOSE OF THIS-PROCEDURE .

/* .NET WAIT-FOR not associated to a .NET Form */

WAIT-FOR System.Windows.Forms.Application:Run () .

/* Use this method to terminate the WAIT-FOR, e.g from a WINDOW-CLOSE trigger. */

System.Windows.Forms.Application:Exit() .

Replace WAIT-FOR for .NET support

Page 13: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.13

Demo

.NET Form started from ABL menu program ABL window started from .NET menu form

Page 14: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.14

Demo

Page 15: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.15

Demo

Page 16: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.16

Demo

Page 17: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.17

Demo

Page 18: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.18

Demo

Page 19: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.19

Agenda

Review GUI for .NET Adoption challenges Adoption strategies

• Parallel use of ABL GUI and GUI for .NET• Embedding of ABL GUI into GUI for .NET

(and vice versa)• New development using GUI for .NET

Conclusion

Page 20: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.20

Integration of ABL GUI into .NET Forms

ABL Windows embedded into .NET Forms Core feature of OpenEdge 10.2A and 10.2B, contents

of Window will be embedded into a .NET control Original intention was mixed mode MDI Upgrading the appearance of ABL application by

using .NET controls (menu, toolbar, Explorer bars, dockable panes, lookups with UltraGrid, …)

Step-by-step introduction of additional (Infragistics) controls to increase users productivity

Active X controls contained on the window are well supported (documented in K-Base)

Page 21: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.21

Demo

Sample MDI container showing various embedding scenarios• AppBuilder view• Embedded view (runtime)• MDI Childs with Toolbar• Independent Windows with ribbons• Turning ADM2 Tabfolder into dockable panes• Overlaying ABL Browse Widget with UltraGrid control

Page 22: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.22

.NET MDI Container

Page 23: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.23

AppBuilder View

Page 24: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.24

Embedded View

Page 25: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.25

Embedded View

Menu-Bar, part of Infragistics Toolbar

Page 26: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.26

Dockable Panes

Page 27: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.27

Dockable Panes

Page 28: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.28

Dockable Panes

Page 29: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.29

Browser

Page 30: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.30

Browser replaced with UltraGrid

Page 31: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.31

Embedded ABL Windows

Progress offers two controls for embedding:

Progress.Windows.WindowContainer• System.Windows.Forms.UserControl

– …– System.Windows.Forms.Control

Progress.Windows.MDIChildForm• Progress.Windows.Form

– System.Windows.Forms.Form– …– System.Windows.Forms.Control

Page 32: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.32

Embedded ABL Windows

Progress offers two Controls for embedding:

Progress.Windows.WindowContainer• System.Windows.Forms.UserControl

– …– System.Windows.Forms.Control

Progress.Windows.MDIChildForm• Progress.Windows.Form

– System.Windows.Forms.Form– …– System.Windows.Forms.Control

XXXXX

Page 33: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.33

Embedded ABL Windows

Menu BarWindow Border

Message Area

Status Area

Client Area(FRAMEs)

Page 34: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.34

Embedded ABL Windows

Client Area(FRAMEs)

Page 35: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.35

Embedded ABL Windows

Client Area(FRAMEs)

WindowContainer

.NET Form

Page 36: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.36

Embedded ABL Windows

ASSIGN oContainer = NEW WindowContainer () oContainer:EmbeddedWindow = hWindow .

Window may not yet be REALIZED (i.e., HIDDEN and VISIBLE not yet set, no LOAD-ICON)

When using AppBuilder generated code, this is only possible by using the Method-Library and include files

Page 37: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.37

Recommended Practices

Use include files for modifications on existing .w files; use compile-time check for pre 10.2A support

Render .NET controls dynamically from existing ABL widgets (menu, toolbar first)

Identification of additional ABL widgets that may be substituted with .NET controls (low-hanging-fruits first, tab folder, browser, …)

Design specialized .NET controls using Visual Designer, no dynamic code without need

Page 38: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.38

Recommended Practices / Event Handling

Keep the control in the .w file to reuse existing logic

.NET Event handlers should APPLY ABL Events• CLOSE OF WINDOW

– FormClosing Event should always be cancelled as ABL WINDOW-CLOSE trigger might terminate with RETURN NO-APPLY

• CHOOSE of MENU-ITEM, BUTTON, …– .NET ToolClick Event Handler executes ABL Event (i.e.,

CHOOSE on ABL widget)

Page 39: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.39

Real-world Sample I: Update Texware / Germany

ERP for textile producers of a German Progress partner • AppBuilder view• Runtime GUI for .NET

Own framework, developed in V7/V8

Transition to multi-window application

Challenge with pessimistic locking and large transactions

10 days of research, customization of partners’ framework and WinKit

Page 40: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.40

Real-world Sample I: Update Texware / Germany

Page 41: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.41

Real-world Sample I: Update Texware / Germany

Page 42: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.42

Real-world Sample I: Update Texware / Germany

Page 43: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.43

Real-world Sample II: Shuttleworth / UK

UK-based Progress Partner

Huge ERP system for printing industry

V8 style framework (ADM1-like)

Clear vision of Outlook look-and-feel

Browse windows as MDI children

Data windows as separate windows • Similar to Outlook where Emails and

Appointments are opened separately

Majority of changes in existing framework

Minor changes to existing screens

Page 44: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.44

Shuttleworth: Menu Toolbar & Browse Window

Page 45: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.45

Shuttleworth: Menu Toolbar & Browse Window

Page 46: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.46

Shuttleworth: Menu Toolbar & Browse Window

ABL Frame

Page 47: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.47

Shuttleworth: Data Window

Page 48: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.48

Shuttleworth: Data Window

Page 49: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.49

Shuttleworth: Data Window

ABL Frame

Page 50: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.50

Customer Feedback on Embedded Windows

Takes away time pressure from Progress ISV• Recognizable UI improvements with minimal effort• Reduced implementation risk (reduces testing and training)

Same source code remains usable on V9, V10.0, V10.1 (preprocessor checks)

Simplified maintenance, single code base

Developers can still use the well-known tools (AppBuilder) to maintain the application

Technology change at the pace of the team, not the trend

No “shock” for existing users, but sales easier

Page 51: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.51

Enhancing ABL GUI‘s Appearance

Don’t underestimate the power of new icons or images (before showing the first prototype to users or decision makers)

It’s usually worth US$ 250 — for 10.000s of icons (even when you may have to change later)

Review colors and fonts of the ABL GUI, use the blue colors known from Office 2007/2010, use modern fonts (Segoe UI, Verdana)

Page 52: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.52

Agenda

Review GUI for .NET Adoption challenges Adoption strategies

• Parallel use of ABL GUI and GUI for .NET• Embedding of ABL GUI into GUI for .NET

(and vice versa)• New development using GUI for .NET

Conclusion

Page 53: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.53

New Development Using GUI for .NET

Possible strategies• New screens integrated into existing application

(e.g., scheduler/planning screen or drill down)• Redevelop whole client

New development might go along with an architectural revision (OERA)

UI as the driver for new architecture

Page 54: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.54

New Development Using GUI for .NET

Don’t underestimate the time required to build (good) reusable components

Requires at least basic OO understanding• Type concepts, interface types, CAST• Strong typing can be a blessing and a curse

UI Framework or template building requires good OO design skills and knowledge about Visual Designer internals

Extension of (some) .NET classes is key to productive application development

Don’t inherit just because “you can”

Page 55: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.55

New Development Using GUI for .NET

Get used to MSDN, Infragistics Forum, Google and .NET community sites (e.g. Codeproject) to find answers to how-to questions

Learn translating C# or VB.NET to ABL

Consider hiring a .NET developer or mentor for the UI (but let him know that AppServer is not an SQL server or a Web server)

Page 56: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.56

Agenda

Review GUI for .NET Adoption challenges Adoption strategies

• Parallel use of ABL GUI and GUI for .NET• Embedding of ABL GUI into GUI for .NET

(and vice versa)• New development using GUI for .NET

Conclusion

Page 57: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.57

Conclusion

GUI for .NET is well integrated in today’s ABL and client products

Fully compatible to classic ABL GUI Nobody forces you to rewrite your client (at once) Start with integrating existing app into GUI for .NET Consider new architecture (OERA) Tools available to support adoption of GUI for .NET Start using OpenEdge Architect and OO today! That is

the best starting point for GUI for .NET

Page 58: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

© 2010 Consultingwerk Ltd. All rights reserved.58

Additional Information

Please visit our booth at the Exchange Online 2010 solutions expo!

http://www.consultingwerk.de/• WinKit

– Update texware case study– WinKit showcase

• SmartComponent Library

GUI for .NET Forum on http://www.psdn.com/

Page 59: OpenEdge GUI for.NET Adoption and Migration Strategies Mike Fechner Senior Architect & Director, Consultingwerk Ltd. Session 1018

OpenEdge GUI for .NET Adoption and Migration Strategies

Mike FechnerSenior Architect & Director, Consultingwerk Ltd.

Session 1018