230 likes | 345 Vues
This insightful document discusses Powerbuilder's position in the .NET framework, covering its features, benefits, and integration with Microsoft technologies. It explains Powerbuilder's role in web services, DataWindow technology, and utilizing .NET classes. Additionally, it provides a practical guide on implementing DataWindow controls in .NET applications. Explore the potential of Powerbuilder in a .NET world with this informative resource.
E N D
PWB501 Powerbuilder Technologies in a .NET World David AveraStaff Engineerdavera@Sybase.com/334 501 161308/4-8/2003
The .NET World of Microsoft .The Future According to Microsoft • Microsoft’s vision of Windows application development. • 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 • Supports Web Services • Release 10.0 • More support for Web Services • 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 In Release 9.0 • The Powerbuilder Web Services Proxy Wizard • Can create a Powerscript proxy from a given WSDL file • JSP Web Services Proxy Wizard • Can generate a custom tag library from a given WSDL file
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 initiative What is the DataWindow.NET? • DataWindow features supported • Most presentation styles • DataWindow expressions • File SaveAs • XML Import and Export • And more
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.
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
DataWindow .NET Implementation How do you use it? • DataStore Events.. • The DataStore will also support events. DS1.RetrieveStart +=new Sybase.DataWindow.DataWindowEvents.RetrieveStartHandler (this.MyRetrieveStart); DS1.RetrieveEnd += new Sybase.DataWindow.DataWindowEvents.RetrieveEndHandler (this.MyRetrieveEnd);
PB Diamond Web Services • UDDI Browser • Can help find Web Services from a UDDI registry in Powerbuilder • Powerbuilder NVO • Can be deployed to EAServer as a Web Services component
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.
PowerScript.NET How to create a PB target for .NET? • Create a .NET target • When creating a PB target, you can choose 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.
PowerScript.NET 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
PowerScript.NET 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) end public function int doSomething(string s) return doSomethingElse(s) end
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.
Powerbuilder’s place in .NET Summary • Powerbuilder is committed to full citizenship in the .NET world • We support Web Services in PB 9.0. • Web Service support will be enhanced in PB 10.0 • PB 10.0 will introduce the DataWindow .NET • PB 11.0 will introduce compiler support for .NET