PowerBuilder 11: Windows Forms and .NET Interoperability - PowerPoint PPT Presentation

1 / 39
About This Presentation
Title:

PowerBuilder 11: Windows Forms and .NET Interoperability

Description:

... Shared objects OLE automation server Tracing and profiling Dynamic Data Exchange (DDE) Garbage collection functions EAServer client support ... – PowerPoint PPT presentation

Number of Views:72
Avg rating:3.0/5.0
Slides: 40
Provided by: JohnSt198
Category:

less

Transcript and Presenter's Notes

Title: PowerBuilder 11: Windows Forms and .NET Interoperability


1
PowerBuilder 11 Windows Forms and .NET
Interoperability
  • Jim ONeil
  • Principal Systems Consultant
  • Sybase, Inc.
  • joneil_at_sybase.com

2
PowerBuilder 11 Overview (presented Nov. 20,
2007) Jim ONeil Systems Consultant
.NET Windows Forms And Interoperability Dec. 4,
2007 Jim ONeil Systems Consultant
.NET Assemblies (presented Nov. 13, 2007) Jim
ONeilSystems Consultant
Web ServiceDataWindow Feb. 5, 2008 David
Avera Staff Software Engineer
PowerBuilder 11 .NET Deployment Web Casts
.NET Web Forms Dec. 11, 2007 David
Fish Engineering Evangelist
.NET Web Services Jan. 29, 2008 David
Fish Engineering Evangelist
.NET Smart Client Jan. 15, 2008 John
Strano Technology Evangelist
3
Agenda
  • PowerBuilder roadmap
  • Windows Forms overview
  • Deploying Windows Forms applications
  • Distributing Windows Forms applications
  • .NET interoperability

4
PowerBuilder Roadmap
  • Version 11 released in June 2007
  • 11.1 Maintenance Release in November 2007
  • Delivers on third-phase of PowerBuilders .NET
    initiative

5
(No Transcript)
6
Windows Forms Overview
10
7
Windows Forms Definition (Microsoft)
  • What is a Windows Forms application?
  • Windows Forms is for creating Microsoft Windows
    applications on the .NET Framework. This
    framework provides a modern, object-oriented,
    extensible set of classes that enable you to
    develop rich Windows-based applications. With
    Windows Forms, you are able to create a rich
    client application that can access a wide variety
    of data sources and provide data-display and
    data-editing facilities using Windows Forms
    controls.

Windows Forms Application
Win32 Application
MSCOREE.DLL (CLR)
8
Windows Forms Definition (English)
  • What is a Windows Forms application?
  • Windows Forms applications are an evolution of
    the Win32-based application development you know
    and love
  • and, why should you care
  • Win32 will go away, eventually
  • For PowerBuilder users, Windows Forms is a
    prerequisite for
  • Smart Client capabilities
  • .NET interoperability

9
Deploying Windows Forms Applications
10
10
Developing Windows Forms Applications
  • Obvious relationship to traditional PowerBuilder
    applications generally means a smooth transition
  • Same UI paradigms
  • Same event model
  • New Windows Forms wizard quickly creates
    requisite project and target
  • New application
  • Existing application leveragingsame code base

11
Windows Forms Project Object
11.1
12
Windows Forms Project Object
  • General tab build type, output directory
  • Resource files images, INI files, etc.
  • Library Files
  • PBL files containing DataWindows, Pipelines,
    Queries
  • External library files (DLLs, OCXs) referenced by
    application
  • Version file, program, and .NET assembly version
  • Post-build post deployment shell commands
  • Security embed manifest specifying execution
    level
  • Run run/debug application command line and
    arguments

13
PowerBuilder .NET Deployment
C translation
PowerScript Source
14
Windows Forms Deployment
  • Executable files and resources written to Output
    path
  • Intermediate files written to .pbt_build
    directory

15
Unsupported Features
  • Native PowerBuilder constructs unsupported in
    Windows Forms applications
  • PBNI extensions (excluding Web Services)
  • Shared objects
  • OLE automation server
  • Tracing and profiling
  • Dynamic Data Exchange (DDE)
  • Garbage collection functions
  • EAServer client support (coming in 11.2 with
    EAServer 6.1)
  • Use of .NET visual classes

16
Partially Supported Features
  • Native PowerBuilder constructs partially
    supported in Windows Forms applications
  • Rich Text and OLE DataWindow styles
  • In-process OLE controls (ActiveX)
  • Limited event support
  • Requires wrapper class generated using .NET
    utility
  • Non TrueType fonts replaced with TrueType fonts
  • Font-substitution display impact
  • Unexpected cursor display (e.g., invisible in
    EditMask control)
  • ALL visual controls are supported to varying
    degrees with exception of
  • Other event
  • IMEMode property (Japanese version only!)

17
Language Construct Caveats
  • Partially supported syntax
  • GOTO statement disallowed when target label is
    out of scope
  • Invoking an indirect ancestor event results in
    unexpected behavior

IF y 7 THEN GOTO a IF x 10 THEN y
5 a z 2 ELSE y 8 z 3 END IF
Win32
.NET
18
Language Construct Caveats
  • Questionable practices allowed in native
    PowerBuilder applications but disallowed in .NET
    deployments
  • this keyword in global functions
  • RETURN statement in FINALLY clause
  • Overloading event signatures
  • Overriding function access scope
  • Object casting outside of object hierarchy

19
Language Construct Caveats (concluded)
  • External function calls
  • Generic STRUCTURE argument type unsupported
  • Requirement to pass structure arguments by
    reference when argument is a const pointer
  • Requirement to re-initialize reference string
    arguments for each invocation

20
Distributing Windows Forms Applications
10
21
Distributing Windows Forms Applications
  • Required files
  • Runtime packager
  • Smart Client

22
Required Files
  • .NET Framework 2.0
  • Microsoft Runtime Files
  • PowerBuilder System Library for .NET
  • PowerBuilder Runtime Dynamic Link Libraries
  • Application files

23
Required Files
  • .NET Framework 2.0
  • Redistributable package (dotnetfx.exe)
  • SDK not required
  • .NET Framework 3.0 extended 2.0 with additional
    features so fulfills the requirement

24
Required Files
  • Microsoft Runtime Files
  • msvcr71.dll
  • msvcp71.dll
  • atl71.dll

25
Required Files
  • PowerBuilder System Library for .NET
  • Sybase.PowerBuilder assemblies
  • Strongly-named so installable to Global Assembly
    Cache (GAC)

using EditMasks
using RichText
using Web Services
26
Required Files
  • PowerBuilder Runtime Dynamic Link Libraries
  • Unmanaged code DLLs
  • PBDWM110.DLL DataWindow engine
  • PBSHR110.DLL Utility and memory management
    routines
  • PBXERCES110.DLL XML DataWindow import/export
  • PBxxx110.DLL Database drivers
  • Must reside on system path

27
Required Files
  • Application files
  • Application executable assembly (.exe)
  • Configuration file (.config)
  • Manifest file (.manifest)
  • DataWindow libraries (.pbd)
  • Resource files (images, INI files, etc.)
  • Referenced external libraries (DLLs, OCXs, etc.)

28
Runtime Packager
29
Runtime Packager
  • Creates MSI file containing system files relating
    to selected functionality
  • Registers self-registering DLLs
  • Sets PATH variable
  • Adds destination path to registry
  • Adds PowerBuilder System assemblies to GAC

Whats missing?
1. .NET Framework 2.0 2. Application specific
files
30
Smart Client
Publish application to a central
location Access application from that
location Application installs and runs
locally Details from John Strano on Jan. 15th!!
31
.NET Interoperability
10
32
.NET Interoperability
  • Support for invocation of .NET non-visual classes
    in PowerBuilder .NET applications
  • Windows Forms
  • Web Forms
  • .NET Assemblies
  • Web Services

String netVersion System.Reflection.Assembly
assembly assembly System.Reflection.Assembly.G
etCallingAssembly() netVersion
assembly.ImageRuntimeVersion
33
Conditional Compilation Code Blocks
  • New construct used to delineate .NET invocations
  • IF DEFINED PBDOTNET
  • IF DEFINED PBWEBFORM
  • IF DEFINED PBWINFORM
  • IF DEFINED PBWEBSERVICE
  • Code blocks can contain
  • Classic PowerScript
  • PowerScript extensions
  • Code block contents examined only at deployment
    time
  • No syntax checking when saving object
  • Non-applicable code blocks not compiled into
    target image

34
PowerScript Enhancements Supporting
Interoperability
  • Parameterized constructor syntax
  • Static method invocation
  • Bitwise operators (viz., AND, OR, NOT, XOR)
  • Non-integral array indexers (e.g.,
    populationArgentina 40500000)
  • Capability to reference .NET constructs
  • Namespaces
  • Interfaces
  • Enumerations

35
Current .NET Interoperability Restrictions
  • Only non-visual classes are supported
  • Generic and nullable types not supported
  • Method calls allowed only on classes
  • .NET types converted to equivalent PowerBuilder
    base types, for example, following code will not
    compile in PowerBuilder
  • System.Int32 x
  • x 5
  • MessageBox(Value, x.ToString())
  • Array basis is 1 in PowerBuilder, 0 in .NET
  • Limited IDE support

36
Adding .NET References
  • Add references to .NET assemblies via Target
    Properties

37
.NET Assemblies in System Tree
Enumeration
Class and methods
38
.NET Interoperability Code Snippet
if defined PBDOTNET then String
netVersion System.Reflection.Assembly
assembly assembly System.Reflection.Assembly.G
etCallingAssembly() netVersion
assembly.ImageRuntimeVersion st_netVersion.text
".NET Version " Right(netVersion,
Len(netVersion) - 1) if defined PBWEBFORM
then String browserVersion System.Web.HttpRequ
est request request System.Web.HttpContext.Cur
rent.Request browserVersion
request.Browser.Browser " "
String(request.Browser.MajorVersion) "."
String(request.Browser.MinorVersion) st_br
owserVersion.text "Client Browser "
browserVersion end if end if
39
Upcoming PowerBuilder Events
  • ISUG Leveraging PowerBuilder in the .NET World
  • Day-long, hands-on training event
  • Multiple cities in North America through December
  • Visit http//www.isug.com/pb11tour for details
  • Sybase web casts
  • Web Forms (Dec 11th)
  • Smart Client (Jan 15th)
  • Web Services Deployment (Jan 29th)
  • Web Services DataWindow (Feb 5th)
  • Visit http//response.sybase.com/forms/pbregistrat
    ion to sign-up!!

Final Week of Tour! Dec. 11 Orlando Dec. 12
DC (Dulles) Dec. 13 Atlanta
40
QA
Write a Comment
User Comments (0)
About PowerShow.com