Welcome!

PowerBuilder Authors: Chris Pollach, Yeshim Deniz, Jayaram Krishnaswamy, Kevin Benedict, Avi Rosenthal

Related Topics: PowerBuilder

PowerBuilder: Article

PowerBuilder's .NET Strategy

PowerScript language enhancements for .NET application development

.NET has become a mainstream programming platform. To be in line with PowerBuilder's .NET strategy (.NET deployment and .NET development), PB11 introduced many .NET-related features:

  • Its .NET compiler enables users to develop .NET Windows Forms (including SmartClient) applications and ASP.NET Web Forms (including AJAX-enabled) applications with functionality similar to PB's native pcode compiler.
  • Its .NET language interoperability feature enables users to consume part of .NET resources in PB .NET targets (Windows Forms or Webs Forms); users can make use of imported .NET types to interoperate with native PowerScript code to fulfill jobs such as consuming .NET classes, interfaces and enumerations with .NET namespaces, and consuming parameterized constructors, static members and indexers of .NET classes.
  • PB11 also enables users to deploy PB NVOs to .NET assemblies or .NET Web Services.

These language features are a major step on PB's roadmap to providing support for .NET platform, however they are relatively isolated and have some limitations, such as:

  • Functions cannot be invoked on imported .NET primitive types.
  • PB NVO cannot inherit from .NET classes.
  • PB objects cannot implement .NET interfaces.
  • .NET generic and delegate types are not supported.
  • .NET classes and interfaces cannot be used as parameters of functions/events.
  • PB Dynamic and post invocation are not supported by .NET methods.
  • .NET arrays of arrays are not supported.
  • Accessing .NET static members with instance reference is not supported.

Meanwhile, the .NET Framework is becoming more and more powerful, the .NET Framework class library is expanding with each new release, and more useful features have been introduced in the latest version of .NET Framework 3.5.

In PB12, the PowerScript language is supposed to be a CLS-compliant .NET language that can easily interoperate with other .NET CLS-compliant languages. Users will be able to consume and extend any CLS-compliant .NET resources thereby saving them a lot of development time.

On the other hand, more modern language features will be brought into PowerScript as well. These features will be delivered in a 4GL manner to maintain PB's productivity and bring PowerScript's differentiators to other .NET languages. The original PowerBuilder object model will be kept as much as possible to minimize the learning curve and preserve customers' investment, knowledge, and skills in PowerBuilder.

Why should PowerScript be a CLS-compliant .NET language? What is CLS? Simply put, CLS is a set of rules intended to promote language interoperability. Language interoperability means some code written in one language can interact with other code written in another language. Language interoperability can help maximize code reuse and, therefore, improve the efficiency of the development process.

More Stories By Thomas Zang

Thomas Zang is a staff software engineer at Sybase. He works in the Singapore kernel team of the PB department and is in charge of the PowerScript language enhancement project in PB12.0.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.