PowerBuilder 12 Technologies - PowerBuilder User Group Germany

advertisement
Bruce Armstrong
TeamSybase
bruce.armstrong@teamsybase.com
Features Since PowerBuilder
11.0

PowerBuilder 11.1
 Incremental rebuild for .NET Targets

PowerBuilder 11.2
 Certificate Store Support for Smart Client-published







Applications
Usability and UI Enhancements
Database Connectivity Enhancements
Enabling the DEBUG Condition for ORCA and OrcaScript
Application Pools for Web Forms in IIS7
Telerik RadControls Support
EAServer Support for .NET-deployed PowerBuilder
Clients
AJAX Functionality for WebForm-Deployed Applications
PowerBuilder Videos
For more PowerBuilder 11.x detail…

http://www.sybase.com/products/development/powerbuilder/videos

http://www.sybase.com/products/development/powerbuilder/webcasts
Products Packaged with
PowerBuilder 11.5 !
Premiums Packaged
with
PowerBuilder 11.5!
Packaged with PowerBuilder 11.5 !
 PocketBuilder
2.5
 PowerBuilder Application Server Plug-in 1.1

PowerBuilder Skills for Heterogeneous
Environments
 Mobile
 J2EE
 .NET
 Client/Server
PowerBuilder 11.5
PowerBuilder 11.5
Features
PowerBuilder 11.5
.NET
Code Access Security
.NET Code Access Security (CAS)
Allows you to test your application under various
security sandbox settings within the IDE
 Security restrictions after deployment

 WebForm – based on web.config on web server
 WebService - based on web.config on web server
 WinForm – based on user machine policy and location
 SmartClient – based on manifest file packaged with app
 Assembly – based on referencing application
.NET Code Access Security (CAS)

WinForm / SmartClient
 Generate (No Manifest/External/Embedded)
 Execution Rights
○ Administrator
○ Highest Available
○ As Invoker
 Security Levels
○ Full trust
○ Local intranet trust
○ Internet trust
○ Custom
.NET Code Access Security (CAS)

WebForm / Web Service
 Security Levels
○ Full trust
○ Custom

Assembly
 No Security Tab
PowerBuilder 11.5
PNG Graphics Support
PNG Support

PowerBuilder 11.5 supports the Portable
Networks Graphics (PNG) file format for images
in…




Menus
Toolbars
Treeview controls
DataWindow objects
PNG images have an “alpha” channel for
transparency
 Transparent portions of a PNG image display
the background color gradient of the control to
which they are assigned

PowerBuilder 11.5
FDCC Compliance
FDCC Compliance

The Federal Desktop Core Configuration
(FDCC) is a security standard

Mandated by the US Office of
Management and Budget (OMB)
FDCC Compliance

To meet the FDCC security requirements,
PowerBuilder 11.5 can be installed only by
a system administrator
However…
 PowerBuilder
 Applications that you develop with PowerBuilder
…are designed to be run in a standard user
context without elevated system
administration privileges
FDCC Compliance

Most PowerBuilder files install by default
to Program Files\Sybase subdirectories

Write access to these subdirectories is
restricted to administrative users

FDCC requires all writable files must be
copied or installed to directories where
standard users have write access
FDCC Compliance

Writable files that are shared by all users are
installed in…
 C:\Documents and Settings\All
Users\Documents\Sybase\PowerBuilder 11.5
These include…
 The EASDemo databases
 All Code Examples directories and files
 All PowerBuilder Help files
 The Translation Toolkit directories and files
FDCC Compliance

Other writable files are installed in the
default Program Files\Sybase
subdirectories but:
 Are copied to different locations the first time
a user starts PowerBuilder
 There will be as many copies of these files
as there are standard users who use
PowerBuilder
FDCC Compliance
C:\Documents and Settings\UserName
subdirectory
Files copied or written
Local Settings\Application
Data\Sybase\PowerBuilder 11.5
• PBxxx.INI files
• License files
My Documents\Sybase\PowerBuilder
11.5\Tutorial
• PowerBuilder Getting Started
tutorial
PowerBuilder 11.5
Transaction Object
Enhancement
Transaction Object Enhancement
PowerBuilder 11.5 adds two new events for
the Transaction object…


DBError
SQLPreview
Transaction Object Enhancement
With Embedded SQL…

Whenever an error occurs in the
Transaction object, the DBError event is
called
 The error code and error message are passed
to the event

The SQLPreview event on the Transaction
object is triggered before SQL statements
are passed to the DBMS
Transaction Object Enhancement
DBError in concert with a DataStore or a
DataWindow…
 DataWindow/DataStore DBError event is triggered
before the DBError event of the Transaction object
To coordinate these two events…
 Two additional return values have been added for the
DataWindow DBError event
 The meaning of the existing return values is
expanded to indicate whether the Transaction
Object's DBError event should be fired
Transaction Object Enhancement
…cont’d…In concert with a DataStore or a
DataWindow…
•
If the return value of the DataWindow or
DataStore’s SQLPreview event is 0:
• Continue processing
• The Transaction object's SQLPreview event is
triggered
PowerBuilder 11.5
Remote Deployment of
.NET Web Targets
Remote Deployment of
.NET Web Targets

PowerBuilder 11.5 .NET targets do not
require you to have IIS installed on the
development computer
When you deploy directly to a remote
computer…
 System information about the deployment
computer, including its OS and IIS
versions, is passed to PowerBuilder…
 …through the Windows Management
Instrumentation (WMI) interface
Remote Deployment of
.NET Web Targets
If you deploy to an MSI setup file…

Run the setup file on a deployment
computer

PowerBuilder can use the Windows API to
obtain information about the OS and IIS
versions on that computer
Remote Deployment of
.NET Web Targets
•
When you attempt to deploy Web Target
projects on Vista or Windows 2008 under a
standard user account…
Remote Deployment of
.NET Web Targets

The User Account
Control (UAC)
dialog box displays

This dialog box
allows you to
elevate your
privileges for the
purpose of
deployment
Remote Deployment of
.NET Web Targets
Deploying .NET targets to a remote Windows
Vista or Windows 2008 computer might
require changes to…
UAC
 Windows firewall
 Distributed Component Object Model
(DCOM) settings

PowerBuilder 11.5
Support for
MS SQL Server 2008
SQL Server 2008 Driver:
Transaction Object Syntax
New Database Connection Parameter –
“Provider”
 Use the “SQLNCLI10” Provider value

 Required to take advantage of new features
 Default Provider value is SQLNCLI
○ Only supports SQL Server 2005 features
Example:
SQLCA.DBParm =
“Provider='SQLNCLI10‘”
SQL Server 2008 Driver :
Mirroring Support

High availability feature

Manual or Automatic failover supported

For Automatic failover, a third server is
required
 Acts as a “Witness“
SQL Server 2008 Driver :
Mirroring Support
When failover occurs, the existing client
connection is lost
 Client has to reconnect and reattempt the
operation

After re-connection:
 DBNotification Event will be triggered in
transaction object
 Notification argument value… DBFailover!
=2
SQL Server 2008 Driver :
Mirroring Support

New DB Parameter – “FailoverPartner”

e.g.: SQLCA.DBParm =
"FailoverPartner=‘SETIFund'"
SQL Server 2008 Driver :
New Data Types - Caveats

DATE and TIME
SQL Server Type
DATE
DATE
TIME
TIME
DATETIME2

PowerBuilder Type
DATETIME
TIME & DATETIME2 types
 Have 0-7 fractional seconds precision.
 PowerBuilder supports 0-6 fractional seconds precision.

DATETIMEOFFSET - not supported in
PowerBuilder 11.5
SQL Server 2008 Driver :
New Data Types
New Data Types (cont’d):
CLR Types
 HIERARCHYID
 SPATIAL DATA – GEOGRAPHY & GEOMETRY
 UDT – User defined CLR Types
…seen by PowerBuilder as BLOBs or as
Hexadecimal STRINGs…
…OR…
SQL Server 2008 Driver :
New Data Types
CLR Types (cont’d):
 CLR type methods can be used in…
 ISQL, Embedded/Dynamic SQL, DataWindow data
source

Resolved by the DBMS!
Select EmpId, EmpName, EmpNode.ToString(), EmpNode.GetLevel()
from Emp
Select id, GeomCol.STAsText(),GeomCol.STGeometryType(),
GeomCol.STArea() from SpatialTable
SQL Server 2008 Driver :
New Data Types

FILESTREAM
 NOT strictly a new data type but a new storage
mechanism for Varbinary(max) data

Use SELECTBLOB / UPDATEBLOB
SQL Server 2008 Driver :
T-SQL Support

Row Constructors
 INSERT INTO Employees VALUES ('tom', 25, 5), ('jerry', 30, 6);
 ESQL / DSQL

FORCESEEK – Table Hint
 Forces the query optimizer to use only an index seek
 ESQL / DSQL and DataWindow data source

MERGE Statement
 Dynamic SQL only

GROUPING SETS
 ESQL / DSQL and DataWindow data source
SQL Server 2008 Driver :
Delayed for GA
The MS SQL Server 2008 release was delayed
 The GA version of our driver cannot be included
in time for the PowerBuilder 11.5 GA


Resolution: We will release PowerBuilder 11.5
with the SQL Server 2008 RC driver and support
its GA in an EBF
PowerBuilder 11.5
Support for
Oracle 11g
Oracle 11g Support

Client Access through
Proxy
1. The Proxy User logs into the
database (SQLCA.LogID)
2. DBPARM “ConnectAs” is
used to set the End User
3. After the Proxy User passes
authentication, SQLCA.LogID
value is the End User’s id
 An additional password is not
needed for the End User
Oracle 11g Support

OCI Connection Pooling
and Session Pooling
 Pools will be created for
Connections or Sessions
using the same ServerName
and NLS_Charset
Oracle 11g Support

Session Pooling
 Stateless - reusable by middle tier threads
 Pool is dynamically “grown” as needed
 Clients are bound/unbound to/from a session in the pool at
runtime

Connection Pooling
 Stateful – not reusable by middle tier threads
 Number of physical connection and server processes is
reduced
 O90 and O10 drivers used the now-deprecated CNNPool
DBParm
○ Supported for backward compatibility

New “Pooling” DBParm
 "CnnPool='Yes'“ …is now… "Pooling='Connection Pooling‘"
Oracle 11g Support

Implicit Fetching ROWID with SELECT … FOR
UPDATE statements
 “ROWID” no longer needs to be explicitly added in the
select items
 The syntax in PowerBuilder may remain unchanged to
get a rowid value
Oracle 11g Support

Oracle Client Cache
 Enables client-side caching of SQL query result sets
 Relies on your Oracle Server and Client configuration
 The “StatementCache” DBParm value must be set
 “/*+ result_cache */” …query annotation is required
Select /*+ result_cache */ col1, col2 from table1
Oracle 11g Support

OCI Driver Name
 Diagnostic aid
 “AppDriverName” DPBARM parameter allows you to
set your own client driver name
 Client driver name can be used with dynamic
performance view queries
○ V$SESSION_CONNECT_INFO
○ GV$SESSION_CONNECT_INFO
 The maximum length is 8 characters
Oracle 11g Support

XML data type support
 Oracle XMLType data type - introduced with Oracle 9i
 Mapped to the PowerBuilder String data type
 However, you cannot use this data type:
○ In the Where clause of a PowerBuilder embedded SQL statement or in
a DataWindow object
○ As a parameter of a procedure or DB function
○ In columns that you select directly in an Oracle cursor statement
…cont’d…
Oracle 11g Support

XML data type support
 You can return single XMLType values from an Oracle
cursor…
CREATE OR REPLACE Function p_Ora_sp_char_11 return
types.cursortype
AS
l_cursor types.cursorType;
begin
open l_cursor for select x.col1.getstringval() from
t_Ora_sp_char_11 x;
return l_cursor;
end;
PowerBuilder 11.5
.NET Interoperability
Language
Enhancements
.NET Interoperability
Language Enhancements
PowerBuilder 11.5 will now…

Support method calls on PowerBuilder and
.NET primitive types

Support method calls on PowerBuilder and
.NET enumerated types

Support accessing static members of .NET
classes with instance references
.NET Interoperability
Language Enhancements
Function calls on .NET primitive and
enumerated types:

Must be made inside a conditional
compilation block for a .NET target.
.NET Interoperability
Language Enhancements
Function calls on .NET Primitive Types:

Functionality of the primitive types is now
merged with the functionality of their
corresponding PowerBuilder primitives
#if defined PBDOTNET then
System.Int32 i1
long i2
i1.ToString()
i2.ToString()
…
#end if
.NET Interoperability
Language Enhancements

Function calls are also supported on .NET
enumerated types that you import into a .NET
target

An enumerated type from an imported
assembly:
namespace ns1.ns2;
Public enum TimeOfDay
{
Morning = 0,
AfterNoon,
Evening
}
.NET Interoperability
Language Enhancements
•
e.g.: PowerBuilder allows you to call the
ToString() method on the .NET TimeOfDay
enumerated type after you reference it in
your target:
#if defined PBDOTNET then
ns1.ns2.TimeOfDay daytime
daytime = ns1.ns2.TimeOfDay.Morning!
daytime.ToString()
#end if
.NET Interoperability
Language Enhancements

PowerBuilder 11.5 lets you use instance
references to access static members of .NET
classes
string s
#if defined PBDOTNET then
//OLD WAY
//s=System.Web.HttpContext.Current.ToString()
//NEW WAY
System.Web.HttpContext context
context = System.Web.HttpContext
s = context.Current.ToString()
#end if
PowerBuilder 11.5
DataWindow
Enhancements
New DataWindow Features:
Supported Targets/Platforms

Traditional Win32

Windows Forms Target
 Smart Client-Published WinForm Applications

InfoMaker 11.5
Tooltips

Supported in all DataWindow presentation
styles
 Except RichText and OLE

New property tab – New properties
 Columns and all Control types
 All new properties are expression-enabled
Gradients/Translucency of
Backgrounds

Supported in all DataWindow presentation
styles
 Except RichText and OLE

New property tab – New properties
 Bands
 Columns and all Control types
 All are expression-enabled (except for DWO
scope/level)
Text Translucency

New Property on Font Properties tab
 Columns
 Text
 Buttons
 Group Boxes
 Computed Columns

Expression-enabled
New DataWindow
Object-Level Properties

Same as band/column/control background
properties except…
 Not expression-enabled
 Transparency is not really transparent
○ Defaults to a white background

Extras
 Bitmaps and Tiling
New Properties for Picture
Control

transparentcolor
 Designate a color in the image to be transparent

Transparency
 Expression-enabled
New Column Edit Style - RichText

Supported in all DataWindow presentation
styles
 Except RichText and OLE

Comes with Floating Font Toolbar
 Can be disabled
 Roll your own using new events, functions
New Column Edit Style - RichText

RichTextToolbarActivation
 New DataWindow control property – Enumerated

Enumerated values
 RichTextToolbarActivationNever!
 RichTextToolbarActivationOnEdit!
 RichTextToolbarActivationAlways!
New Column Edit Style - RichText

New Events
RichTextCurrentStyleChanged
pbm_dwnrichtextcurrentstlechanged (long row, DWObject dwo)
•RichText column has focus
•The current style of the selection or cursor position has changed
RichTextLoseFocus
pbm_dwnrichtextlosefocus (long row, DWObject dwo)
•RichText column loses focus
RichTextLimitError
pbm_dwnrichtextlimiterror (long row, DWObject dwo, string text)
•RichText data exceeds column size
•The “text “ argument is the plain text of the current column
New Column Edit Style - RichText

New Functions for getting and setting text…
 Style (bold/underline/italic)
 Color
 Size
 Alignment
 Font
New DirectX Rendering
for 3D Graph Styles
DirectX 9.0c (Direct3D) – Prerequisite
 Depends on drivers supporting Direct3D

 Graceful degradation to traditional rendering in case
Direct3D is absent
 Support can be checked by running DXDIAG.exe from a
command prompt
Installed by PowerBuilder 11.5 for the developer
on “first use”
 Anti-aliasing should be disabled

New DirectX Rendering
for 3D Graph Styles

New Functions
 GetSeriesTransparency/SetSeriesTransparency
 GetDataTransparency/SetDataTransparency
 GetSeriesLabelling/SetSeriesLabelling
 GetDataLabelling/SetDataLabelling
SUMMARY: PowerBuilder 11.5

Delivers Core Functionality Enhancements
 DataWindow Look and Feel
 Support for Newer DBMS versions
 .NET Interoperability Language Enhancements
 .NET Code Access Security
 IIS7 and Vista
PowerBuilder 12
PowerScript
Enhancements
-.NET CLS
Compliancy-
PowerScript
Language Enhancements for
.NET
Define and implement interfaces
 Support unbounded multidimensional array
and jag-array
 Consume .NET delegates
 Support parameterized constructors
 Define and consume custom attributes
 Define namespaces
 Consume .NET generic types
 Support user-defined enumerations

PowerScript
Language Enhancements for
.NET
PowerBuilder 12 : Fresh from the Labs
WPF Runtime
PowerBuilder Evolving with .NET
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
WPF Sample
Contoso Healthcare Sample Application, MSDN
WPF Sample
ExpenseIt Sample Application, MSDN
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…
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!
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
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
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
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

XAML knowledge will not be required, just
optional
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"
/>
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
Object Models:
Win32 / WinForm vs. WPF

Our goal, our mandate, is to provide you with
a “PowerBuilder Experience” when
developing WPF applications
Migration of Existing Applications
Migration:
 The architecture of WPF is significantly
different

The approach to migration will need to be
different than Win32=> WinForm

For example, WPF encourages customers
to use Styles/Templates to create borders
instead of a simple BorderStyle
Migration of Existing Applications
If we run into these kinds of conflicts in the
WPF runtime library implementation…

We will keep the new WPF style, but…

A migration issue will exist for the
developer’s disposition
Migration of Existing Applications

More refactoring will be needed than for
Windows Forms migration

Some behaviors will change
 e.g.: MDI applications will be rendered as a
Tabbed document
WPF vs. Win32/WinForm
Look and Feel…
 Some properties / metaphors have no
default WPF equivalent
 e.g.: BorderStyle, MDI
In a PowerBuilder 12.x time frame…
 We may create/ship templates to support
these “legacy” styles
 Look-and-feel can be accomplished
through WPF styles/templates
WPF vs. Win32/WinForm

MDI
 Not supported by WPF
(yet?)
 Viewed by Microsoft as
legacy with drawbacks
 For migrated applications
PowerBuilder will convert
MDI applications to a
Tabbed Document
metaphor
http://karlshifflett.wordpress.com/2008/04/10/wpf-sample-series-wpf-mdi-task-switching/
WPF vs. Win32/WinForm

User Defined Custom Events
 WPF - the event model is changed
 Several custom events have no WPF matching event
 Will not be supported in PowerBuilder 12.0
WPF vs. Win32/WinForm
Window Handle Usage:

Win32/WinForm applications
 Each control is actually a Window
 Each control has its own Window handle
 e.g: You can call SetParent(hwnd) to set the parent
Window for the current Window through Win32 API
calls.

…cont’d…
WPF vs. Win32/WinForm

…cont’d…Window Handle Usage:

In WPF, there is only a single handle for the
Window
 A control nested in a Window will NOT have its own
handle
 API calls using Window handles will not be
supported
 For migrated applications, there is no workaround
but to refactor the code
WPF vs. Win32/WinForm
Event Sequence:
 Again, the event model of WPF application is
changed

The event sequence of WPF applications is
different than WinForm / Win32

We cannot ensure the event sequence of WPF
controls is exactly the same

For migrated applications, there is no
workaround but to refactor the code
Fully Managed Code at Runtime

.NET applications deployed by PowerBuilder
11.x have a Managed Code runtime…except
for the DataWindow engine

Current PowerBuilder 11.x “Unmanaged”
issues:
 Need to specify the path for DataWindow
unmanaged DLLs
 Can not run applications in partial trust environments

The DataWindow engine is being rewritten
from the ground up in C# and will be fullyManaged Code
PowerBuilder 12
WPF Application Architecture
• Assemblies of the
WPF runtime library
• WPF DataWindow
engine
• New Managed
database drivers
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
Default “Panel” in the
PowerBuilder WPF Window class

By default, a “Grid” panel will be put inside
a Window for new WPF applications

“Canvas” will be used for migrated
applications
 Approximating absolute positioning
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
“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”;
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
New Controls Courtesy of WPF
Layouts with Panels:





Canvas
Grid
WrapPanel
StackPanel
DockPanel
New Controls Courtesy of WPF
Canvas:
New Controls Courtesy of WPF
Grid:
New Controls Courtesy of WPF
StackPanel:
New Controls Courtesy of WPF
WrapPanel Variations:
New Controls Courtesy of WPF
DockPanel:
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
New Controls Courtesy of WPF
Expander (collapsible GroupBox):
New Controls Courtesy of WPF
Expander (collapsible GroupBox):
New Controls Courtesy of WPF
MediaPlayer:
•
Built on top of Windows Media Player
• Formats:
• WAV
• WMA
• MP3
• Etc…
New Controls Courtesy of WPF
Document Viewer (XPS or Print Preview):
New Controls Courtesy of WPF
SpeechRecognizer:
Right-to-Left Support
FlowDirection Layout Property:
Theme Support
(May be in PowerBuilder 12.x time frame)
DISCLAIMER
Anything presented here
is subject to change!
A New PowerBuilder IDE
for WPF Development

Built utilizing
the Visual
Studio
Isolated Shell
A New PowerBuilder IDE
for WPF Development

Leveraging Visual Studio features






Isolated Shell provides framework and features
UI
Editor
WPF Designer
Debugger
Plug-in existing PowerBuilder components
 Database Painter
 SQL Painter
 etc.
A New PowerBuilder IDE
for WPF Development

Provides a familiar PowerBuilder
experience
 Little or no re-training

Provides usability enhancements
consistent with other major IDEs

Keeps PowerBuilder current with latest
functionality
A New PowerBuilder IDE
for WPF Development
PowerScript in the VS Core Editor
 WPF Painters

 Incl. WPF DataWindow Painter
Tabbed documents
 Auto-hide for tool panes
 3rd Party Add-ins
 Import/Export IDE Settings

A New PowerBuilder IDE
for WPF Development…and more…
Benefits for…

WPF Application Targets

.NET Assembly Targets

.NET Web Service Targets
Virtual PowerBuilder Libraries
PBLs are now folders
 PowerBuilder classes/objects are now files
 PBLs track files

 Adding a file to a PBL folder does not by itself add
it to the PBL
Simplification of source control
 Saving with compilation errors now
supported

WPF Painters
(Window, Visual UserObject)
WYSIWYG design surface for adding,
moving, resizing, positioning of controls
 XAML editor for optional advanced editing of
layout, contents, and behavior
 WYSIWYG Preview (WPF, vector-based)
 Support for 3rd party controls

Adding 3rd Party
WPF Controls to the Toolbox
A dialog will be
provided to select
the 3rd party WPF
control to import.
 Controls may be
added to the
Toolbox of the …

 Window
 UO
 DataWindow
…painters
New PowerScript Editor Features









Improved AutoScript (Intellisense)
Colorization
Bookmarks
Code Outlining (collapsing sections)
Highlight of matching elements
Incremental Search
Line Numbering
Go to definition
Future Features…
 Refactoring
 Find all references
Other Painters

Database Painter

Query Painter

Structure Painter
…will essentially have the same UI as in the
Win32 IDE
Other Painters
…cont’d…
 Menu Painter
 The UI may be altered

Library Painter
 Will be consolidated with the System Tree
 A list tool window for “details”

SQL Dialog
 Will have the same UI as in DataWindow .NET 2.5…a
modal dialog
File New and wizard
enhancements

Wizard Based

Treeview navigation

Finish button enables as soon as enough
information is available, event if the wizard provides
more steps
At TechWave 2007

Demonstrated the Managed Code DataWindow
engine
In prototype, we could demo…
 Basic presentation styles
 Use an Edit Control emulation
 A lot of common methods and functionality





Syntax parsing and compiling
Expressions
Data retrieval
Sorting
Filtering
After TechWave 2007: In the Labs

Kept building functionality
○ More presentation styles
 N-Up
 Grid
 Label
 Group
 Crosstab
 Composite and Nested Reports
 Graphs
 Rich Text
○ More controls
 Editmask and Spin Control
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
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…
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
State of the DataWindow
New Architecture:

Separation of
 Core functionality
○ DataWindow objects
 Presentation (rendering) functionality
○ DataWindow controls
 Data access
○ The new Data Source Interface
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
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
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
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
Questions
Download