Presentation is loading. Please wait.

Presentation is loading. Please wait.

Perspectives On Application Development Using Sybase Tools

Similar presentations


Presentation on theme: "Perspectives On Application Development Using Sybase Tools"— Presentation transcript:

1 Perspectives On Application Development Using Sybase Tools
Donald D. Clayton President, Intertech Consulting, Inc. (713) April 27, 2004

2 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

3 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?

4 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

5 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

6 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

7 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

8 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

9 The .NET World of Microsoft
.The Future According to 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. I took a C# class recently and the instructor had been long involved in the .NET initiative as a consultant and advisor. He thinks, and I am inclined to agree that 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. 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.

10 Microsoft’s App Dev Roadmap

11 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.

12 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. I took a C# class recently and the instructor had been long involved in the .NET initiative as a consultant and advisor. He thinks, and I am inclined to agree that 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. 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.

13 Powerbuilder’s Place in .NET
Coming in the next release 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 The cool thing I first noticed about .NET was the Common Language Runtime. An execution engine (do not call it a VM within earshot of Microsoft) that makes it possible for different languages to interact with little regard for the what languages your talking about. This meant to me that a runtime C# front end of the existing DataWindow engine could be accessed by any other .NET language, Visual Basic, Cobol, Fortran … whatever CLR language you want. Any .NET language can consume a DataWindow. Powerbuilder shops who might be mandated to use .NET languages for some things do not have to abandon their DataWindow investments “Enticing to .NET programmers/Familiar to Powerbuilder programmers”

14 The DataWindow .NET initiative
What is the DataWindow.NET? 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 The C# layer exposes functionality such that any .NET language can use a DataWindow and use such familiar programming as dw_1.Retrieve ( );

15 The DataWindow .NET Initiative
Implementation 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.

16 The DataWindow .NET Implementation
How do you use it 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 .

17 DataWindow .NET Implementation
How do you use it? DataWindow Events.. The DataWindowControl will support the same set of events as the DataWindow

18 Powerbuilder’s place in .NET
Powerbuilder futures 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. Engineers are now working with the Powerscript compiler to modernize it and allow it emit MSIL and run in the CLR. As it will be code executing in the CLR it ought to work hand in hand with other .NET programming that is also running under the CLR. Powerscript and Powerbuilder will be full fledged citizens of the .NET world.

19 PowerScript.NET Create a .NET target
How to create a PB target for .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.

20 PowerScript.NET Compile a PowerBuilder target into a .NET application.
What can you do with it? Compile a PowerBuilder target into a .NET application. Import and use .NET classes written in other languages. Extend .NET classes written in other languages. A future version of PowerBuilder will provide a .NET compiler, which can make PowerBuilder a .NET provider, a .NET consumer, and also a .NET extender. A .NET provider can provide .NET classes for others to use. A .NET consumer can use .NET classes developed by others in any languages. A .NET extender can extend (inherit from) .NET classes developed by others.

21 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)

22 XML Web DataWindow Browsers targeted:

23 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

24 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

25 XHTML Benefits Accessibility 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

26 Determines structural
Client-Side XML XML Content XSLT Determines structural layout XHTML Determines style of elements as displayed in browser CSS

27 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

28 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

29 XML Web DataWindow Design
Server-Side Client-Side XML DataStore User request page XSLT XHTML XML Web DW component XHTML Page Client-Side Step 4 Client-side JavaScript uses XSLT to transform XML into XHTML and displays this in the <div> in the browser CSS Step 1 HTTP get Client-side JavaScript Step 2 DataWindow generated in separate XML, XSLT CSS, JS, with transform script sent to client JS control Step 3 HTTP response Step 5 User interacts with DataWindow, but next request only requires download of XML and JS rows JS rows JSP Page

30 XML Web DataWindow Generator
Server-Side 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

31 PowerBuilder 11: New Language Features
Package 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.

32 New Language Features Usage 1 Usage 2 Package mypackage
Declare a package Usage 1 Package mypackage Usage 2 Package FirstLevelPackage.SecondLevelPackage

33 New Language Features Usage 1 Usage 2 import system
Import a package Usage 1 import 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 str If m.success then str = “The position of abc is at ” + string(m.index) end if

34 PowerScript.NET // use a .NET namespace
Import and use a .NET class // 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 To use the Regex class of .NET in PowerScript, import the namespace that the Regex class is in, create an instance of Regex, and call its Match() function.

35 PowerScript.NET // use a 3rd party namespace
Extend a .NET class // 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) return doSomethingElse(s) Let’s there is a ThirdPartyClass declared in the ThirdPartyNameSpace, and we want to extend the class in PowerScript in order to override the function doSomething(), here is the syntax.

36 New Language Features Parameterized constructors 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)

37 New Language Features Interfaces 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.

38 New Language Features Public interface IEmployee
Declare an interface Public interface IEmployee function string getName() subroutine adjustSalary(real adjustment) event companyClosed() End Interface IDeveloper extends IEmployee subroutine assignProject(string projectName) end

39 New Language Features A class can implement one or more interfaces.
Use an interface 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

40 New Language Features User-defined enumerations Class methods
Other features User-defined enumerations Class methods Bit-wise operations New data types Hashtable List Regular expression

41 PB 11 Complier Framework Why have a new compiler 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.

42 Complier Framework .NET Compiler Compiler Framework .NET Importer
Architecture .NET Importer IImporter Compiler Framework IEmitter .NET Emitter IPSVisitor .NET Compiler IPreprocessor Preprocessor Preprocessor

43 Complier Framework Syntactic analysis Contextual analysis
What does the compiler framework do 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.

44 Complier Framework Make use of the compiler 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

45 Complier Framework Pre-processor 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

46 Next-Generation PowerScript Langauge
Going forward… 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

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

48 Design Tools Market Landscape
Three markets converging Business Process Modeling (emerging standards) Business Analysts LOBs CIOs Traditional E/R Data Modeling (James Martin) Object-oriented Modeling (UML techniques) So, nowadays, we see three different segments in the modeling (or design) market space: Data Modeling : this is where it all started, with modeling techniques like Entity/Relationship (this explains E/R) created by James Martin, famous for a methodology called James Martin Information Engineering UML modeling : James Martin Information Engineering was and still is very effective for database modeling, but was weak for application logic modeling. UML – Unified Modeling Language – although a generic notation, has proven its capabilities in recent years especially in the area of application/business logic modeling, especially because, if properly implemented, it allows automatic code skeleton generation and roundtrip engineering Business Process Modeling : BP Modeling has been around for a while, especially within Business Process Re-engineering companies. We have seen growing interest in BP modeling during recent years, mostly because of the new opportunities that the Internet brings to businesses. The Internet basically empowers enterprise to integrate – at information system level – with their customers and partners. In order to leverage these new opportunities, you do need 1) to understand your business process, 2) understand your customers / partners business processes and 3) design the interaction. BP modeling is a great tool for this. Designers/Analysts, DBAs, Database Developers Designers/Analysts, Developers, Programmers

49 PowerDesigner 9.5.2 Repository Business Analysis Analysis & Design
Integrated Enterprise Modeling Tool Business-centric Control Flow diagram Business Analysis Business centric UML modeling (all diagrams) Entity/ Relationship modeling (and DW extensions) Analysis & Design Repository Templates, Generic Generators, UML profiles, model-to-model generation… IT centric This is PowerDesigner architecture. As explained, you will see on the left that the goal is to go from business analysis, to analysis and design and to development. On the right side, we display that there is a mixture of business-centric people and IT-centric people performaing design. Our features serve those roles based on a common architecture build of a central repository and common services like templates, generic generators, UML profiles, scripts, etc. The detailed features are a business process model – control flow diagram – simple and intuitive for non-IT business users E/R modeling for Databases and UML for application design Code generation for databases structures and key target platforms Plus interfaces with common IDEs and Application Servers RDBMS structures Object Relational mapping Java, .Net, XML, PB... support IDEs & App Server support Development Source Sybase

50 Link and Synchronize All Models
PowerBuilder, Java, J2EE XML, WSDL Object-Oriented Model (OOM) Business Process Model (BPM) ebXML, MessageBroker, Ohio C++, C#, VB.Net, Web Services, etc... O/R Mapping Conceptual Data Model (CDM) Physical Data Model (PDM) Forward Engineering ODBC Reverse Engineering Database SQL Script (DDL) Round-trip Engineering Import/Export

51 PowerDesigner for PowerBuilder Features Summary
PowerDesigner 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

52 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.

53 Example of a Class Diagram

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

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

56 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

57 PowerDesigner and PowerBuilder Together
Summary PowerDesigner: A Plugin Component in PowerBuilder 10 Reverse Engineer From PowerBuilder Design and Generate PowerBuilder Code Using PowerDesigner Navigation Between PowerDesigner and PowerBuilder

58 PowerDesigner and PowerBuilder Together
PowerDesigner: A Plugin Component in PowerBuilder 10

59 PowerDesigner and PowerBuilder Together
Design and Generate PowerBuilder Code Using PowerDesigner 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.

60 PowerDesigner and PowerBuilder Together
Design in PowerDesigner Generate PowerBuilder Code Modify in PowerBuilder Debug and Run Reverse Engineer to Update Class Diagram

61 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)

62 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

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

64 Audience.Query()

65 Title Arial 28 pt. Subhead: Arial Bold 20 pt.
Secondary Title: Arial 16 pt. Subhead: Arial Bold 20 pt. Body or secondary lines Arial16 pt.

66 Title Arial 28 pt. Secondary Title: Arial 16 pt. Legend


Download ppt "Perspectives On Application Development Using Sybase Tools"

Similar presentations


Ads by Google