Upload
mariah-farmer
View
283
Download
9
Tags:
Embed Size (px)
Citation preview
WPF For PowerBuilder Developers
PowerBuilder
PowerBuilder Evolving with .NET
PowerBuilder
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
PowerBuilder
WPF Sample Contact Manager
PowerBuilder
WPF Sample Text Editor
PowerBuilder
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…
PowerBuilder
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!
PowerBuilder
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
PowerBuilder
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
PowerBuilder
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
PowerBuilder
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" />
PowerBuilder
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
PowerBuilder
Object Models: Win32 / WinForm vs. WPF
Our goal is to provide you with a “PowerBuilder Experience” when developing WPF applications
PowerBuilder
PowerBuilder 12WPF Application Architecture
Assemblies of the WPF runtime library
WPF DataWindow engine
New Managed database drivers
PowerBuilder
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
PowerBuilder
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
PowerBuilder
Grid vs. Canvas
Grid: 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
PowerBuilder
“InnerControl” Property
InnerControl 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”;
PowerBuilder
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
PowerBuilder
New Controls Courtesy of WPF
Layouts with Panels:
Canvas Grid WrapPanel StackPanel DockPanel
PowerBuilder
New Controls Courtesy of WPF
Canvas:
PowerBuilder
New Controls Courtesy of WPF
Grid:
PowerBuilder
New Controls Courtesy of WPF
StackPanel:
PowerBuilder
New Controls Courtesy of WPF
WrapPanel Variations:
PowerBuilder
New Controls Courtesy of WPF
DockPanel:
PowerBuilder
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
PowerBuilder
New Controls Courtesy of WPF
Expander (collapsible GroupBox):
PowerBuilder
New Controls Courtesy of WPF
Expander (collapsible GroupBox):
PowerBuilder
New Controls Courtesy of WPF
MediaPlayer:
Built on top of Windows Media Player Formats:
WAV WMA MP3 Etc…
PowerBuilder
New Controls Courtesy of WPF
Document Viewer (XPS or Print Preview):
PowerBuilder
New Controls Courtesy of WPF
SpeechRecognizer:
PowerBuilder
Right-to-Left Support
FlowDirection Layout Property:
PowerBuilder
Theme Support
PowerBuilder
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
PowerBuilder
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…
PowerBuilder
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
DataWindow Painter (of the future)
In prototype
PowerBuilder
State of the DataWindow
New Architecture:
Separation of Core functionality
DataWindow objects Presentation (rendering) functionality
DataWindow controls Data access
The new Data Source Interface
PowerBuilder
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