Tuesday, December 23, 2014

Haiti Missions Trip 2014

Monday, December 15th

Arrived in Haiti at 9 AM after 9 hours of flying (including layover).  Went directly to the compound at Blanchard and rested for a bit.  One of the first thing I notice is that they've sealed the windows in the guest rooms with plastic and have installed mini-split (ductless) air conditioners.

Tuesday, December 02, 2014

The results from the 2014 PowerBuilder Survey are available

2014 Survey Results

Some of my own observations:

The adoption rate for PowerBuilder 12 seems to have been more rapid than for previous versions of PowerBuilder (at least 9 and later).

And it kills me that 6 of the 8 most desired new features for the PowerBuilder Classic IDE were provided in the PowerBuilder.Net IDE.  I think most PB developers don't know what they're missing out on.

There are also a lot of comments included at the end of the survey.  I haven't gone through them all yet myself.

Wednesday, November 19, 2014

PowerBuilder product manager leaves SAP

Sue Dunnell, a Director of Product Management for SAP (primarily for PowerBuilder), has left to join Infosys.   Sue originally worked in as a Technical Support engineer with Sybase.  After four years, she took over as Director of Product Management in 2000.  She continued with in that role with SAP when SAP acquired Sybase.  Sue was primarily known for her work shepherding the PowerBuilder product line.  At this time, a replacement has not been named.  

Monday, November 17, 2014

Highlights from VSCONNECT - Day Two

One other announcements from Day One that got overshadowed by some of the major announcements.

Visual Studio 2015 Preview is available, which includes:
  •    a preview of .Net 2015
  •    a preview of ASP.Net 5
  •    an Android emulator for Visual Studio.
A pretty good summary of the preview is available here.

This slide was shown in a discussion of ASP.Net 5, but it's applicable to the broader .Net development environment.  The middle column represents the layers.  The left column represents .Net development prior to the VSCONNECT announcements.  The right column represents .Net development after the VSCONNECT announcements.

Note that platform specific sections of .Net are not being open sources (i.e., WPF).

Here's another important diagram from the announcements.

Which is a lot more comforting to .Net developers than their last rather famous diagram from Build in 2011.

There's some pretty good analysis of the announcements on iProgrammer here and here.

Wednesday, November 12, 2014

Highlights from VSCONNECT - Day One

While most people were watching a EAS land a probe on a comet, I was watching the first day of VSCONNECT.   It was a bit of information overload, but here's the main things I got:

  • Future versions of the .Net Framework will be named based on the year they are released.  For example, the next version will be called .Net 2015.
  • The source code for the .Net Framework will be open sourced.  The core portions of it are already available on Microsoft's GitHub server.
  • The core .Net Framework has been ported to Linux and OSX.
  • A new edition of VS.Net, called the community edition is now available free of charge to individual developers and small development groups.  It is not an express version of VS, but a full featured version that can be used for production development   Licensing is only required for "enterprise use".

More details on the announcements in day one can be found here and here.  Recordings of the webcast can be found here.

During the "halftime show" there were a lot of questions about the future of WPF.  That has been responded to in a blog post here.

Wednesday, September 10, 2014

Deploying PowerBuilder apps to desktops and mobile devices using Microsoft RemoteApp

Microsoft has recently announced a new feature of Windows Azure called RemoteApp that allows Windows applications to be hosted on Azure and then run via RDP on the desktop as well as mobile devices, including iOS and Android devices.  We're going to look to see how well that works for a PowerBuilder application.

Friday, July 18, 2014

Creating a REST web service using PowerBuilder.Net 12.5

One of the new features introduced with PowerBuilder.Net 12.5 was the ability to create WCF web services.  The version of the product also introduced a client for REST web services as well, and a WCF client had been introduce in an earlier version.  One frequent question I heard when presenting the new features in conference or online sessions was when PowerBuilder.Net would provide the capability to create REST services, not just consume them.

Perhaps what few people realized (including myself at the time) is that WCF web services isn't just for creating SOAP services.  Since .Net 3.0, they have been capable of creating REST services as well.  So we've actually have had the capability to create REST web services with PowerBuilder.Net since 12.5 was released.  In this blog post we'll look at how we do that.

Calling .Net Assemblies from PowerBuilder Classic Win32 via PowerShell

Recently someone asked me how they could get the output from PBDOM used from a PowerBuilder Classic Win32 application formatted with white space as PBDOM doesn't include it.  I gave them a number of options, particularlyMSXML through OLE Automation or using a .Net class like XmlTextWriter.  Normally if you were going to try to access a .Net assembly from a PowerBuilder Classic Win32 application, you would do it via a COM Callable Wrapper.  However, for something this simple I thought there had to be a more lightweight way to accomplish it.  One particular lighterweight way that occurred to be would be to have the application launch a Windows PowerShell script that would then use the .Net class in question.  We're going to look at an example of how that's done.

Thursday, May 15, 2014

Swiss PowerBuilder User Group Meeting - May 5, 2014

The meeting was held as SAP's offices in Regensdorf, a suburb of Zurich.

The meeting started with Sue Dunnell and Dave Fish discussing the status of PowerBuilder, and in particular the beta.

  • 235 people signed up for beta.  Small for PB, but big for SAP
  • Other products are looking to follow same process, also complaining about S-user requirement

After that, Dave Fish demonstrated the following features in the beta version of PowerBuilder 15
  • OData
  • 64 bit support (Native)
  • Dockable Windows
  • HTML5 DataWindow
That was followed by my presentation on using visual controls (PB.Net in VS.Net, VS.Net in PB Classic).  We then broke for lunch.  After lunch, Jan Lemmens of SAP then gave an overview of application development with HANA.  After that, Dave Fish presenting SAPUI5 and OpenUI5.  Finally, Dave Fish demonstrated Android support in Appeon.

Thursday, May 01, 2014

Communication with a smart card from PowerBuilder

We're going to look at using the Smart Card SDK provided in more recent versions of Windows (XP and later).  Earlier versions of Windows had an ActiveX installed called CAPICOM which could be accessed from PowerBuilder through OLE Automation, but that control was removed as of Windows Vista because of security issues.

We're going to look at a number of operations:

A collection of PowerBuilder resources

  • All of my PowerBuilder samples, including the source code for the demos I've done at various conferences are available in the PowerBuilder Samples folder on my Google Drive: http://goo.gl/VXouQ
  • The PowerBuilder Developer's Journal may have gone away, but I'm going a free "magazine" on FlipBoard. It's basically just collection of articles from all over the internet on PowerBuilder: http://goo.gl/Mrd3Ql
  • I've done a number of videos for the SAP Database and Technology Academy. The PowerBuilder related videos, including mine, are available at: http://goo.gl/53pe7a 
  • I've done a number of webinars for PowerBuilder.TV. The archives of the webinars related to PowerBuilder, including mine, are available at: http://goo.gl/IUHN1N
  • Also, don't forget the PowerBuilder Developer Center, where a bunch of us hang out to answer questions, write blogs and documents: http://goo.gl/DtaS58 
  • You might also want to check out the PowerBuilder Central site. It's an attempt to collect references to different resources like this and make the available in a central location: http://goo.gl/WVyNo7 
  • If you're looking for PowerBuilder training, be sure to check out Yakov Werde's training offerings (as well as his consulting services) at: elearnitonline.com

Monday, April 21, 2014

ISUG Tech Conference 2014 Report



It's good not to be in Las Vegas.  The location in Atlanta is rather convenient.  You can take a MARTA train straight from the airport to a shopping mall close to the hotel and then take a covered walkway from the mall to the hotel.  The one issue though is that things are not well marked.  It seems that the people responsible for signage may be looking at it from the perspective of people that already know the area. I found it quite hard to find my way around when I first arrived.

Saturday, April 12, 2014

How to use .Net visual controls in PowerBuilder Classic

Using non-visual .Net classes in PowerBuilder Classic is somewhat straightforward.  Provided the assembly (and the classes and methods within it) have been marked as COM Visible, you can run REGASM on them to create OLE registry entries and then use the class through OLE Automation.  I have a video on the SAP D&T Academy that demonstrates the process.

Wednesday, April 02, 2014

If you think folks that have PowerBuilder apps have trouble finding developers...

Imagine what it's like for people still running VB6 apps.  A couple of things actually make it worse for them:

1.  VB6 is no longer available for retail purchase.  The only way to get access to it now is with a MSDN subscription.  That doesn't exactly make it attractive to new developers.

2.  VB6 was never updated for compliance with operating systems later than XP.  As XP is being desupported, it becomes increasingly difficult to support VB6 apps on more recent operating systems.

For more info, see:  VB6: The Looming Crisis

I also found this interesting.  There was a time even when PowerBuilder was at it's peak when the number of VB6 job offerings dwarfed the PowerBuilder offerings.  Here's some more recent data.

And then there's this.  A company that offers training in "legacy technologies" (including PowerBuilder) so that developers who are having trouble finding a job or are not getting paid what they want can find jobs easier and for higher pay.

Thursday, March 27, 2014

Replay of Dave Fish's Webcast: Preview of ISUG-TECH Conference 2014

In this webcast, Dave Fish previews the general developer sessions that he will be presenting and discussing the PowerBuilder specific sessions and post-conference workshop offered as well.

PowerBuilder 15 Beta Test Initiative

There are a few open seats for the PowerBuilder 15 Beta Test Initiative in Walldorf. Please read the details below. If interested please send an email to BIT_Partner_Test_25@sap.com
(Please note that all travel expenses are the responsibility of the participant)
SAP BIT Partner Beta Test Initiative
PowerBuilder 15 (Walldorf) Scope:
SAP PowerBuilder is the leading 4GL client/server development tool in the market today. The next release introduces several new features including:
  • Updated support for the .NET Framework v4.5
  • Microsoft SQL Server 2012
  • Oracle 12
  • Windows 8
  • OData Support
  • Dockable Windows
  • 32 and 64 bit deployment

This partner test focuses on testing and evaluating these new features. Partners will work hands-on with the latest preview version of SAP PowerBuilder 15
Test Timeframe: May 7th , 2014 – May 8th, 2014 (2 days)
Location: SAP Campus, Walldorf, Germany
Tester Profile
  • PowerBuilder Development Experience 
  • Knowledge of PowerBuilder Classic

  • Experience with .NET application development, including PowerBuilder .NET 
  • Experience using OData. 
  • Experience creating and consuming web services

Tuesday, March 25, 2014

IDC weighs in on the status of HTML5

The original report is here.  In case you don't have $4000 to buy the report ( I don't! ), you can get a synopsis of what it says at one of the following:

And more on the report:

Thursday, February 20, 2014

SAP Mentor Monday - March 3rd, 2014

Please join us for our first series of SAP Mentor Monday webinars with the SAP Startup Focus program on March 3rd 2014.

Wednesday, February 19, 2014

Your Favorite PowerBuilder.TV Presenters Live!

SAP will be showing the latest PowerBuilder roadmap and will answer questions on current and future plans for the product at both Charlotte and Atlanta. Also, get a look at PowerBuilder 15! 

Charlotte PowerBuilder Conference  March 5-7, Charlotte, North Carolina
See live presentations and ask questions to some of your favourite PBTV presenters, including:
  • Dave Fish
  • Matt Balent
  • Chris Pollach
  • Yakov Werde
  • Armeen Mazda
  • Christophe Dufourmantelle
  • Gian Luca DeBonis
The CPBC brings together many of the top application and database developers from the PowerBuilder world to Charlotte for a three day 100% PowerBuilder event to spur innovation, share insight, and foster collaboration. 
ISUG-TECH 2014 Conference April 14-17, Atlanta, Georgia
This conference covers a variety of SAP database, mobile and application products. It includes a number of PowerBuilderTV favorites and others presenting on topics of interest to PowerBuilder developers, including:
  • Ronnie Po
  • Armeen Mazda
  • Filiberto Sosa
  • Bruce Armstrong
  • Yakov Werde
  • Dave Fish
  • Brian Le Suer
Early bird registration ends February 28!

Monday, February 17, 2014

PowerBuilder.TV sessions for late Feb / March

Stored Procedure DataWindow Objects in PB 12.5 Classic and .NET: Basics and Tips & Tricks - Yakov Werde
In conjunction with eLearnIT's upcoming North Carolina PowerBuilder User Group -  Conference training sessions.  In this special PowerBuilder TV edition , SAP Mentor Yakov Werde will deliver a live instructor led unit from his Advanced PowerBuilder for Professionals Part 1 course.  The topic will be Stored Procedure DataWindow Objects in PowerBuilder 12.5 Classic and .NET: Basics and Tips & Tricks. As a bonus Yakov will take you on an Appeon for PowerBuilder migration ride and show you stored procedure DataWindows at work in both web and mobile environments

Manage the evolution of your PowerBuilder applications - Christophe Dufourmantelle
Learn how to share the knowledge of your PowerBuilder application among the team and to help maintain it as your team evolves. See how to manage unexpected side effects during modifications to your application. In this presentation, Christophe Dufourmantelle will demonstrate how Visual Expert lets you:
Explore and understand relationships within complex code
Automate an impact analysis to avoid the side effects of modifications
For those of you already familiar with Visual Expert, tune in to see how Visual Expert 7 improves the sharing experience, manages even larger sets of code and better automates your analyses. See how several developers can now simultaneously use the same VE project and share the results of an impact analysis.

Appeon for PowerBuilder: Resizing UI for Mobility - Yakov Werde
The PowerBuilder platform is notoriously deficient at automatic or declarative UI resizing. In this presentation, SAP Mentor Yakov Werde will explain and demonstrate 3 techniques you can apply to your Appeon Mobile applications to achieve consistent UI resizing across a range of mobile device displays.

Monday, February 03, 2014

Just more of my HTML5 bashing....

HTML5 apps still not as good as native apps:


Wednesday, January 29, 2014

Insufficient Storage Available errors on Android

Mostly just a note to self.  Apparently since the 4.2 update, you can get "Insufficient Storage Available" errors when updating apps on Android when there is plenty of free space available.  The solution is to enter "*#9900#" on the phone keypad and then select "Delete dumpstate/logcat".  For further info, see this thread:


Tuesday, January 21, 2014

FAQ: How can I send SMTP from PowerBuilder

PowerBuilder's only native method of sending email is through Simple MAPI, which is very limited.  In particular, the approach was hampered quite a bit when Microsoft introduced security enhancements which resulted in security warnings being generated anytime Simple MAPI was used.

The most popular approach for addressing this has been to use SMTP to send email instead.  There are quite a number of third party tools that can be used to accomplish this:

  • Topwiz Software's EmailSMTP is a PowerBuilder non-visual user object that uses Windows API calls to send SMTP.

  • This blog post explains how to create a .Net assembly that can then be wrapped via a COM Callable Wrapper and called from Classic PowerBuilder.  The blog article uses Visual Studio and C# to create the assembly, but the assembly could also be created using PowerBuilder.Net.  The STMPClient.zip file in these PowerBuilder Samples on Google Drive is an example of doing just that.

  • Many databases have build in features for sending email such as SQL Anywhere's xp_startsmtp / xp_sendmail, Oracle's UTL_SMTP or UTL_MAIL, Microsoft SQL Server's Database Mail, etc.  Therefore, it is quite feasible to create a stored procedure in the database that handles email transmission and simply have the PowerBuilder client invoke that.

So, where do we go from here (e.g. WebForms)?

As you're probably already well aware, the .Net WebForms target was removed from PowerBuilder beginning with the 12.5.2 maintenance release.  The reason it was removed was because of a third party control that was implemented in the later versions of it (11.5.x, 12.x, and 12.5.x) which SAP is no longer authorized to distribute.  As a result, they had to pull it from the product as well as remove any EBFs or maintenance releases that contained it.

FAQ: What are my source control options for PowerBuilder

Source code control is used for one or more reasons:

     1.  To provide for a single common location with a master set of the source code being developed.
     2.  To provide checkin/checkout capability to ensure that two developers do not attempt to make incompatible code changes at the same time
     3.  To provide a history of source code changes.  This helps for instance by allowing changes that were done in error to be more easily reverted.

Prior to PowerBuilder 6, the source control options available from within PowerBuilder were limited.  This was primarily because a custom driver had to be created that enabled PowerBuilder to talk to the target source control system. Everything changed with PowerBuilder 6, when PowerBuilder implemented a standard API based upon the Microsoft Source Code Control Interface (MSSCCI).  In PowerBuilder 8, a PBNative option was added to provide an out-of-the-box source control option.  However, PBNative provides "minimal" source code versioning capability.

Note that no matter what source control option you use, you should - at least within PowerBuilder Classic - use the source control menu options provided within the PowerBuilder IDE.  That is because the PowerBuilder Classic IDE does not store individual source code files at the operating system level, but instead stores them in PowerBuilder libraries (PBLs).  Attempting to add the PBLs to a source control system has significant limitations, including restricting checkin/checkout capability to a PBL (preventing other developers from working with any objects in the library that you aren't working with) and dramatically limiting the ability to do version comparisons between edits.  The PowerBuilder.Net IDE does store individual source code files at the operating system level, and as a result your source code control options are much more open and beyond the scope of this article.

Source code options for PowerBuilder Classic fall in three general categories:

1.  Using PBNative:  This is the out of the box solution.  Note however that while it does provide for checkin/checkout capability to prevent more than one developer from editing the same source code at the same time, the approach provides little support for code versioning,

2.  Using a source control system that supports MSSCCI.  Once the client for such a system is installed on the workstation that PowerBuilder is installed on, the vendor should appear in the drop down within the PowerBuilder IDE for available source control systems.  There are a number of such systems available.  Two of interest because they are specifically designed for use with PowerBuilder are WizSource and PowerVSC.  Historically (even prior to PowerBuilder 7) vendors such as PVCS and ClearCase were very popular.  Other systems that support MSSCCI include Team Foundation ServerPlastic SCMSurround SCM, and SourceAnywhere,

3.  Use a non MSSCCI source control system for which there is a MSSCCI bridge product available.  A number of newer source control systems that do not support MSSCCI have become very popular lately.  Historically, CVS was a popular option, and more recently SVNGit and Mercurial have become very popular.  Such products can be used for source control from PowerBuilder provided there is an add-on utility that will convert the MSSCCI calls that the PowerBuilder IDE makes into the calls that the target source control system does understand.  Some available 'bridge' products include:

Git:    PushOK Git

Mercurial:  Currently the only know MSSCCI products for Mercurial are Visual Studio plugins that will not work with PowerBuilder.

FAQ: How do I learn more about using PowerBuilder?

  • The PowerBuilder Development Center,   Thediscussions blogs, and documents like this one are one way to learn more about using PowerBuilder.  There are a number of other options as well:
  • ELearnIT offers online video series with workshops.  More personalized training is also available through GoToMeeting or onsite training. 
  • PowerBuilder.TV offers a number of PowerBuilder related webinars monthly and has an archive of previous webinars. 
  • SAP has a Database and Tools Academy on Youtube with a number of videos on using PowerBuilder. 
  • For 20 years, the PowerBuilder Developer's Journal printed a monthly magazine with articles about PowerBuilder and related technologies.  The magazine ceased publication in early 2013, but archives of many of it's articles are available online. 
  • ISUG-TECH is the international SAP user group that focuses on technical users.  They offer a monthly magazine that includes PowerBuilder, a special interest group forum for PowerBuilder, a discount on ELearnIT training reference above as well as local user group meetings and conferences.