530 likes | 545 Views
Recap of the Sybase TechWave 2004 conference for application developers, focusing on PowerBuilder in the .NET world and the future of Powerbuilder in the Microsoft environment.
E N D
TechWave 2004 Recap for Application Developers Donald D. Clayton President Intertech Consulting, Inc. dclayton@intertech.us August 18-19, 2004
Objectives • Understand the Sybase strategy for application development • PowerBuilder • PowerBuilder in a .Net World • Next Generation Web DataWIndow • Next-Generation PowerScript Language • Appeon For PowerBuilder • PocketBuilder • Features and Functions • PowerDesigner • PowerDesigner For PowerBuilder and PowerDesigner Futures
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.
Powerbuilder’s Place in .NET • Powerbuilder offers alternatives to Microsoft’s vision. • Release 9.0 • Supported Web Services • Release 10.0 • More support for Web Services – can now deploy into EAServer directly from PB • DataWindow .NET • Release 11.0 • Support for compiling Powerscript directly to MSIL • Powerbuilder access to .NET class libraries • Allow .NET applications to access Powerbuilder objects.
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 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 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 .
DataWindow .NET Implementation How do you use it? • Add coding to manipulate the DataWindow • Visual Studio adds some boilerplate coding to instantiate the basic DataWindowControl • Initialize the DataWindow.. DWC1.InitDataWindow( );
DataWindow .NET Implementation How do you use it? • Add coding to manipulate the DataWindow • Instantiate and populate a Transaction object • Using the name “SQLCA” creates a look consistent with Powerscript usage Sybase.DataWindow.Transaction SQLCA = new Sybase.DataWindow.Transaction( ); SQLCA.DBMS = "ODBC"; SQLCA.DBParm = "ConnectString='DSN=EAS Demo DB V4; UID=dba;PWD=sql;sqlcache = 1,disablebind = 1'"; SQLCA.Autocommit = false;
DataWindow .NET Implementation How do you use it? • Connect to the DataSource • Set the DataWindow’s Transaction Object SQLCA.Connect( ); DWC1.SetTransObject ( SQLCA )
DataWindow .NET Implementation How do you use it? • Retrieve the DataWindow • Add and Delete rows on the DataWindow • The full support for all DataWindow methods is intended Int32 rows; rows = DWC1.Retrieve( false, 0 ); DWC1.InsertRow ( 0 ); DWC1.DeleteRow( 0 ); DWC1.Update( );
DataWindow .NET Implementation How do you use it? • DataWindow Events.. • The DataWindowControl will support the same set of events as the DataWindow
Fun facts about DataWindow .NET • DataWindow.DLL – approximately 20,000 lines of C# code • DataWindowInterop.DLL - approximately 6,000 lines of C++ code • XML documentation – approximately 7,000 lines • Used to creates documentation in the object browser, intellisense and dynamic help in Visual Studio • PBDWN100.DLL – the DataWindow server is approximately 325,000 lines of C++ code
Future plans for DataWindow .NET • The next release will support • WebForms and ASP .NET • Much more direct access to DataWindow object properties using the DataWindow .NET object model • Planned for about 6 months after 1.0 • The next release after that • We have no concrete plans yet but we are considering • Some kind of support for ADO DataSets and DataTables • Additional ADO .NET support
The “XML Web DataWindow” Solution Utilize latest web technologies: • XHTML • Client-side XML • Client-side XSLT • Standalone CSS stylesheet (with cascaded absolute positioning)
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
XHTML Benefits Targeted Presentation • Presentation can now be stored in separate stylesheet documents (CSS and XSL) for XHTML page • Different stylesheets more easily generated for different browsers
Client-Side XML XML Content Determines structural layout XSLT Determines style of elements as displayed in browser XHTML CSS
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
Powerbuilder’s place in .NET Powerbuilder futures • Powerbuilder 11 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.
PowerScript.NET 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.
WinForm/ WebForm Application PBL files C# Code Overview of PB to .NET Compiler pb2cs generates compiles Depends on References to PB Compiler Framework PB System Library For .NET Main modules of the PB to .NET compiler
Overview of PB to .NET Compiler • Assemblies of PB system library for .NET Sybase.PowerBuilder.Win.Dll Sybase.PowerBuilder.Web.Dll DataWindowControl Sybase.PowerBuilder.Common.Dll DataWindow Web Control 3rd party Web Controls Sybase.PowerBuilder.Interop.Dll PBSHR.Dll Sybase.PowerBuilder.Core.Dll DB Drivers
PB Windows Forms • Implemented using .NET Windows Forms controls. • No PBVM involved. • Make use of DataWindow.NET (supports dot notation)
PB WebForm for .NET • ASP.NET • Form-based programming method. • Event-driven programming • Ready-to-use Web controls that hide the details of HTML rendering. • State management • ASP.NET applications are compiled, and thus fast.
PB WebForm for .NET • PB WebForm Architecture (2-tier applications) PB App DB drivers Database PB application Web Brower ASP.NET PB WebForm App DB drivers Database Web Server PB WebForm application
PB WebForm for .NET • PB WebForm Architecture (3-tier applications) PB Client App PB Components Database App Server PB application Web Brower ASP.NET PB WebForm App PB Components Database Web Server App Server PB WebForm application
PB WebForm for .NET • Page life cycle Image copied from http://www.dotnetguru/us/articles/JSFvsWebForms/JSFvsWebForms.html
Powerbuilder’s place in .NET Summary • Powerbuilder is committed to full citizenship in the .NET world • PowerBuilder supported Web Services in PB 9.0. • Web Service support is enhanced in PB 10.0 • PB 10.0 introduces the DataWindow .NET • PB 11.0 will introduce compiler support for .NET • PB to .NET Compiler • In PB11 • Deploy PB applications as WinForm/WebForm applications. • Make use of .NET classes. • Beyond PB11 • Debugging WinForm/WebForm applications in PB IDE
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
PowerScript Enhancements • Package & imports • Parameterized constructors • Interface?
PocketBuilder Overview "Don't think big…Think Small!!" • PocketBuilder is now coming to aid corporate development of Pocket PC applications, brining all the benefits I have mentioned above - RAD 4 GL and even the DataWindow technology.
Why PocketBuilder ? • Pocket PCs • Send/receive email with Pocket Outlook • Sync your calendar • Sync your contacts • Sync your tasks • Comes with Pocket Word • Comes with Pocket Excel • Comes with Pocket IE • Connects to the internet
Why PocketBuilder ? • Pocket PCs with phone edition are powerful tools • Constant Data Connections • 'Always Up-to-Date' Calendar, Contacts and E-mail • SMS Enhancements • Enhanced Messaging Support • Connectivity Notifications • Dual Volume Controls • Richer Ring Tone Support • Call Barring • Enhanced Contacts • Call Mute • Smartphone • Similar to Phone Edition • Limitations on device
Different Functionality • Integration with POOM • Pocket Outlook Object Model • POOM is the key to the Pocket Outlook object managers repository • This repository is the object store for the Pocket PC contact manager, appointment manager & task manager. • So with the POOM object & Pocket PowerBuilder we can now enquire, access, create, update & delete contacts, appointments and tasks programmatically from within Pocket PowerBuilder applications in a very 4GL way.
How does it differ from PowerBuilder? Unsupported Functions • OLE • DDE • CORBA • Profiling • Printing • Rich Text and a few more Unsupported Events • help() • closequery() • anything to do with remote (example remoteexec()), hotlinkalarm() and toolbarmoved().
How does it differ from PowerBuilder? Unsupported Features • MDI applications, • EAServer connections, • Web and JSP targets, • and Automation server. NO PFC !
Agenda • PowerDesigner Overview • PowerDesigner 10 for PowerBuilder • PowerDesigner Roadmap • PowerDesigner 10 and PowerBuilder 10 Together
Why Modeling? – An analogy Would you build a house without a blueprint ? The Architect validatesthe concept with the client From these drawings, a technical diagram will be derived The Contractors will take this blueprint and optimise it based on technical considerations – linked to the Architectural View
Design Tools Market Landscape Three markets converging Business ProcessModeling(emerging standards) Business AnalystsLOBsCIOs TraditionalE/R DataModeling(James Martin) Object-orientedModeling (UML techniques) Designers/Analysts,DBAs, Database Developers Designers/Analysts,Developers, Programmers
PowerDesigner 10 Integrated Enterprise Modeling Tool Business-centric Control Flow diagram BusinessAnalysis Businesscentric UML modeling (all diagrams) Entity/Relationship modeling (and DW extensions) Analysis&Design Repository Templates, Generic Generators,UML profiles, model-to-model generation… ITcentric RDBMS structuresObject Relational mapping Java, .Net, XML, PB... support IDEs & App Server support Development Source Sybase
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
PowerDesigner 10 Features Summary • PowerDesigner is a good enterprise modeling tool • Leading Data Modeling tool • Complete UML support (9 UML diagrams) • Business Process Modeling features • Good Repository • Integration with Integration Orchestrator, Message Broker, ebXML • Design and generate code for PowerBuilder, Web Services, J2EE (EJB, O/R mapping), .NET, etc. • Support all major databases (more than 30) • Support major application servers (EAServer, WebLogic, WebSphere) • Integration with IDEs (Eclipse, JBuilder 8, Ant) • Support MDA • Extensibility (Profile, Code generator, VBScript, OLE automation)
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.
PowerDesigner for PowerBuilder FeaturesSummary • PowerDesigner 9.5.2 introduced 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
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
PowerDesigner and PowerBuilder Together PowerDesigner: A Plugin Component in PowerBuilder 10
PowerDesigner and PowerBuilder Together Design in PowerDesigner Generate PowerBuilder Code Modify in PowerBuilder Debug and Run Reverse Engineer to Update Class Diagram
Future Direction • PowerDesigner 10.0 supports tight integration with PowerBuilder 10 • PowerBuilder 10 will can embed PowerDesigner views inside PowerBuilder • PowerBuilder will be able to control PowerDesigner • PowerDesigner generates complete PowerBuilder application code (post 10.0)