PowerBuilder 12: Fresh from the Labs
Download
Report
Transcript PowerBuilder 12: Fresh from the Labs
WPF For
PowerBuilder
Developers
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 resolutionindependent
PowerBuilder
WPF Sample
PowerBuilder
Contact Manager
WPF Sample
PowerBuilder
Text Editor
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 12
WPF 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
Grid style
…(cont’d)…
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
PowerBuilder
DataWindow Painter
(of the future)
In prototype
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
PowerBuilder