Download presentation
1
WPF For PowerBuilder Developers
2
PowerBuilder Evolving with .NET
3
Windows Presentation Foundation
WPF is Microsoft's next generation presentation technology Applications can have rich visual appearances 3D graphics High definition playback etc… WPF uses vector-based graphics and is resolution-independent
4
WPF Sample Contact Manager
5
WPF Sample Text Editor Text Editor
6
WPF Feature Highlights
Broad Integration 3D graphics, video (HD), speech, rich document viewing ...with one technology Resolution Independence Vector-based graphics render/resize to any screen resolution Hardware Acceleration Can take advantage of graphics card performance …cont’d…
7
WPF Feature Highlights
…cont’d… Declarative Programming XAML for markup Rich Composition Any control may “parent” another Eventual functionality like… …async video on each line of a DDLB!
8
Windows Presentation Foundation
XAML is the declarative markup language with which you may create complex WPF user interfaces XAML allows separation of UI (markup) from runtime logic XAML knowledge will not be required, just optional
9
Windows Presentation Foundation
The change is about the underlying presentation technology Windows Forms applications use GDI+ WPF application uses DirectX technology for rendering DirectX can be rendered using hardware resources Performance may be improved
10
Windows Presentation Foundation
Win32 and Windows Forms technology has been all but deprecated Eventually we’ll all need to develop Windows applications with WPF PowerBuilder will be your entrée to WPF Your investment, knowledge, and skills in PowerBuilder will be preserved
11
Object Models: Win32 / WinForm vs. WPF
WPF has a different object model from Win32 and WinForm We’re working to preserve the PowerBuilder model while incorporating the WPF “style” Drastically reduces your learning curve for WPF
12
Object Models: Win32 / WinForm vs. WPF
For example, WPF controls have a “content” property PowerBuilder will abstract that to the “Text” property PowerBuilder will extend WPF controls <my:WPFButton Height="23" Margin="251,0,268,84" Name=“WPFButton1" VerticalAlignment="Bottom" Text="123" />
13
Object Models: Win32 / WinForm vs. WPF
WPF has introduced many different new concepts: Dependency Properties, Attached Properties, Commands, Routed Events A design goal of PowerBuilder 12 is to hide the details of these new concepts and keep the usage similar to existing PowerBuilder
14
Object Models: Win32 / WinForm vs. WPF
Our goal is to provide you with a “PowerBuilder Experience” when developing WPF applications
15
PowerBuilder 12 WPF Application Architecture
Assemblies of the WPF runtime library WPF DataWindow engine New Managed database drivers
16
PowerBuilder WPF Window: Constraint on Controls
Win32 and WinForm Windows could be the parent of multiple controls In WPF, a Window may have only one control Workaround: Place a Panel, Grid or Canvas, in the Window We intend to put Canvas Panels in a migrated Window by default
17
Default “Panel” in the PowerBuilder WPF Window class
By default, a Grid panel will be put inside a Window for new WPF applications Again, Canvas will be used for migrated applications Approximating absolute positioning
18
Grid vs. Canvas Grid: Canvas:
Can take more advantage of WPF auto sizing SizeToContent property is available Can automatically size controls to length of text for localization/regionalization Canvas: Supports positioning elements with explicit coordinates If we used Grid for migrated applications…position information would not be accurate enough
19
“InnerControl” Property
Arguably, the most important newly-introduced WPF control property Allows reference to WPF control directly in PowerScript Read Only (but properties like Content are writable) In theory, WPF controls may be infinitely nested within any other WPF controls (one at a time) Cb_1.InnerControl.Content = “Some Contents”;
20
Third Party Controls Third party visual controls may now be used in a WYSIWYG fashion in design mode Conditional code blocks are no longer required for interoperability When placed on the painter, the IDE will trigger a process to create a proxy object for the control The proxy will be analogous to traditional OLE/ActiveX interfaces to minimize your learning curve
21
New Controls Courtesy of WPF
Layouts with Panels: Canvas Grid WrapPanel StackPanel DockPanel
22
New Controls Courtesy of WPF
Canvas:
23
New Controls Courtesy of WPF
Grid:
24
New Controls Courtesy of WPF
StackPanel:
25
New Controls Courtesy of WPF
WrapPanel Variations:
26
New Controls Courtesy of WPF
DockPanel:
27
New Controls Courtesy of WPF
For the following controls, we may… Create standard runtime controls …or… Support them though 3rd party controls (proxy objects) …TBD
28
New Controls Courtesy of WPF
Expander (collapsible GroupBox):
29
New Controls Courtesy of WPF
Expander (collapsible GroupBox):
30
New Controls Courtesy of WPF
MediaPlayer: Built on top of Windows Media Player Formats: WAV WMA MP3 Etc…
31
New Controls Courtesy of WPF
Document Viewer (XPS or Print Preview):
32
New Controls Courtesy of WPF
SpeechRecognizer:
33
Right-to-Left Support
FlowDirection Layout Property:
34
Theme Support
35
State of the DataWindow
New Features: From PowerBuilder 11.5 New background properties Support for PNG format Tooltips for all control and column types Rich Text Edit style Support for 3rd party controls May be used with a data binding mechanism in the detail band Must be consistent with the column’s data type Expressions are not supported
36
State of the DataWindow
New Features… XML DataWindow syntax SRD syntax is still supported Can run with limited security permissions New export formats Excel 2007 XML paper specification (XPS) Nested (and Composite) DataWindows Display in normal, not print preview mode …cont’d…
37
State of the DataWindow
New Features …(cont’d)… Grid style Grid line color is a property Enablesort supports sorting the contents on a specific column Label Displays in normal mode, not print preview mode Managed DataSources in the new Data Source Interface ADO .NET Web Services The classic data sources are still supported The DataWindow will run as fully Managed Code
38
DataWindow Painter (of the future)
In prototype
39
State of the DataWindow
New Architecture: Separation of Core functionality DataWindow objects Presentation (rendering) functionality DataWindow controls Data access The new Data Source Interface
40
State of the DataWindow
Under the hood… The core functionality contains the object management Object definitions The objects contain their syntax Parsing Compiling Emitting (equivalent of dw.Describe(“datawindow.syntax”) Property definitions Getters Setters Type converters Expression handling
41
WPF DataWindow Painter
WYSIWYG design surface for adding, moving, resizing, positioning of DataWindow elements WYSIWYG Preview Again, a familiar PowerBuilder experience Support for 3rd party controls
42
The New DataWindow Painter
Under the hood again… Adds a second control library Uses the same core functionality as the runtime The controls: Analogs to the runtime controls, similar but not the same Are actually simpler implementations Designed to fit into the Visual Studio ecosystem harmoniously
43
The New DataWindow Painter
Architecture: Uses the core functionality Loading and compiling the syntax For all of the object state management Gets the modified syntax when it is time to save the changes Uses the design time control library Expose properties for user modification Supports the design time UI – dragging/dropping/moving/resizing Uses the Isolated Shell to host the controls And run all the behind the scenes work
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.