Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech...

64
Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. [email protected] (713) 586-6481 April 27, 2004

Transcript of Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech...

Page 1: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Perspectives On Application Development Using Sybase Tools

Donald D. ClaytonPresident, Intertech Consulting, [email protected] (713) 586-6481April 27, 2004

Page 2: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Objectives

Review some decision frameworks regarding the use of Sybase tools

Understand the Sybase tools strategy for application development

PowerBuilder PowerBuilder in a .Net World Next Generation Web DataWindow

PowerDesigner PowerDesigner For PowerBuilder Developers and PowerDesigner Futures

Page 3: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Audience Review

Which version of PowerBuilder are you on? How many applications are you supporting? How many of those are PFC? What do your enhancement requests look like?

Bug fixes only New functionality Need to move functionality to Web

What are your company’s current development standards?

Page 4: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Decision Framework #1

Maintenance vs. New Requirements Web vs. Non Web Looking for a Silver Bullet? It is important to have an effective baseline and know where

you want to go Step 1: Know your PowerBuilder Code

Page 5: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Maintenance Mode Only

If it isn’t broken, don’t try to fix it. There is lots of maintenance mode PB out there, mostly PB

6.5.1, with post Y2K fixes, etc. But what if there are new requirements?

Stick with PB 6.5, which seems to work… Or …move to newer version of PowerBuilder

Page 6: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Deployment Concerns

A major reason for moving to web-based computing is the elimination of deployment concerns

How many of you would like to eliminate the tedious installation of new and upgraded software onto the many PCs in your far-flung company? Many companies use CITRIX or Terminal Services There are other options available

Softricity's SoftGrid

Exent Technologies

Stream Theory

Appstream

Egenera

Page 7: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Do You Need to Get To The Web?

There are numerous ways to get to the web with Sybase products PowerBuilder/EAServer Combo HTML DataWindow Web Services Tools in EAServer 3rd Party Code Generators or Migrators

Appeon

Metex

Page 8: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Decision Framework #2

What development tools do your strategic and tactical application development platforms call for?

Sybase sees the App Dev World splitting into two large camps with several smaller camps around them

Large Camps Microsoft Visual Studio and .Net Java

Small Camps Borland Delphi PowerBuilder Centura Oracle Forms

Page 9: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

The .NET World of Microsoft

Microsoft’s vision of Windows application development is an all encompassing environment with many benefits

Common runtime system Type safe programming Easy communication between different languages Massive class library, from soup to nuts.

.The Future According to Microsoft

Page 10: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Microsoft’s App Dev Roadmap

Page 11: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

The .Net Cool-aid

Microsoft intends to do all their applications development and more under .NET.

C# will be the language of choice for everything that is not of the kernel, which will remain in C/C++.

The scope of the runtime system and the class libraries is almost breath taking.

Microsoft believes in this architecture strongly enough to have upset their very large base of Visual Basic developers with a radically (for them) new version Visual Basic.

Page 12: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Powerbuilder’s Place in .NET

Powerbuilder offers alternatives to Microsoft’s vision. Sybase announced and has committed to a 4 phased .Net

strategy Release 9.0

Supports Web Services and XML

Release 10.0 More support for Web Services DataWindow .NET

Release 11.0 PB 11.0 will introduce compiler support for .NET, compiling Powerscript

directly to MSIL Powerbuilder access to .NET class libraries Allow .NET applications to access Powerbuilder objects.

Page 13: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Powerbuilder’s Place in .NET

The DataWindow .NET Will be a citizen of the .NET world The DataWindow technology will be extended to all languages supported in

the Common Language Runtime Visual Basic.NET, C#, C++

For the Visual Basic programmer A worthy competitor to the DataGrid control The DataWindow offers features that will be enticing to VB programmers

For the Powerbuilder programmer Where development in .NET is mandated, the investment in DataWindows is

protected. The DataWindow will be familiar

Coming in the next release

Page 14: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

The DataWindow .NET initiative

A .NET data aware control Drop it on a Window Form It supports the familiar set of DataWindow properties, events and methods

The .NET data aware object Instantiated using “new”. Like the DataWindowControl, it will expose DataStore methods events and

properties.

The Powerbuilder database drivers The DataWindow Builder

For DataWindow creation without Powerbuilder

What is the DataWindow.NET?

Page 15: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

The DataWindow .NET Initiative

The DataWindowControl Is a custom authored Windows Form. Can be dropped on a Windows Form Backed up by a C# class library that maps DataWindow functionality to

applications running within the Common Language Runtime This class library includes the DataStore.

The DataWindow engine (server) Powerbuilder DataWindow engine Loads DataWindow definitions from pbls and pbrs Communicates with the database drivers Processes UI events in the screen real estate of the DataWindowControl Does the screen painting.

Implementation

Page 16: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

The DataWindow .NET Implementation

From the Visual Studio .NET toolbox Select and drop the DataWindowControl onto a Windows Form. Two important properties are exposed: Enter the name of the DataWindow Object to use in the DataWindowControl Enter a library name from where to load the DataWindow Object

.

How do you use it

Page 17: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

DataWindow .NET Implementation

DataWindow Events.. The DataWindowControl will support the same set of events as the

DataWindow

How do you use it?

Page 18: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Powerbuilder’s place in .NET

A future release of Powerbuilder will: Compile Powerscript code to MSIL Allow Powerscript to run under the Common Language Runtime

Allow Powerscript access to .NET class libraries Allow Powerscript to consume both Microsoft and other .NET objects

Allow .NET objects to access Powerbuilder objects NVO etc.

Powerbuilder futures

Page 19: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

PowerScript.NET

Create a .NET target When creating a PB target, you will be able to create a .NET target. In this

target you can import and extend .NET classes written in other languages.

Create a normal target and compile it into MSIL When creating a PB target, if you choose to create a normal target, you can

create a project to compile the target into a .NET application. However, in this target, you cannot import or extend.NET classes written in other languages.

How to create a PB target for .NET?

Page 20: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

PowerScript.NET

Compile a PowerBuilder target into a .NET application. Import and use .NET classes written in other languages. Extend .NET classes written in other languages.

What can you do with it?

Page 21: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

PowerBuilder 10: The “XML Web DataWindow”

Solution

Utilize latest web technologies: XHTML Client-side XML Client-side XSLT Standalone CSS stylesheet (with cascaded absolute positioning)

Page 22: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

XML Web DataWindow

Browsers targeted:

Browser XML parserXSLT processor

XSLT version

Internet Explorer 5, 5.5 MSXML 2.0 XSL-WD

Internet Explorer 6.0 MSXML 3.0 XSLT 1.0

Netscape 6+ TransforMiiX XSLT 1.0

Mozilla 1.0 TransforMiiX XSLT 1.0

Page 23: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Why Use XHTML?

Benefits: Separation of presentation markup from content

Most fundamental principle in web development

Use of XML-specific technologies in architecture DOM-based generation and parsing

Use of XML-specific tools for customizing TreeView-based editing

Page 24: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Separating Presentation from Content

Within DataWindow: Content = data values of column, compute, and text controls Presentation = visual and functional properties of DW controls

Benefits of Separating: Accessibility Targeted presentation using stylesheets Improved processing by browser

Page 25: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

XHTML Benefits

XHTML’s separation of visual elements from actual content make page much more accessible to people with disabilities

XHTML more easily understood by people with visual impairments using screen readers and voice browsers

Presentation can now be stored in separate stylesheet documents (CSS and XSL) for XHTML page

Different stylesheets more easily generated for different browsers United States, Section 508 of the Usability Act

Accessibility

Page 26: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Client-Side XML

XML Content

CSSXHTML

XSLTDetermines structural

layout

Determines style ofelements as displayed

in browser

Page 27: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

XSLT

Extensible Stylesheet Language Transformations Provides a way of transforming XML documents into other

document formats For XHTML (which is fundamentally XML), XSLT can be used to

transform an XML document into a styled XHTML web page for display in a browser

XSLT goes beyond CSS by allowing rules that change or infuse the content with layout and structure

Page 28: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Why Use Client-Side XSLT?

Benefits: Saves bandwidth Clients only need to download and cache XSLT code once for

DataWindow session Server processing is reduced with more work being done on client

Page 29: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

XML Web DataWindow Design

JSP Page

Server-Side Client-Side

User request page

XML Web DWcomponent

DataStore

Step 1HTTP get

Step 2DataWindow generated in separate XML, XSLTCSS, JS, with transform script sent to client

Step 3HTTP response

Step 5User interacts with DataWindow, but next request only requires download of XML and JS rows

XHTML PageClient-Side

Step 4Client-side JavaScript

uses XSLT to transform XML into XHTML and

displays this in the <div> in the browser

XML

XSLT XHTML

JS rows

Client-side JavaScript

JS control

CSS

Page 30: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

XML Web DataWindow Generator

1.) Invoked in the DataWindow engine from server-side code

2.) Generates an XHTML rendering of the DW in a DOM tree

3.) Concurrently generates a CSS stylesheet using a DOM tree with all styling information of the DW’s elements, including absolute positions in cascade

4.) Also generates separate client-side JavaScript files for instantiating the control object and array of row elements

Static client-side set of JavaScript files deployed as usual

5.) Reverse-transforms the XHTML DOM tree to XML and XSLT DOM trees for web publishing

XML = DataWindow data content for the page XSLT = DataWindow structural layout

6.) Ultimately generates small amount of script to perform explicit transformation on client-side

Server-Side

Page 31: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

PowerBuilder 11: New Language Features

A language feature that allows programmers to organize their program into sets of modules.

Help avoid name conflicts. Support team programming efforts.

Packages can be nested.

Package

Page 32: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

New Language Features

Usage 1Package mypackage

Usage 2Package FirstLevelPackage.SecondLevelPackage

Declare a package

Page 33: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

New Language Features

Usage 1import system

Usage 2// import a package (actually a .NET namespace)import system.text.regularexpressions as st

Regex r = create st.Regex(“abc”)Match m = r.match("123abc456")String strIf m.success then

str = “The position of abc is at ” + string(m.index)end if

Import a package

Page 34: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

PowerScript.NET

// use a .NET namespace

imports System.Text.RegularExpressions

// create an instance of a .NET class

Regex r = create Regex("abc")

Match m = r.Match("123abc456")

String str

If m.success then

str = “The position of abc is at ” + string(m.index)

end if

Import and use a .NET class

Page 35: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

PowerScript.NET

// use a 3rd party namespace

imports ThirdPartyNameSpace

// Declare a class inheriting from a 3rd party class

type MyClass extends ThirdPartyClass

int ii_var

end

// overriding a function

forward prototypes

public function int doSomething(string s)

end

public function int doSomething(string s)

return doSomethingElse(s)

end

Extend a .NET class

Page 36: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

New Language Features

A language feature that allows programmers to define constructors with parameters.

Constructor(string name, int id)

With parameterized constructors, you can create an instance in several different ways.

Employee e = create employee(“xxx”, 123)

Parameterized constructors

Page 37: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

New Language Features

An interface declaration introduces a new reference type whose members are abstract methods.

Interfaces can help reduce the couplings between classes and packages, and improve testibility.

A class can implement more than one interfaces.

Interfaces

Page 38: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

New Language Features

Public interface IEmployee

function string getName()

subroutine adjustSalary(real adjustment)

event companyClosed()

End

Interface IDeveloper extends IEmployee

subroutine assignProject(string projectName)

end

Declare an interface

Page 39: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

New Language Features

A class can implement one or more interfaces. Interfaces can be used as parameters or return values.

Class Page implements IPrintable

public subroutine print()

public subroutine addItem(IItem item)

Public function IItem getItem(int x, int y)

End

Use an interface

Page 40: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

New Language Features

User-defined enumerations Class methods Bit-wise operations New data types

Hashtable List Regular expression …

Other features

Page 41: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

PB 11 Complier Framework

To lay a solid foundation for writing the PB p-code compiler, .NET compiler, and Java compiler.

To be able to write utilities, e.g. cross-referencing tool, based on the compiler framework.

Why have a new compiler framework

Pre-processor Parser

Java byte-codegenerator

P-code generator

.NET IL generator

Other tools

InstrumentedPS code PS code

AST

Page 42: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Complier FrameworkArchitecture

CompilerFramework

.NET Importer

.NET Emitter

IImporter

IEmitter

.NET Compiler

IPreprocessor

PreprocessorPreprocessor

IPSVisitor

Page 43: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Complier Framework

Syntactic analysis Parse the given source code and generate an Abstract Syntax Tree (AST).

Contextual analysis Identification – Resolve the identifiers, load other classes if necessary. Type checking – to ensure there is no type error.

What does the compiler framework do

Page 44: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Complier Framework

The compiler framework provides an interface IPSVisitor for traversing the AST tree.

With the visitor interface and the AST tree, many things can be done:

Emit PB p-code Emit .NET MSIL Emit Java byte code Create a cross-reference database PBDoc like javadoc Refactoring Reverse engineering …

Make use of the compiler framework

Page 45: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Complier Framework

A pre-processor can introduce some keywords to the PowerScript language.

A pre-processor is responsible for translating the keywords into “real” PowerScript code.

Examples: Design by Contract Aspect-Oriented Programming …

Pre-processor

Page 46: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Next-Generation PowerScript Langauge

Continue to be a productive language A general-purpose language More object-oriented A high-level language but can do low-level things Support both .NET and Java Extensible Lots of utilities

Going forward…

Page 47: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Agenda

PowerDesigner Overview PowerDesigner 9.5.2 for PowerBuilder PowerDesigner Roadmap PowerDesigner 10 and PowerBuilder 10 Together

Page 48: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

TraditionalE/R DataModeling

(James Martin)

Object-orientedModeling

(UML techniques)

Business ProcessModeling

(emerging standards)

Designers/Analysts,DBAs, Database Developers

Design Tools Market Landscape

Designers/Analysts,Developers, Programmers

Business AnalystsLOBsCIOs

Three markets converging

Page 49: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Source Sybase

Rep

osito

ryBusiness

centric

ITcentric

PowerDesigner 9.5.2

Development

Analysis&

Design

BusinessAnalysis

Business-centric Control Flow diagram

Entity/Relationship modeling (and DW extensions)

UML modeling (all diagrams)

RDBMS structuresObject Relational mappingJava, .Net, XML, PB... supportIDEs & App Server support

Tem

plates, G

eneric G

enerato

rs,U

ML

pro

files, mo

del-to

-mo

del g

eneratio

n…

Integrated Enterprise Modeling Tool

Page 50: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Link and Synchronize All Models

PowerBuilder,Java, J2EEXML, WSDL

Forward Engineering

Reverse Engineering

Round-trip Engineering

Import/Export

ODBC

C++, C#, VB.Net,

Web Services, etc...

Business ProcessModel(BPM)

ebXML, MessageBroker,

Ohio

Database SQL Script(DDL)

O/R

Map

pin

g

Conceptual DataModel(CDM)

Physical DataModel(PDM)

Object-Oriented Model(OOM)

Page 51: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

PowerDesigner for PowerBuilder Features Summary

PowerDesigner 9.5.2 introduces complete support for all PowerBuilder objects reverse engineering and generation

Support libraries (.pbl) and source files (.sr*) Support PowerBuilder 6, 7, 8 and 9 PowerBuilder tool palette for creating new objects Model verification Generate & reverse PowerBuilder extended attributes in PDM

Page 52: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

PowerDesigner Value Proposition

Help users to understand how the application was developed. Help users to visually see the relationship between objects. Help users to improve existing code, refactor the code. Regenerate PowerBuilder application. Generate documentation (report) in HTML and RTF format.

Page 53: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Example of a Class Diagram

*iw_opensheets

<<menu>>

m_pbtutor_sheet

<<userObject>>

n_pbtutor_sheetmanager

++++

is_sheetsis_displayiw_opensheetsim_items

: string[]: string[]: w_pbtutor_basesheet[]: menu[]

+++++++++++

of_unregistersheet (..)of_sheetcount ()of_opensheet (..)of_sheetisclosing (..)of_classcount (..)of_openallsheets ()of_adjustmenu (..)of_resetmenu ()of_registersheets (..)of_addtomenu (..)of_registersheet (..)

: integer: long: integer: long: long: integer: integer: integer: integer: integer: integer

<<window>>

w_cust_pct

++

<<property>><<property>>

tagwidth

: string: integer

= "Customer Location" = 2392

++

uf_percentage (..)activate ()

: decimal

cbx_zerosle_resultcb_percentddlb_statest_2st_1

<<window>>

w_pbtutor_basesheet

++++++++++++

<<property>><<property>><<property>><<property>><<property>><<property>><<property>><<property>><<property>><<property>><<property>><<property>>

XYWidthHeightTitleBarTitleMenuNameBackColorControlMenuMinBoxMaxBoxResizable

: int: int: int: int: boolean: string: string: long: boolean: boolean: boolean: boolean

= 672 = 264 = 1582 = 1064 = true = "Sheet" = "m_pbtutor_sheet" = 79416533 = true = true = true = true

++++++++

ue_postopen ()ue_undo ()ue_cut ()ue_copy ()ue_paste ()ue_clear ()open ()close ()

Page 54: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Defining Inheritances

A parent class could be a shortcut representing a class defined in another model for example for system classes.

<<userObject>>

uo_cust_visual_1

++++++

<<property>><<property>><<property>><<property>><<property>><<property>>

widthheightbackcolortexttabtextcolorpicturemaskcolor

: integer: integer: long: string: long: long

= 1787 = 384 = 67108864 = "none" = 33554432 = 536870912

pb_1

UserObject(<PowerBuilder 9>)

++++++++++++++++++++++

EnabledHScrollBarVScrollBarBorderObjectTypeControlBackColorPointerClassNameLibraryNameTextStyleUnitsPerLineLinesPerPageUnitsPerColumnColumnsPerPageBorderStyleTabTextColorTabBackColorPictureNamePictureMaskColorPowerTipText

: boolean: boolean: boolean: boolean: UserObjects: WindowObject[]: long: string: string: string: string: long: integer: integer: integer: integer: BorderStyle: long: long: string: long: string

= true

= CustomVisual!

= 1073741824

= StyleBox!

= 67108864

= 25166016

+++++++++++++++

Constructor_event ()Destructor_event ()DragDrop_event ()DragEnter_event ()DragLeave_event ()DragWithin_event ()Other_event ()RButtonDown_event ()AddItem (..)DeleteItem (..)EventParmDouble (..)EventParmString (..)InsertItem (..)PageCreated ()CreatePage ()

: int: int: int: int: int: int: int: int: integer: integer: integer: integer: integer: boolean: integer

<<window>>

w_customers

++++

<<property>><<property>><<property>><<property>>

tagwidthheightx

: string: integer: integer: int

= "Maintain Customers" = 2940 = 2940 = 670

dw_detaildw_master

<<window>>

w_master_detail_ancestor

+++

<<property>><<property>><<property>>

widthheightmenuname

: integer: integer: string

= 2267 = 1732 = "m_my_sheet"

+++++

ue_retrieve ()ue_insert ()ue_update ()ue_delete ()open ()dw_detaildw_master

<<window>>

w_products

++

<<property>><<property>>

tagwidth

: string: integer

= "Maintain Products" = 2830

dw_detaildw_master

Page 55: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Overriding Properties

In the Attributes tab of the class property sheet, the Inherited button allows you to select the properties to override.

Page 56: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Previewing PowerBuilder Code

Open the properties of an object. Select the Preview tab. Change the code in the Preview window (add attributes, modify operations,

…), the model will be updated to reflect the changes. For DataWindow, Menu, Query, …, change the code in the Script tab

Page 57: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

PowerDesigner and PowerBuilder Together

PowerDesigner: A Plugin Component in PowerBuilder 10 Reverse Engineer From PowerBuilder Design and Generate PowerBuilder Code Using

PowerDesigner Navigation Between PowerDesigner and PowerBuilder

Summary

Page 58: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

PowerDesigner and PowerBuilder TogetherPowerDesigner: A Plugin Component in PowerBuilder 10

Page 59: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

PowerDesigner and PowerBuilder Together

Add Classes and Do Design Although PowerBuilder doesn’t support interfaces yet, user can define

interface in PowerDesigner, then implement interface in a PowerBuilder user object.

Design and Generate PowerBuilder Code Using PowerDesigner

Page 60: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

PowerDesigner and PowerBuilder Together

Design in PowerDesigner

Modify in PowerBuilder

Generate PowerBuilder Code

Debug and Run

Reverse Engineer to Update Class Diagram

Page 61: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Future Direction

PowerDesigner 10.0 will support tight integration with PowerBuilder 10

PowerBuilder 10 will be able to embed PowerDesigner views inside PowerBuilder

PowerBuilder will be able to control PowerDesigner PowerDesigner will generate complete PowerBuilder

application code (post 10.0)

Page 62: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

PowerDesigner Roadmap

PowerDesigner Athena (V10, December 2003) Integration with PowerBuilder Integration with Eclipse (Q1 2004) Major BPM improvements XML model Fully support MDA

PowerDesigner Minerva (end of 2004) Enterprise features (requirements, impact analysis, …) XML and Web Services in database UML 2.0 Design patterns

Page 63: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Other Athena Features

Support C# and VB .NET reverse engineering Improve Web Services support (support Apache Axis, …)

Page 64: Perspectives On Application Development Using Sybase Tools Donald D. Clayton President, Intertech Consulting, Inc. dclayton@intertech.us (713) 586-6481.

Audience.Query()