GUI for.net for Dummies

What is GUI for .NET and Why aren't I using It? “GUI for .NET for Dummies” Mike Fechner, Director, Consultingwerk Ltd. Consultingwerk Ltd.  Indep...
Author: Brittney George
35 downloads 0 Views 2MB Size
What is GUI for .NET and Why aren't I using It?

“GUI for .NET for Dummies”

Mike Fechner, Director, Consultingwerk Ltd.

Consultingwerk Ltd.  Independent IT consulting organization  Focusing on OpenEdge and .NET  Located in Cologne, Germany  Vendor of tools and consulting programs  22 years of Progress experience (V5 … OE11)  GUI for .NET early adaptor (since 10/2006)  Recently started with iPhone/iPad development http://www.consultingwerk.de/

2

OpenEdge® application modernisation solutions  WinKit  SmartComponent Library  Dynamics4.NET  Tools can be used together or separately  Share common code base  SmartComponents.Mobile, SmartComponents.Web  SmartBPMAdapter for OpenEdge BPM/Savvion Introduction to GUI for .NET

3

Agenda        

Overview OpenEdge GUI for .NET Language integration Visual Designer OpenEdge Ultra Controls Data Binding Mix and Match with classic ABL GUI Windows API access using .NET Conclusion

Introduction to GUI for .NET

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

Introduction to GUI for .NET

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 Introduction to GUI for .NET

AVM and .NET CLR in the same process OpenEdge Client OpenEdge AVM OpenEdge UI Bridge (Controller)

• GUI components • Data access • I/O blocking • Event handlers

http://www.consultingwerk.de/

Microsoft CLR Bridge

.NET UI (View)

• GUI Visualization • User interaction and events

7

OpenEdge GUI for .NET  .NET Framework hosted in Progress client  Direct access from ABL to .NET Objects or Controls using object orientation  Based on OOABL  Data binding support (Query, ProDataset, Buffer)  Tool support – Visual Designer (OpenEdge Architect) – Class browser – Code completion Introduction to GUI for .NET

8

OpenEdge products involved  OpenEdge GUI Client Products – Use object-oriented ABL to access .NET objects – Data binding between ABL data sources and .NET controls – Write ABL event handlers for .NET controls

 OpenEdge Architect (in theory optional) – Build forms using new Visual Designer – WYSIWYG editor – Basic set of .NET UI controls

 OpenEdge Ultra Controls for .NET (optional) – Available as an optional product providing additional feature rich .NET controls from Infragistics Introduction to GUI for .NET

9

OpenEdge AVM access to .NET classes  OpenEdge 10.2A, 10.2B: access to .NET 1.x, 2.0, 3.x  OpenEdge 11 adds support for .NET 4.0  OpenEdge 10.2A and 10.2B: .NET access in prowin32.exe and prowc.exe  OpenEdge 11.0 adds access to Windows TTY client and AppServer

http://www.consultingwerk.de/

10

Agenda        

Overview OpenEdge GUI for .NET Language integration Visual Designer OpenEdge Ultra Controls Data Binding Mix and Match with classic ABL GUI Windows API access using .NET Conclusion

Introduction to GUI for .NET

11

Language Integration  .NET integration based on language, not tools  .NET classes become “integrated” part of the ABL classes set  ABL to define reference variables of .NET objects  ABL to “NEW” .NET objects, use properties and methods  ABL to subscribe to events

Introduction to GUI for .NET

12

Language Integration OpenEdge Form Progress.Lang.Object

.NET Control ABL

Progress.Lang.Object

ABL

System.Object System.Object .NET .NET System.MarshalByRefObject System.MarshalByRefObject System.ComponentModel.Component System.ComponentModel.Component System.Windows.Forms.Control System.Windows.Forms.Control System.Windows.Forms.ScrollableControl Infragistics.Win.UltraControlBase System.Windows.Forms.ContainerControl Infragistics.Win.Misc.ControlBase System.Windows.Forms.Form Infragistics.Win.Misc.AutoSizeControl Infragistics.Win.Misc.UltraButtonBase Progress.Windows.Form OE Infragistics.Win.Misc.UltraButton CustEntryForm OE ABL Class

.NET class

Infragistics Class

OpenEdge form

Introduction to GUI for .NET

OpenEdge derived Class 13

Language Integration  Object oriented code preferred programming pattern, but    

Procedural code can create .NET objects as well Procedural code can use .NET objects as well Procedural code can respond to .NET events …

Introduction to GUI for .NET

14

Demo  Use procedure editor to create .NET Form  Button  Event handler

Introduction to GUI for .NET

15

Introduction to GUI for .NET

16

Agenda        

Overview OpenEdge GUI for .NET Language integration Visual Designer OpenEdge Ultra Controls Data Binding Mix and Match with classic ABL GUI Windows API access using .NET Conclusion

Introduction to GUI for .NET

17

Visual Designer  Feature of OpenEdge Architect (10.2) or „Progress Developer Studio for OpenEdge“ (11.0)  Graphical Designer for .NET Forms

 Referenced Assembly management  Toolbox management  Class Browser

Introduction to GUI for .NET

18

Visual Designer  WinForms Designer environment running inside of Eclipse  Supports developer friendly design time support known from .NET  In place editing, drag and drop  Wizards  Property sheets  Customized property sheets  Graphical property designers Introduction to GUI for .NET

19

Demo    

Visual Designer Resizing properties Event handling Review generated source code

Introduction to GUI for .NET

20

Customizing Visual Designer  http://blog.consultingwerk.de/consultingwerkblog /2011/06/presentation-download-forcustomizing-the-openedge-architect-visualdesigner/

Introduction to GUI for .NET

21

Agenda        

Overview OpenEdge GUI for .NET Language integration Visual Designer OpenEdge Ultra Controls Data Binding Mix and Match with classic ABL GUI Windows API access using .NET Conclusion

Introduction to GUI for .NET

22

OpenEdge Ultra Controls  3rd party controls required to build modern user interface! Microsoft Controls just don’t rock  Infragistics NetAdvantage for WinForms  Leading vendor of .NET Controls  Rebranded by Progress Software  Technical support provided by Progress Software  Samples in documentation and on PSDN  Part of GUI for .NET QA Introduction to GUI for .NET

23

OpenEdge Ultra Controls         

Ribbon Toolbars Explorer Bars Dockable Controls AppStylist Outlook style Calendar Controls Powerful Grid Control Editor Controls …

Introduction to GUI for .NET

24

Introduction to GUI for .NET

25

Introduction to GUI for .NET

26

OpenEdge Ultra Controls  "All animals are equal, but some animals are more equal than others“, George Orwell, Animal Farm  GUI for .NET designed to work with any .NET Control set  Other .NET Control sets should work fine as well, in recent versions there have been very few known issues, tech support will adress them  But you may have to play tech-support ping-pong Introduction to GUI for .NET

27

Demo  Outlook 2010 Calendar UI in under 5 minutes

Introduction to GUI for .NET

28

Agenda        

Overview OpenEdge GUI for .NET Language integration Visual Designer OpenEdge Ultra Controls Data Binding Mix and Match with classic ABL GUI Windows API access using .NET Conclusion

Introduction to GUI for .NET

29

Data Binding support  Data Binding is the way .NET Controls „expect“ data  Read and Update  Single fields (e.g. TextBox) or List of records (e.g. Grid)  Runtime Support through Progress.Data.BindingSource (extends System.Windows.Forms.BindingSource)  Tool support for providing design time schema Introduction to GUI for .NET

30

ProBindingSource features  Binding supported for – ABL Queries (temp-table or DB) – ABL Buffers, single record (temp-table or DB) – ProDataset, hierachical structure (temp-tables)

 .NET Controls may navigate data  Methods to refresh UI, when data changes  Methods to update data, when UI provides modifications (user data entry)  (Forward) Batching support to support large data Introduction to GUI for .NET

31

ProBindingSource Data Binding  Progress.Data.BindingSource – Provides data for .NET UI Controls • How: Provides required APIs to .NET Controls • Why: OpenEdge data provided as .NET needs 1 • What: Any2 ABL Query, Buffer or ProDataSet Progress.Data. ™ Query ProDataSet BindingSource Customer

Lift Line Skiing Order Urpon Frisbee 1 53 Hoops Croquet 2 81 3 66

01/01/93 01/04/93 01/04/93

OpenEdge AVM Introduction to GUI for .NET

3 .NET CLR 32

Demo    

ProBindingSource Designer in Visual Designer UltraGrid Text Editors Write code to provide query

Introduction to GUI for .NET

33

Agenda        

Overview OpenEdge GUI for .NET Language integration Visual Designer OpenEdge Ultra Controls Data Binding Mix and Match with classic ABL GUI Windows API access using .NET Conclusion

Introduction to GUI for .NET

34

Mix and match support  ABL GUI Windows and .NET Forms at the same time in the same client!  Run ABL Windows (.w file) from .NET Form  Run .NET Form (.cls file) from ABL procedural code  …  Common input blocking (WAIT-FOR)

Introduction to GUI for .NET

35

Introduction to GUI for .NET

36

Introduction to GUI for .NET

37

Mix and Match Support  Simple integration of first GUI for .NET screens into existing ABL GUI application  Modernize those screens first that need it the most – Main menu – Complex data entry screens – Scheduling screens  Leave other screens ABL GUI for very long (Country master table) Introduction to GUI for .NET

38

Embedded Windows  ABL Windows embedded into .NET Forms  Core feature of OpenEdge 10.2A, 10.2B, 11.0  Contents of ABL Window will be embedded into a .NET control  Progress.Windows.WindowContainer control to “host” ABL window at runtime  Use existing code, existing layouts and Active X Controls tightly integrated in .NET UI

Introduction to GUI for .NET

39

Introduction to GUI for .NET

40

Demo  WinKit Sample MDI container showing various embedding scenarios – AppBuilder view – Embedded view (runtime) – MDI Childs with Toolbar – Independent Windows with ribbons – Overlaying ABL Browse Widget with UltraGrid control – 4 Stages of Order Maintenance sample Introduction to GUI for .NET

Reference I: ESS AG, Preußisch Oldendorf  German Progress ISV  Software for the housing industry  V8 coding style, templates, include files, AppBuilder  New development with Progress OERA backend and .NET frontend  Existing Progress GUI integrated into.NET frontend  WinKit delivers unique style between existing and new application Introduction to GUI for .NET

42

Reference I: ESS AG, Preußisch Oldendorf

Introduction to GUI for .NET

43

Reference I: ESS AG, Preußisch Oldendorf

Introduction to GUI for .NET

44

Reference I: ESS AG, Preußisch Oldendorf

Introduction to GUI for .NET

45

Reference I: ESS AG, Preußisch Oldendorf

Introduction to GUI for .NET

46

Reference I: ESS AG, Preußisch Oldendorf

Introduction to GUI for .NET

47

Reference I: ESS AG, Preußisch Oldendorf

Introduction to GUI for .NET

48

Reference 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

Menu Toolbar & Browse Window

Menu Toolbar & Browse Window

Menu Toolbar & Browse Window ABL Frame

Shuttleworth: Data Window

Shuttleworth: Data Window

Shuttleworth: Data Window

ABL Frame

Reference III: CCE / Belgium  ERP for food industry – before – after  Own framework, developed since V8  ADM1 elements  WinKit as an intermediate solution  High demands for added productivity and “demo” features

User Interface modernisation

FRAME for Print Selection and Reference III: CCE /ABL Belgium Functions

User Interface modernization

57

Reference III: CCE / Belgium Ribbon for Print Selection and Functions

User Interface modernization

58

GUI for .NET adoption using WinKit  Original source code used in the context of GUI for .NET  Just minor modifications that maintain code compatibility with previous Progress releases  NO architectural change required  Existing application framework or templates used  Developers may continue to use AppBuilder for maintenance of existing screens Introduction to GUI for .NET

WinKit Migration Tool  automated migration of ABL Windows  based on AppBuilder, AppBuilder API or Proparse for non AppBuilder source  integration of required include files  integration of hooks into existing program logic to refresh .NET UI when required  process a single file at a time or a list of files

Introduction to GUI for .NET

60

Agenda        

Overview OpenEdge GUI for .NET Language integration Visual Designer OpenEdge Ultra Controls Data Binding Mix and Match with classic ABL GUI Windows API access using .NET Conclusion

Introduction to GUI for .NET

61

OpenEdge AVM access to .NET classes  Full access to all .NET classes, not just WinForms „GUI“ classes, restrictions only in multi-threading  License restrictions removed in 10.2B02 http://blog.consultingwerk.de/consultingwerkblog/20 10/09/progress-relaxes-usage-restrictions-of-guifor-net-bridge-with-10-2b-service-pack/  10.2B .NET access in GUI clients, TTY and AppServer on Windows in OE11 http://communities.progress.com/pcom/thread/3897 0?tstart=0 http://www.consultingwerk.de/

62

Windows API Access using GUI for .NET     

Process interaction File System operations Taskbar API Notification icons Sample code and detailled presentation „Extreme Windows Desktop Integration“ http://blog.consultingwerk.de/consultingwerkblog /2012/04/extreme-windows-desktop-integration%E2%80%93-updated/

Introduction to GUI for .NET

63

Demo    

Managing Background process from ABL File System Operations Extended Transparency Windows 7 Taskbar API

Introduction to GUI for .NET

64

Agenda        

Overview OpenEdge GUI for .NET Language integration Visual Designer OpenEdge Ultra Controls Data Binding Mix and Match with classic ABL GUI Windows API access using .NET Conclusion

Introduction to GUI for .NET

65

Conclusion     

New – top of the edge – UI for Windows Easy integration Powerful migration path from ABL GUI Simplified integration with Windows API Continous to work with Windows 8

 Start using GUI for .NET today!

Introduction to GUI for .NET

66

More info  OpenEdge documentation „GUI for .NET Programming“  http://communities.progress.com/pcom/communi ty/psdn/openedge/gui4dotnet  http://blog.consultingwerk.de

Introduction to GUI for .NET

67

Questions

Introduction to GUI for .NET

68