PowerBUilder Futures Bruce Armstrong TeamSybase

Slides:



Advertisements
Similar presentations
XP New Perspectives on Microsoft Office Word 2003 Tutorial 7 1 Microsoft Office Word 2003 Tutorial 7 – Collaborating With Others and Creating Web Pages.
Advertisements

PowerBuilder 11: .NET Web Forms
Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
PowerBuilder 11: Deploying Business Logic as .NET Assemblies
DEV-2: Getting Started with OpenEdge® Architect – Part I
APP-V 5.0 SP2 (MDOP 2013 R2) Presenter - Fred
PowerBuilder.NET Guided Tour. PowerBuilder A New PowerBuilder IDE for.NET Development.
Advantage Data Dictionary. agenda Creating and Managing Data Dictionaries –Tables, Indexes, Fields, and Triggers –Defining Referential Integrity –Defining.
© by Pearson Education, Inc. All Rights Reserved.
Migrating Win32 Applications to WPF. PowerBuilder Migration of Existing Applications Migration:  The architecture of WPF is significantly different 
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
1 Chapter 12 Working With Access 2000 on the Internet.
Using Visual Basic 6.0 to Create Web-Based Database Applications
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
A Guide to Oracle9i1 Creating an Integrated Database Application Chapter 8.
A Guide to Oracle9i1 Advanced SQL And PL/SQL Topics Chapter 9.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
Introduction To Form Builder
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 10: Server Administration.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
Tutorial 3: Adding and Formatting Text. 2 Objectives Session 3.1 Type text into a page Copy text from a document and paste it into a page Check for spelling.
Bruce Armstrong TeamSybase
Module 15 Configuring and Deploying Windows Client Applications.
Guide to MCSE , Second Edition, Enhanced 1 Objectives Understand and use the Control Panel applets Describe the versatility of the Microsoft Management.
Microsoft Visual Basic 2005 ENRICHMENT CHAPTER Visual Studio Tools for Office.
Create with SharePoint 2010 Jen Dodd Sr. Solutions Consultant
GPPC Connections 2011 | November 6-8 | Las Vegas, NV Dynamics GP12 Web Client Today and in the Future Kevin Racer, Sr. Program Manager.
WPF For PowerBuilder Developers
McGraw-Hill© 2007 The McGraw-Hill Companies, Inc. All rights reserved. 1-1.
Lecture Roger Sutton CO530 Automation Tools 5: Class Libraries and Assemblies 1.
Microsoft Visual Basic 2005: Reloaded Second Edition
| | Tel: | | Computer Training & Personal Development Microsoft Office PowerPoint 2007 Expert.
For Version 6.0 and later Lattice3D Reporter Tutorial For Version 6.0 and later LATTICE TECHNOLOGY, INC.
Using Visual Basic 6.0 to Create Web-Based Database Applications
A Jumpstart to WPF by Kevin Grossnicklaus ArchitectNow.
Introducing Reporting Services for SQL Server 2005.
Virtual techdays INDIA │ Nov 2010 Developing Office Biz Application using WPF on Windows 7 Sarang Datye │ Sr. Consultant, Microsoft Sridhar Poduri.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
Section 1: Introducing Group Policy What Is Group Policy? Group Policy Scenarios New Group Policy Features Introduced with Windows Server 2008 and Windows.
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
Tutorial 111 The Visual Studio.NET Environment The major differences between Visual Basic 6.0 and Visual Basic.NET are the latter’s support for true object-oriented.
Session 1 SESSION 1 Working with Dreamweaver 8.0.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
CHAPTER TEN AUTHORING.
MCTS Guide to Microsoft Windows Server 2008 Applications Infrastructure Configuration (Exam # ) Chapter Four Windows Server 2008 Remote Desktop Services,
PowerBuilder Online Courses - by Prasad Bodepudi
Object Oriented Software Development 9. Creating Graphical User Interfaces.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
PowerBuilder is.NET John Strano Technology Evangelist.
Windows Forms in Visual Studio 2005 Mike Pelton Systems Engineer Microsoft Ltd
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Graphical Enablement In this presentation… –What is graphical enablement? –Introduction to newlook dialogs and tools used to graphical enable System i.
Reading Flash. Training target: Read the following reading materials and use the reading skills mentioned in the passages above. You may also choose some.
Presented by Vishy Grandhi.  Architecture (Week 1) ◦ Development Environments ◦ Model driven architecture ◦ Licensing and configuration  AOT (Week 2)
 2002 Prentice Hall. All rights reserved. 1 Chapter 2 – Introduction to the Visual Studio.NET IDE Outline 2.1Introduction 2.2Visual Studio.NET Integrated.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Cognos 8 BI Configuration, Administration, and Upgrade Cognos 8 BI.
 2002 Prentice Hall. All rights reserved. 1 Introduction to the Visual Studio.NET IDE Outline Introduction Visual Studio.NET Integrated Development Environment.
Part of the Microsoft.NET Framework 3.0 Tomer Shamam.NET Technologies Expert Sela Group
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
Introduction ITEC 420.
Introducing the Microsoft® .NET Framework
Chapter 2: The Visual Studio .NET Development Environment
Working in the Forms Developer Environment
Data Virtualization Tutorial: Introduction to SQL Script
PowerBuilder 11.5 Geared Up for Accelerated Development
Design and Consume DataWindows in Visual Studio 2005
Chapter 2 – Introduction to the Visual Studio .NET IDE
MS Confidential : SharePoint 2010 Developer Workshop (Beta1)
Presentation transcript:

PowerBUilder Futures Bruce Armstrong TeamSybase bruce.armstrong@teamsybase.com

Features Since PowerBuilder 11.0 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

PowerBuilder 11.5 Overview

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 • PBxxx.INI files • License files 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

Transaction Object Enhancement 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

Remote Deployment of .NET Web Targets 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 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 Type PowerBuilder Type DATE TIME DATETIME2 DATETIME

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

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 The Proxy User logs into the database (SQLCA.LogID) DBPARM “ConnectAs” is used to set the End User 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 Connection 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;

.NET Interoperability Language Enhancements 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

DataWindow Enhancements 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

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 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 fully-Managed 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: 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

“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”;

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)

The PowerBuilder 12 WPF Workshop

Anything presented here is subject to change! 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 Library Painter SQL Dialog 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

The DataWindow of the Future

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

DataWindow Painter (of the future)

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