Monday, May 25, 2015

"The PowerBuilder Toolkit"? Your guess is as good as mine....

Found what appears to be a training resource for PowerBuilder today.

What they show on the cover though is an image of a "Power Builder Bee * R Rev Racing Rev Limiter", a device used in high performance cars to cut the ignition during racing when the engine RPM hits the red line.

Perhaps the cover is some sort of joke.  I found a "Guide to Password Use in WebSphere Application Toolkit" on the same site that uses a cover from Doctor Who magazine as the image.

Anybody familiar with the product?

Sunday, May 24, 2015

My list of preferred new PowerBuilder features

Now that Appeon is handing development and distribution of PowerBuilder, they're requesting input from the customer base on the new features we would like to see.  If you haven't provided that input, you should do so soon at

That said, here's my list.  I didn't actually submit them all to Appeon, as I didn't think about some of them until after I did my original submission.  But this gives me a chance to explain the rationale behind why I think they're important and solicit feedback on them.

Update Current Functionality

Add the WCF client functionality in PowerBuilder.Net to PowerBuilder Classic.  The current web service client functionality in PowerBuilder Classic is based on ASP.Net Web Services, which is significantly outdated.

Add the REST client functionality in PowerBuilder.Net to PowerBuilder Classic.  While SOAP remains popular in the enterprise, there is a need for REST as well in the enterprise, and it is quite popular in the consumer space.

Update the OData version support in PowerBuilder Classic to 4.0.  The current implementation, only supports version 2.0, which is significantly out of date.  Note that because the current implementation is based on WCF Data Services, a different approach will be needed to support 4.0 and later, as Microsoft will not be supporting 4.0 and later through WCF Data Services.

Update database drivers to support the functionality in the latest versions of the databases.  When SAP released PowerBuilder 12.6, they indicated that the new features included support for Oracle 12c and MS SQL Server 2012.  Microsoft has since released MS SQL Server 2014.  In addition, the "support" for Oracle 12c did not include support for important new features in that version such as 32K VARCHAR2 columns, identity columns, implicit result sets,  row offset and row limit clauses or binding to pl/sql types and booleans.

Near Term Enhancements

Provide a native method of printing to PDF (something that doesn't require Ghostscript or FOP).  The current methods used to print to PDF require too much administrative effort during deployment.  Because of the GPL license requirements of Ghostscript, users have to download and install it themselves.  Alternatively, the XSL-FOP method requires the deployment of a JRE, and only supports a subset of the available DataWindow styles.  We need a method of printing to PDF that supports all DataWindow styles and doesn't require additional deployment steps.

Add DataWindow filtering and sorting capability similar to PowerFilter.  Excel like sorting and filtering options are pretty much standard in grid controls today, but can only be implemented in the DataWindow through that add-on product.

Add modern controls such as the Windows Style Bar available in the PowerBuilder Ultimate Suite.  The controls currently available in PowerBuilder are reminiscent of Windows 95.  We need up to date user interface controls in order to develop applications that look modern.

I'm a bit conflicted over those last 3 items.  I'd like to recommend enhancements that would compel existing customers to upgrade.  I selected those 3 because they are examples of where my own shop thought the capability was important enough that we used third-party controls to achieve them.  My rationale is that other shops are like mine and would find such capability important and would therefore find the upgrade compelling.  There are two issues with that.

1.  Other shops, like mine, may have also already obtained third party products to implement the capability.  If so, then adding that capability to PowerBuilder would not provide those shops with a compelling reason to upgrade.  That would be because there would be little reason to rewrite the app to use the native functionality rather than the third party control.

2.  Implementing such capability in the product cannibalizes what is left of the PowerBuilder third party ecosystem.

Longer Term Enhancements

Move all of the supported targets into a single, modern IDE.  One of the reasons that PowerBuilder.Net was developed was not just to introduce new .Net targets, but also to start the movement to a state-of-the-art IDE.  It was thought that instead of trying to add modern IDE features to the existing Classic IDE, the Classic targets would eventually be added to the PowerBuilder.Net IDE as well.  Doing so would leverage the work that Microsoft was doing keeping that IDE modern and allow the resources that were maintaining the Classic IDE to be redirected too other enhancements.  The PowerBuilder.Net IDE though has met with lukewarm reception, largely to issues with the WPF target that was the main target in that IDE.  There are issues with the isolated Visual Studio shell that is is based on as well.  That shell has complicated the install process (particularly if some version of Visual Studio was already on the machine) and Microsoft seems to be doing a complete rewrite of it with each new version of Visual Studio.  I would still like to have modern IDE features for PowerBuilder Classic development, but I'm thinking that using the Visual Studio isolated shell might not be the best approach.  Perhaps Eclipse should be considered instead.  I use a number of products based on that IDE (Eclipse itself for java development, Adobe Flash Builder for Flex development and Actuate BIRT Designer Pro - a BI tool) and have had no problems with install or conflicts between the products.  And Eclipse doesn't seem to require a complete rewrite of add-ins whenever they do a new major release.

Add a wizard to make non-visual .Net assemblies available to PowerBuilder Classic through COM Callable Wrappers (CCW).  The use of non-visual .Net assemblies through CCWs is is something I've been promoting since 2006.  At the NCPBUG conference earlier this month I notice that a couple of other sessions at that conference other than mine own recommended it as well.  Accessing non-visual assemblies via conditional code blocks was added to the WinForms target, PowerBuilder Classic .Net assembly target and the now-defunct WebForm target.  However, those target types have not turned out to be popular, and there are significant limitations to the conditional code block implementation (e.g., no Autoscript, a language that is neither PowerScript or C# but something in between, and scripting errors only reported during compilation).  The CCW approach makes non-visual .Net assemblies accessible to PowerBuilder Classic targets.  However, it is also currently somewhat complicated to use.  It either involves administrator rights for deployment (in order to add assemblies to the global assembly cache and registry changes) or the configuration of manifest files to allow for side-by-side deployment.  A wizard could make this excellent method of extending PowerBuilder Classic available without significant effort.

Add a wizard to make visual .Net controls available to PowerBuilder Classic.  I've been advocating this approach for enhancing PowerBuilder Classic since 2007 using the .Net Interop Forms Toolkit, which Microsoft has released as open source.  That's not the only method that can be used to accomplish this, but it's one that's fairly easy to use and readily accessible.  However, as above, deployment can be an issue.  The use of the interop forms toolkit also requires the use of a third party IDE.  In addition to addressing the deployment issues, I would anticipate that this wizard would utilize a designer within the PowerBuilder Classic IDE.

Add a C# user object painter.  Essentially doing the same thing for non-visual assemblies as the last enhancement for visual controls.  Back in the PowerBuilder 6.0 days, there was a C++ user object painter build into PowerBuilder.  I envision the C# user object painter doing much the same thing.  Allowing a developer to code some functionality directly in C#, and then compiling it as an assembly exposed via a CCW used directly in PowerBuilder Classic code.

Friday, May 22, 2015

NCPBUG User Group Conference 2015 Report

This is the second year that the North Carolina PowerBuilder User Group has held a large user conference.  I wasn't able to make the event last year, so I can't compare how well this year went compared to last year's.



I really liked Charlotte as a location for the event.  The downtown Charlotte area appears to be quite lively and relatively safe during non-conference hours.  I did notice that there were a lot of private security guard outside of office building and a noticeable police presence.  There was actually a shooting in the area on the second evening of the conference.  However, although there were a number of homeless people in downtown proper, I never felt unsafe.

We didn't have an official conference hotel, and the event was held at the University of North Carolina Charlotte City Center facilities.  I rather liked that setup as it kept me out of the hotel and the walks to and from the conference facility were pleasant.  The only downside was that there was construction taking place near the conference facility and so we were required to walk some distance out of our ways to get around it.

The one downside is that there didn't seem to be much to do sightseeing wise.  At least not compared to locations like Washington, D.C. or Los Angeles.  The biggest thing in the area is the NASCAR museum, but I'm not much of a NASCAR fan.


Registration was a breeze, which might have been influenced by the fact that I was a presenter and known to the folks hosting the conference.

General Session

Matt Balent spoke first, welcoming everyone to the conference and outlining how the conference would run.  I followed him with a demo of the new features of PowerBuilder 12.6.  That was followed by Armeen Mazda discussing new features in Appeon and Christophe Dufourmantelle discussing new features in Visual Export and Reporting Studio.  Partway through the general session we needed to relocate from the auditorium to one of the classrooms because another group had the auditorium booked at that time.  It was a bit inconvenient, because there wasn't enough seating in the classroom for all the attendees.


We had a variety of boxed lunches to choose from and could then return to a classroom or just hang out to eat them.

Technical Sessions

I had three sessions I presented in the afternoon:
  • Using .Net Non-Visual Assemblies in PowerBuilder Classic
  • Using VS.Net Visual Control in PowerBuilder Classic
  • Using PowerBuilder.Net Visual Controls in Visual Studio.Net
I did manage to get in one session by someone else though:  Zeenyx AscentialTest Demonstration by Brian Le Suer.

Sponsor Reception

Appeon hosted the attendees at the Rock Bottom Wednesday evening.  There were quite a few snacks as well as drinks, so I managed to stay until the end.



Breakfast was the typical continental breakfast setup.  Anticipating that, I stopped by a Starbucks on the walk to the facility and provided for my own.

Technical Sessions

My first session on Thursday morning was a particularly interesting one by Heino Hellmers on Reporting by using Report Definition Language (RDL) from Microsoft.  That was followed by HANA and PowerBuilder 12.6-The Solution Mix by John Strano.  Song Li was then supposed to do Tips & Tricks for Building Mobile Apps in PB but for some reason Armeen Mazda ended up doing it.  Finally for the morning there was POS Application in the Cloud with Appeon by Fili Sosa.


Once again, a boxed lunch.

Technical Sessions

My first afternoon session was Tips and Tricks and Ideas for building new GUI features in your PoweBuilder Classic Application by Franck Fasolin. Then I did my last presentation of the conference:  Using PowerBuilder Non-Visual Assemblies in Visual Studio.Net.  Finally for the morning I attended Roll Your Own JSON Parser by Matt Balent.



See my notes from Thursday

Technical Sessions

For the morning we reverted back to a general session format in the auditorium.  The first item on the agenda was the thing that was of most interest to all of the attendees:  Moving Forward with SAP PowerBuilder by Dirk Boessmann.  I've covered the information provided during that session in a blog post on SCN.  That was followed by Off the Grid: Migrating Sometimes Connected PowerBuilder Apps with Appeon by Ryan Story and The ‘M’ Word in Test Automation by Brian Le Suer.


Another boxed lunch.

Technical Sessions

We returned to classrooms in the afternoon.  I only had one more session that day:  C Sharp Integration by Kyle Griffis


Overall, the conference went very well.  Of course, the news that Dirk Boessmann brought was well received by everyone.  I was impressed that a regional user group conference was able to draw attendees from 6 of the 7 continents (nobody came from Antarctica!)

The facilities were excellent.  The audio/visual equipment was built into each room, and included a monitor that shows the presenter what the session attendees are seeing on the screen, so you don't have to turn around and look at the screen when you're doing code examples.  Every seat in the classrooms and every seat in the auditorium had a power outlet.

I've mentioned the box lunches, but that shouldn't be taken as derogatory.  I found them quite acceptable.  I'd recommend doing something different for breakfast though in future events.

I would be concerned about how much longer this particular facility would be able to handle the event.  The classrooms were pretty full (there were three tracks running simultaneously) and the auditorium was pretty full during general sessions.  As mentioned before, when we had to move to a classroom for part of the first day's general session, it got quite crowded.  We only used classrooms on one floor of the facility, and as I understand it there are 8 floors of classrooms in the 12 story building.  So it's possible they might have additional tracks in additional classrooms during technical sessions to split up the load.  I just don't know how many more people they can fit in the auditorium.  (The facility brochure says 300).

The other thing I'd like to see are more technical sessions from "end-users".  By my count, 16 of the sessions were done by vendor representatives.  Another 9 were done by somebody that promotes a code framework and many of the sessions were about that framework.  There were 17 others like mine by "pure" end users.  Of course it's better than SAP dCode (formerly TechEd) where close to 100% of the sessions are done by SAP.  It's not that vendor sessions are bad. it can just feel like marketing at times, and I find I often get more out of an 'end-user' session than I do from a vendor presentation.

ISUG Tech Conference 2015 Report

ISUG-TECH held their second annual user conference in Atlanta again.



My feelings about the location haven't changed since they held the conference here last year. See my report from last year. While I much prefer Atlanta to Las Vegas, there are still better options (e.g., Washington, D.C.). The Atlanta downtown area is rather dead at night, except for large number of somewhat aggressive homeless men who make walking to and from the hotel at night somewhat uncomfortable.  Recommendation:  Next year select a location that is a bit more friendly for after conference activities.


Registration once again went fine. I arrived rather late, so I didn't register until the morning of the first full day of the conference, which meant I was probably one of the last people to register and was the only person registering when I did.

Welcome Reception

The reception was held on Sunday night.  Because I arrived so late that night, I missed the welcome reception and can't speak to how it went this year.


Ok, first a caveat.  I'm a major food snob.  At home I'm on a six-small-meals-a-day, high protein, lean meat, no pre-processed food diet.  I don't expect to find them serving that at conferences, but I like to have options that allow me to stay as close to my diet as possible.  100% carbohydrate continental breakfasts don't cut it for me.  That doesn't mean that some of the other people at the conference, perhaps most of them, didn't enjoy it.  Perhaps they did.  I opted to pick up my breakfast from the overpriced and rather low quality coffee shop in the hotel instead.  Recommendation:  If it was up to me though, I'd suggest not serving anything and saving the expense (and lowering registration costs) rather than serving the typical breakfast that is offered at most conferences.

Opening Keynote/Plenary Session

The keynote and plenary session were done by folks from the SAP Database & Technology group and was almost exclusively about products within their group.  Because PowerBuilder is under the Mobility group, it (and the other mobility products) were not covered.  In fact, the only reference to PowerBuilder at all was a passing reference to a session being done during the conference that demonstrated how to use it to work with HANA (which does fall in the database & technology group).  Irfan Kahn did the keynote last year, and seemed to do a much better job of covering the entire gamut of SAP products.  In addition, last year there was a separate plenary session that focused on PowerBuilder.  Recommendation:  Make sure that keynote sessions and plenary sessions cover the entire SAP product line.


See my comments about being a food snob above.  With that in mind, I was actually quite happy with the lunch served this year.  Last year the food was mostly deep fried, and I ended up going off site to grab a lunch.  This year I was able to participate in the lunch without blowing my diet.

Technical Sessions

Monday afternoon I attended two sessions: Deployment and Development approaches for the ISV using PowerBuilder and SQL Anywhere by Jeff Gibson and Improving Development Practice: Test Driven Development (TDD) by Yakov Werde.  Jeff did a good job.  Yakov, who is normally one of my favorite session presenters, seems to be a bit off his feed for his session.  Of course, Yakov a bit off his feed is still as good as many presenters on their best days.

Sponsor Reception

As last year, the sponsor reception was held in the lunch room / exhibit hall.  And, once again, it seems to be mainly drinks and little food and I didn't stay long.



See notes from Monday.

Technical Sessions

Tuesday morning I did two sessions:  Using .Net Non-Visual Assemblies in PowerBuilder Classic and Using PowerBuilder Non-Visual Assemblies in Visual Studio.Net.  I also managed to slip in John Strano's session on HANA and PowerBuilder 12.6 – The Solution Mix. I found the section on OData in John's session particularly interesting, and am thinking about making OData the topic of one of my sessions next year. 


See notes from Monday.

Technical Sessions

Tuesday afternoon I start off with Datawindow Ancestor with Service Objects by Rik Brooks followed by PowerBuilder 12.6 – The Overview by John Strano.  Finally I did my own session on Using PowerBuilder.Net Visual Controls in Visual Studio.



See notes from Monday.

Technical Sessions

I started off Wednesday by doing my last session of the conference:  Using VS.Net Visual Controls in PowerBuilder Classic.  That was followed by ELMO and the Census of Agriculture by George Murnu and Resurgence of the Rich Client in conjunction with the Cloud by Jeff Gibson.  This was the first time that George had ever presented, so John, Rik and I spoke with him a bit afterwards to encourage him.  Jeff's presentations was quite interesting and engendered a lively discussion.


See notes from Monday

Technical Sessions

My last session of the conference was Swift Programming for PowerBuilder Developers - Hands-On Workshop by Dave Fish.  Except that Dave was having problems with the virtual machine that we were going to use for the workshop, so he ended up repeating his Overview presentation from earlier in the conference (which was fine by me as I had missed it).


Once again I thought the conference went well overall.  Attendance seemed to be down a bit from last year.  Once again, the event was held within a month of a regional PowerBuilder user group meeting at a location less than 150 miles away, and I believe that impacted attendance.  In particular, none of the PowerBuilder related sponsors were at the event this year.  Having to make a choice between the two events, they opted for the one that was specifically focused on PowerBuilder customers.  That user group meeting had a particular draw for PowerBuilder users this year, as the SAP executive vice-president of mobility was there on the last day of the meeting to make an announcement concerning the future of PowerBuilder.

Recommendation:  Either

1.  Change the date or location of the event (or preferably both) so that it doesn't coincide with the regional PowerBuilder user group meeting OR

2.  Work out an agreement with the regional PowerBuilder user group so that the events can be co-located and there is some registration reciprocity.  That is, people that just want to attend either event can register for just that event, but if somebody wants to attend both they could get a registration that covered both events for less than the cost of registering for each independently.

Friday, May 08, 2015

Moving Forward with SAP PowerBuilder

Dirk Boessmann, Senior Vice President for Mobile Development of SAP, spoke at the North Carolina PowerBuilder User Group Meeting on May 8th, 2015 in a talk entitled "Moving Forward with SAP PowerBuilder".  He was already in the US for the Sapphire Conference (May 5th to 7th) and actually had to miss the special event at that conference (a JLo concert) in order to make the user group meeting.


Mr. Boessmann indicated that he became responsible for PowerBuilder in the beginning of 2014.  Since his entire background was in mobility he didn't want to lecture us on what PowerBuilder needs.  He needed a discovery phase as he thought PowerBuilder was in maintenance mode.  He thought something was wrong but didn't know the product and so didn't know what.

When he did his discovery he found that SAP had tried internally to do a lot with PowerBuilder, but the things that had been attempted were inappropriate.   He found that the installed base was so large that it doesn't make sense to do a disruptive change.  He talked to Vishal Sikka and Micheal Reh (both now at Infosys) about what happened.  He concluded that PowerBuilder is a solid technology and meets SAP's current emphasis on 'run simple'.

He looked into the PowerBuilder eco-system to determine how attached people are to the product.  He found that we had a good ecosystem.  He looked into the customer base.  Customers reached out to him to let him know that they have invested heavily in it, had mission critical applications running on it and that the future of their companies were dependent on it.

He then went into a scratch your head phase to find a solution.  They needed a solution that would survive in a company like SAP that reorganizes and changes focus.  The plan required a dedicated and focused team within SAP.  It also needs a partner who has PowerBuilder at its core.  Then you talk to a lot of lawyers.

Yesterday (May 7th, 2015) the SAP board signed a memorandum of understanding with Appeon to allow Appeon to access the PowerBuilder source code and sell the product.  However, SAP will remain involved.  It will be Appeon and SAP in partnership.  The engineering groups have already started information transfer.

At that point, Mr. Boessmann invited Armeen Mazda of Appeon to join him at the podium.  Armeen noted that Sybase fumbled with its attempt to modernize it.  Appeon has a large staff of engineers available to work on the product and effectively modernize it.

There was then a Q&A session:

Q:  Who will retain IP and how long will the transfer take?
A:  It's an outbound OEM contract.  SAP retains IP, but Appeon is in control and in charge of development and distribution.

Q:  How long will it take?  We are waiting for something new.  We've been waiting 5 years.
A:  They are working in parallel: engineering work going on even while contracts are being finalized.  Contracts will take an additional few months.

Q:  Want to make sure that SAP stands behind the product.  In particular, putting it on the SAP price list.
A:  Indicates that we really don't want it on the price list because it actually hampers what Appeon can do, and would take an additional year to get the necessary clearance.

Q:  What about EAServer?
A:  They are looking to extended engineering support to 2017 and providing a migration path to something else.

Q:  What about marketing?
A:  SAP really doesn't market products; it only markets brand or value.  SAP will be in contact with customers to reassure them that they are behind the product.  Armeen suggested that we're the best marketing for the product.  The best marketing is an enthused user base.  They need to focus on getting customers excited about new features in the product and then we'll carry the message.

Q:  What about support?
A:  Still working on details, but preference would be to have Appeon handle support calls.

Q:  Wondering if Appeon and PowerBuilder would be bundled.
A:  Armeen indicated that they haven't decided quite how to handle it.

Q:  Want to make sure that new features are added into PowerBuilder itself and not require Appeon add-on.
A:  Armeen agreed that there would be a roadmap for PowerBuilder itself and the new features would be in just PowerBuilder.

Q:  Will it be called SAP PowerBuilder or Appeon PowerBuilder?
A:  Not sure yet.

Q:  Asked about capital investment.
A:  SAP will not be funding Appeon.  Appeon has a large parent company and a large customer base that can fund the product.

Comment:  Indicated that having SAP in the name is important for marketing to large companies.

Comment:  Want to make sure that PowerBuilder continues to provide a Windows desktop deployment option.

Comment:  Suggested that maintenance fees paid over the last 5 years be given to Appeon for developing that version.

Comment:  One of the issues that companies face is a lack of PowerBuilder developers.

Q:  Did SAP consider open sourcing PowerBuilder?
A:  SAP looked at it and didn't believe that it would be successful in the long run.

Q:  What might be in the next version of PowerBuilder?
A:  SAP indicated that Appeon is in the driver's seat.  SAP only consults.  That's why you don't want PowerBuilder on SAP price list and may not want name to be "SAP PowerBuilder", because that restricts the ability to discuss roadmaps.  If it isn't, Appeon can talk more openly about what they are planning to do with the product.

Q:  Who controls pricing?
A:  Not decided yet, but it could be Appeon.

Q:  What about PowerBuilder.Net?
A:  Armeen indicated that he was not convinced it has a large amount of adoption.  Want customers to indicate who needs it.  .Net has to be addressed, but it might not be through the PowerBuilder.Net IDE.

Q:  What about SQL Anywhere?
A:  SQL Anywhere is an official SAP product and they have big plans for it.

Q:  What about a PowerBuilder book?
A:  Not sure there is really a market for books anymore, more focused on blogs and online videos.

Q:  What about the PowerBuilder Developer Center in SCN?
A:  It will stay in place.

Q:  Question about whether Appeon is big enough and financially stable enough to handle it.
A: Appeon currently has 100 people.  Downsized from 200+ in 2007, and has been cash flow positive since the downsizing.

Q:  What about support plan payments?
A:  Not finalized yet.

Q:  Will Appeon and SAP be doing revenue sharing?
A:   Not finalized yet.

Armeen asked people to go to to indicate what they want to see in future versions of PowerBuilder.