Presentation Transcript
Slide1 : PowerBuilder 8.0:
An Introduction
Agenda : Agenda What’s new in PowerBuilder 8.0 ?
IDE and productivity enhancements
PowerScript changes
Database interface modifications
EAServer integration enhancements
Web target functionality
Agenda : IDE and productivity enhancements
PowerScript changes
Database interface modifications
EAServer integration enhancements
Web target functionality Agenda
IDE and productivity enhancements Welcome to PB8 new IDE : IDE and productivity enhancements Welcome to PB8 new IDE The IDE has a new look aside from functional improvements made
System Tree
Clip Window
Output Window
Edit Window
IDE and Productivity Enhancements:System Tree : IDE and Productivity Enhancements: System Tree Centralized hub of development environment
Allows drag and drop programming
Hybrid of treeview pane in Library painter and Object browser
Four tabs
Workspace - view contents (objects and files) of PowerScript and Web targets within the current workspace
Page - object model view of currently displayed web page
Language - HTML tags and syntax for various browsers and scripting languages (alas not PowerScript!)
Components - list of ActiveX, Java beans, EAServer components, applets and plugins
IDE and Productivity Enhancements:System Tree : IDE and Productivity Enhancements: System Tree Language Tab Page Tab Components Tab WorkSpace Tab
IDE and Productivity Enhancements:Clip Window : IDE and Productivity Enhancements: Clip Window Nifty feature to allow you to save favorite snippets of code or text
Drag-and-drop
To/From Clipboard
Items are retained in registry
Saved as user versus project information
Not workspace specific so always available
Subject to registry string limitation of 2048 characters
IDE and Productivity Enhancements:Output Window : IDE and Productivity Enhancements: Output Window Destination of most error and informational messages from migrations, deployments, builds, and search results
Contains hyperlinks to painters when appropriate
Allows navigation among error messages
Can be saved and printed for reference
Slide9 : IDE and Productivity Enhancements: Workspace/Target Paradigm Workspace
Entry point to PowerBuilder 8.0 development environment
Can contain multiple targets
your sandbox, giving you a view of your system.
Target types
PowerScript (traditional PBLs)
Web Target
Multiple targets can be worked on at one time within a given workspace!
IDE and Productivity Enhancements:Workspace/Target Paradigm : IDE and Productivity Enhancements: Workspace/Target Paradigm Workspace and target hierarchy shown in the System Tree workspace PowerScript target Web target
IDE and Productivity Enhancements:Workspace/Target Paradigm : IDE and Productivity Enhancements: Workspace/Target Paradigm Workspaces are stored as .pbw files specifying
Relative path to each target file
Which targets are to be deployed with workspace
Order of target deployment
Other workspace properties are specified in registry
MRU lists for Recent Objects and Recent Connections menus
Source code control information
URLs for painters to be opened automatically when workspace is opened (if user elects this)
IDE and Productivity Enhancements:Workspace/Target Paradigm : IDE and Productivity Enhancements: Workspace/Target Paradigm Targets are stored as .pbt files and contain
Relative paths to PBLs in library list
Debug options for Web targets
Deployment options for objects within given target
Targets can be
Created from ‘New’ dialog (next slide)
Migrated from existing PowerBuilder applications
Migrated from existing PowerSite projects
Imported from existing Web targets within Source Code Control System
Added to multiple workspaces
Slide13 : Target types PowerScript Targets Web Targets IDE and Productivity Enhancements: Workspace/Target Paradigm
IDE and Productivity Enhancements:Source Code Control Changes : IDE and Productivity Enhancements: Source Code Control Changes Significant enhancements in how PowerBuilder interacts with Source Code Control systems
Source code control configured as a workspace property
PBNative rewritten to be an SCC provider
Option to support retaining latest check-in/check-out status when working offline
Configurable asynchronous status refresh with optional comparison to detect out of sync objects
Introduces .PBG file to ensure all objects in source control are available to local clients
IDE and Productivity Enhancements:Source Code Control Changes : IDE and Productivity Enhancements: Source Code Control Changes The concept of a work PBL for source control has been removed
Avoids I/O activity between registered PBLs and work PBL (to reduce the infamous I/O errors)
Eliminates confusion of having same named objects in the library search path
Brings mechanism in line with other IDEs by having just the master source checked in and each developer having a local copy of the master
For PB Native you configure a storage location to save the latest copy of the files
IDE and Productivity Enhancements:Source Editor : IDE and Productivity Enhancements: Source Editor Allows you to edit object source within PowerBuilder
A long standing enhancement request!
No more export/import
Powerful and dangerous: Object is first saved and then validated which could lead to corruption if errors are not immediately addressed
IDE and Productivity Enhancements:Version Information : IDE and Productivity Enhancements: Version Information Developers can now version-stamp their own applications within project painter
PowerScript Changes : PowerScript Changes New object properties
New PowerScript functions
Exception handling
PowerScript Changes:New Object Properties : PowerScript Changes: New Object Properties window.center
application.freedblibraries
picture, picturebutton, picturehyperlink
powertiptext
map3dcolors
olecontrol.saveobject
DataWindow extensions
dddw.autoretrieve
datawindow.printer is modifiable
Javascript and HTML extensions introduced in 7.0.2 are now incorporated into datawindow painter
PowerScript Changes:New PowerScript Functions : PowerScript Changes: New PowerScript Functions File system functions
Some of the PFC extensions now native PowerScript
Reduces need for external API calls
Printer functions
List available printers
Change printer
String functions
LastPos() - functionality differs from PFC!
WordCap() - previously just a DataWindow function
PowerScript Changes:New PowerScript Functions : PowerScript Changes: New PowerScript Functions Dialog functions
GetFolder() - system folder selection dialog
ChooseColor() - system color selection dialog
Help functions
ShowPopupHelp() - post-it style popup help
ShowHelp()-now supports compiled HTML format
Miscellaneous functions
LibraryDirectoryEx() - includes object type in output, thus extending LibraryDirectory()
Sleep() - halts execution on thread not process
PostURL() - now supports ports other than 80!
PowerScript Changes:Exception Handling : PowerScript Changes: Exception Handling One of the more significant features of PowerBuilder 8
Introduces Java style exception handling that can be leveraged by PowerBuilder within
Client/Server applications
EAServer components
EAServer client applications
New objects and syntax
throwable class
TRY-CATCH-FINALLY construct
THROW statement
Throws clause
Database Interface Modifications : Database Interface Modifications JDBC driver addition and deprecation
Other database driver modifications
Database profile storage
Proxy support in EAServer
Database Interface Modifications:JDBC Driver Addition and Deprecation : Database Interface Modifications: JDBC Driver Addition and Deprecation JDB driver (PBJDB80.DLL) added
Supports Microsoft VM and Sun JDK/JRE 1.1.x,1.2, and 1.3
Ships with two JAR files
pbjdbc11.jar for use with 1.1.x JDK and MS VM
pbjdbc12.jar for use with 1.2+ JDK
Java VM version is configurable as a DBParm for client-server use only, since driver will always use VM running in EAServer
Database Interface Modifications:Other Database Driver Modifications : Database Interface Modifications: Other Database Driver Modifications Oracle (O73 and O84)
Support for Oracle8i, including failover (O84 only)
Support for transactions in MTS
ASE (SYC, SYJ)
Support for ASE 12.0, including failover and Java classes
Support for ANSI SQL outer joins
Informix (IN7, IN9)
Async support added
Support for ANSI-SQL outer joins
Database Interface Modifications:Other Database Driver Modifications : Database Interface Modifications: Other Database Driver Modifications Microsoft SQL Server (MSS)
Support for ANSI-SQL outer joins
Support for SQLServer 7.0 and 2000 (to extent that deprecated DB-LIB interface allows)
OLE-DB (OLE)
Support for ANSI-SQL outer joins
Significant functionality improvements
ANSI-SQL outer join support also added to
DirectConnect interface (DIR)
ODBC interface (ODB)
Database Interface Modifications:Database Profile Storage : Database Interface Modifications: Database Profile Storage Design time database profiles are stored in the registry and no longer in the PB.INI file
Profiles are now shared by both PowerBuilder and Infomaker
Import facility provided to convert PowerBuilder 7 profiles in INI file to registry entries in version 8
Database password information is now encrypted - this could impact utility programs that previously read from INI file to automatically connect to the default database
Database Interface Modifications:Proxy connection : Database Interface Modifications: Proxy connection Feature of EAServer connection caching
Connection cache set up with a given user / password combination which is used for the physical database connection
When cache is requested by component, a SET SESSION AUTHORIZATION statement is issued to proxy the user to
The current Jaguar session user
A user id specified programmatically
Database Interface Modifications:Proxy connection : Database Interface Modifications: Proxy connection Configuration requirements include
com.sybase.jaguar.conncache.ssa=true in ConnCache/.props file
ProxyUserName DBParm in PowerBuilder, if requirement is to proxy to a user other than the user specified for the current Jaguar session
Use of one of the following PowerBuilder drivers
ODBC
JDB (or JDS for backward compatibility)
SYJ
EAServer Integration Enhancements : EAServer Integration Enhancements EAServer profiles
Multiple VM support
Database proxy support
EJB support
Implementing existing interfaces
Support for EAServer services
Client-managed transactions
Secure Sockets Layer
Message Service
Thread Manager
EAServer Integration Enhancements:EAServer Profiles : EAServer Integration Enhancements: EAServer Profiles Analog of database profiles for EAServer
Required for deploying components or generating proxies via wizards
Used to populate list of EAServers in System Tree Components tab
EAServer Integration Enhancements:Multiple VM Support : EAServer Integration Enhancements: Multiple VM Support EAServer can host both PowerBuilder 7 and PowerBuilder 8 components
.pb.version property stores version 8.0
Interoperability of components and clients of different versions
Other datatypes should work fine cross-version
EAServer Integration Enhancements:Database Proxy Support : EAServer Integration Enhancements: Database Proxy Support EAServer allows the use of proxy connections
Connection cache specified with a given user / password combination
Cache properties file configured with com.sybase.jaguar.conncache.ssa=true
Physical connection is made via the user and password specified in the cache definition
SET SESSION AUTHORIZATION SQL statement issued to change session id to a proxied user
Issuance of statement dependent upon which Jaguar Cache Management API is used
ProxyUserName DBParm (ODB, JDB, JDS, SYJ) triggers use of appropriate API and supplies the proxy user name
EAServer Integration Enhancements:EJB Support : EAServer Integration Enhancements: EJB Support PowerBuilder 7
Could instantiate only session beans with default constructors via connection object
EJB home and remote interface accessible only via JaguarORB requiring lower level coding
PowerBuilder 8
Extends Lookup() function allowing home and remote interface access to session and entity beans via connection and transactionserver objects
Enables use of exception handling to deal with CreateException and FinderException
EAServer Integration Enhancements:Implementing Existing Interfaces : EAServer Integration Enhancements: Implementing Existing Interfaces Jaguar component wizard gives option to create component based on existing interface
Prevents you from overloading methods or changing interface in any way
Separates specification from implementation
Implement components whose methods and properties support a standard API,such as:
Open Financial Exchange(OFX)
Financial Information eXchange(FIX)
Society for worldwide Interbank Financial Telecommunication(SWIFT)
EAServer Integration Enhancements:Support for EAServer Services : EAServer Integration Enhancements: Support for EAServer Services Client-managed transactions
Allows PowerBuilder client or component to manage the transaction explicitly
Requires
EAServer use OTS/XA transaction coordinator
XA resource, rather than a connection cache
Component transaction property be marked as OTS Style
Supported database interfaces
JDB (with 1.2 JDK only)
O73 / O84 (to Oracle 8.0.x only)
SYJ (if EAServer is running on a Unix host)
Managed via CORBACurrent object
EAServer Integration Enhancements:Support for EAServer Services : EAServer Integration Enhancements: Support for EAServer Services SSL callbacks
PowerBuilder 7 provided SSLServiceProvider object to enable SSL connections to EAServer
PowerBuilder 8 provides the SSLCallback object (implementing CtsSecurity::SSLCallback) to allow implementation of server requests for additional client authentication information
PIN
Certificate label
Certificate chain verification
EAServer Integration Enhancements:Support for EAServer Services : EAServer Integration Enhancements: Support for EAServer Services Message Service
Proprietary EAServer asynchronous messaging service providing
Point-to-point capabilities
Publish and subscribe capabilities
Basis of forthcoming implementation of Java Messaging Service (JMS) API
PowerBuilder 8 components can now directly implement CTSComponents::MessageListener
Previously required Java component to intercept onMessage method
Support for basic CORBA Union marshalling in PowerBuilder now eliminates need for intermediary component
EAServer Integration Enhancements:Support for EAServer Services : EAServer Integration Enhancements: Support for EAServer Services Thread Manager
Proprietary EAServer threading interface allowing component to spawn and manage their own threads
Eliminates issues for programmers (usually Java) that created their own threads within components
PowerBuilder 7 and 8 can both consider this capability
For implementing asynchronous processing requirements
As an alternative to shared object processing in conventional PowerBuilder applications
Web Target Functionality : Web Target Functionality
Web target overview
Web DataWindow enhancements
Web target object model
4GL Web
Web Target Functionality:Web Target Overview : Web Target Functionality: Web Target Overview Four target wizards
Dynamo WebSite (database only)
Generic WebSite
PowerSite Migration
Extraction of existing target from source code control
Manages all Web site resources
Web pages
Image files
Style sheets
HTML editor provides page, source and preview options
Web Target Functionality:Web Target Overview : Web Target Functionality: Web Target Overview Multiple deployments can be specified
Local deployments for testing stored in registry
Deployments for production stored in target file
Deployment options
PowerDynamo
Active Server Pages
Basic (file system or FTP)
Debugging of client and server side scripts
Link verification during build process
Slide43 : Allows you to create Web pages
Static pages
Dynamic pages
Database queries
Pages that are generated with server-side scripting
Web DataWindow pages
HTMLGenerator80 component
Custom component based on HTMLGenerator80
Accessing EAServer components Web Target Functionality: Web Target Overview
Web Target Functionality:Web DataWindow Enhancements : Web Target Functionality: Web DataWindow Enhancements DataWindow property enhancements in IDE
column.ValueIsHTML
column.AppendedHTML
HTMLGen.NetscapeLayers
HTMLGen.TabIndexBase
HTMLGen.xxxjsFile (Javascript files)
New WebDatawindow Javascript Generator will generate desired Javascript files
Icon on New->Tool dialog
Button on DataWindow property sheet
Javascript files can then be deployed to web server to support caching on client browsers
Web Target Functionality:Web DataWindow Enhancements : Web Target Functionality: Web DataWindow Enhancements New DataWindow/HTMLGenerator80 component
Can co-exist with PowerBuidler 7’s DataWindow/HTMLGenerator component
Number of server-side methods increased from 22 to over 100
Web DTC modifications
Database profile selection - not just ODBC
Support for Web DataWindow container component
Continues as open-source allowing developers to build custom components and extensions
Web Target Functionality:Web DataWindow Enhancements : Web Target Functionality: Web DataWindow Enhancements Web DataWindow Container
Deploys a new component with library list referencing
Generic Web DW component PBD (PBDWR80.PBD)
Benefits include
Fewer trips to server since connection information is stored as specific properties on the container component
Locking issue on DataWindow PBLs in use by pooled DataWindow components is eliminated
Web Target Functionality:Web Target Object Model : Web Target Functionality: Web Target Object Model Evolution of the object model, containing common application server constructs
Allows development of web application independent of target server
Upon deployment, ‘include’ file translates object model to native application server syntax
OBJMOD80.SSC for PowerDynamo
OBJMOD80.JS for Active Server Pages (ASP)
Web Target Functionality:4GL Web : Web Target Functionality: 4GL Web 4GL Web is an extension to the Web Target Object Model
Enables 4GL development experience for Web Site creation
Declaratively specify page and session variables
Drag and drop EAServer component method calls
Incorporate GUI elements and bind to variables and component properties
Specify links and parameters to other pages in application
Provide diagnostics in form of event trace (in addition to client and server-side debugging available for Web targets in general)
Web Target Functionality:4GL Web : Web Target Functionality: 4GL Web Web target object model drives the processing of a 4GL web page
Sequence of events is begun when page is loaded causing the various server-side scripts coded by developer to execute
Most events occur before HTML generation allowing you to initialize variables and perform business logic before page is generated
Object model creates server-side representations of the scriptable objects (buttons, text fields, etc.) that were placed on the Web to enable processing to occur within the server side
Slide50 : Server-side events on a 4GL Web pages
These events appear in the order they fire
RequestStart
AfterBinding
BeforeAction
AfterAction
BeforeGenerate
AfterGenerate
RequestFinish
ServerError
Web Target Functionality: 4GL Web
Slide51 : Web Target Functionality: 4GL Web Web DataWindow specific server-side events
The following events are fired when a Web DataWindow
control is placed on a 4GL Web page
AfterAction
AfterRetrieve
AfterUpdate
BeforeAction
BeforeRetrieve
BeforeUpdate
OnDBError
Validate
ValidationError
Web Target Functionality:4GL Web : Web Target Functionality: 4GL Web psPage is object representing 4GL Web page
Instance of the PSServerPageClass returned by call to psGetServerPage()
RunServerEventModel() method calls majority of the server-side events for initialization and binding before generating any of the page content
GenerateBodyPrologue/Epilogue() takes care of encapsulating page content with necessary form infrastructure
EndOfPage() peforms cleanup functionality by invoking the AfterGenerate and RequestFinish server-side events
Catch the
buzz on authorSTREAM
Copyright © 2002-2008 authorSTREAM. All rights reserved.