Welcome!


One of the questions that I’ve been pondering lately is what will become of Windows. Based on the buzz about BYOD (bring your own device), tablets and the like, and the less-than-stellar reception of Windows 8 and Surface (Microsoft’s Windows 8 tablet), you’d think that Windows was on ...
I am here to tell you it’s true. You can write iPad applications in PowerBuilder. I’m sure that you are waiting for the other shoe to drop but ladies and gentlemen, there is no other shoe. It is simply the truth. You can write iPad applications in PowerBuilder. Those of you who have i...
Surprisingly few applications have used DataWindow gradients since they were introduced in PowerBuilder 10.5. Modern applications frequently have controls with gradients. They can give a fresh look to an old application. Where developers used solid colors to highlight columns, gradient...
Many organizations are trying to find the time to do remediation and updates with software such as Windows 7. In some cases it’s taking them 6-8 months just to complete these tasks, especially when complications like Windows 8 are added in. So the question is – are there quick tips tha...
Ultimately, CIOs decide how best to manage their IT infrastructures to guarantee a quality of service to end users while staying within the allocated budget. Using a shared services approach for APM fits best in line with these goals. This approach can provide quality of service to all...
A tester friend of mine recently came to me with a complaint that I think is fairly common in the testing community. He said, “Every time there is a new release of the software for us to test, we have to rework our testing scripts.” I’ve heard this complaint throughout my career, not o...
Have you ever used a datastore that ran without a problem while you were developing your application, but once you've compiled it stopped running? Let me tell you that's a difficult bug to fix. I remember it so well. I kept going back and forth. How in the world could the DataWindow w...
Declare local variables in the beginning (on the top) of the function, before the first executable line. This will: Make it easier to detect all the variables used in the function and to follow them Keep as little stuff as possible in executable code fragments, where programmers sho...
I recently read Berndt Hamboeck’s article, ‘NetStart’ Your PowerBuilder Application after being kindly pointed to it by Bruce Armstrong. It made perfect sense to me to be able to distribute .pbd patches to client machines by having the client-application automatically install them from...
One of the things I've been hearing (and experiencing) lately is that there are a lot of questions about how SAP IDM works. Sometimes it's a functionality question, sometimes it's an enhancement request, other times it's a bug report. Taking a look on the SAP IDM SDN forum, one can se...
To pass errors from functions outward, throw exceptions instead of returning an error code like -1. That’s implemented by filling the “Throws:” field in the function’s header (signature) with the class Exception or its descendant. When the exceptions mechanism is used, calls to functio...
A few days ago a number of tweets caught my eye. Both appeared fortuitously within a minute of each other. Separately they were powerful in their own rights but together they made me think and reaffirmed my thoughts about Mobile UX/Design and how Mobile Apps should relate to the Enterp...
Recently I was entering names of contacts in iOS and noticed that from iOS 5 onwards, Apple have allowed us to add new fields for each individual of 'Related People'. Obviously this makes sense with respects to friends or family, though currently this seems to be nothing other than a m...
There have been many articles and thoughts on the mWallet, where the mobile device takes the place of a physical wallet containing cash and bank cards and this is evolving fast. I'm wondering now, with the fantastic growth in Mobile and the combination of the Tablet Device, that we are...
I was recently asked how to calculate the ROI after implementing a Mobile App and immediately thought of the less tangible part Prosumer Satisfaction. I have mentioned in a previous article that to aid creation of Mobile Apps that the Enterprise needs, companies should be putting in pl...
The innovative use of QR Codes (Quick Response Codes - a type of matrix or two-dimensional barcode) can grow a companies social and consumer reach as well as introducing the new user to discounts, coupons, marketing campaigns through the development of companion mobile apps. These comp...
In my previous article for PowerBuilder Developer’s Journal (Vol. 18 issue 8), I gave a sneak preview of some of the things we were working on for PB15 Classic. This is a closer look at one of them – Tabs and Docking in MDI Windows. Recall that in the article we mentioned adding two n...
This two-part series examines and contrasts PowerBuilder .NET 12.5.1’s new dynamic assembly feature with corresponding dynamic library functionality in PowerBuilder Classic. The discourse is presented in the context of a simplified yet practical use case. Part 1 presented the use case,...
I have talked a lot about the need to Mobilize Existing Business Systems and Processes in an innovative and strategic way and at the heart of this for Mobile App development is the Mobile Enterprise Application Platform or MEAP. This is important because mobile technology is evolving s...
The articles in this two-part series examine and contrast PowerBuilder .NET 12.5.1’s new dynamic assembly feature with corresponding dynamic library functionality in PowerBuilder Classic. The discourse is presented in the context of a simplified yet practical use case. The first articl...
Paul Harvey, the great American radio personality, would always conclude his colorful broadcasts with the quip “And now you know the rest of the story.” For those of you not acquainted with Paul’s broadcasts, here’s a sample. If you get to about 3:40 in, you’ll hear the classic remark....
As we all know, the DataWindow is a very powerful and flexible control used for data presentation and manipulation. For the most part, the features that you get out of the box allow you to create some very impressive applications. With that said, there is always room for improvement. F...
Yesterday I taught an intro to PowerBuilder .NET 12.5 session. Part of the presentation had me comparing the.NET IL code inside an assemblies generated from code written in C# and PowerBuilder. The C# code, after performing a simple arithmetic calculation echoed results to the cons...
Your application has a window containing custom visual user objects (CVUOs) that require system services in their constructor events. Obviously, the services must be resident and active before the CVUO constructor is invoked. Using globals (functions, or NVO references) is one approach...
With all the attention in PB12 focused on .NET and WPF, some of you may be wondering about the future of Win32 targets in what is now being called PB Classic. Those hoping to still continue to work with Win32 targets in PB Classic can rest assured, PB Classic is not going away and we a...
This week PBDJ will publish part one of a series of articles I am writing called “PowerBuilder .NET RESTful Web Services: A quick-start how-to guide”. I’m also producing an accompanying video demo series. To get the buzz going here's a release candidate for the complete video that w...
Not sure when this sneaked in... I was working on some new DataWindow object courseware with version 12.1 last week when I stumbled onto this little change. For those of you with a penchant for using the Messagebox function for debugging, you might find this interesting Used to be...
If you’re familiar with the Database Binary / Text Large Object column type in PowerBuilder Classic (see Figure 1), you know it’s a way of storing blob data associated with an OLE Automation application (Paint, Microsoft Word, Microsoft Excel) and then displaying it as part of a DataWi...
Application partitioning is a hot topic lately. If you’ve been following my articles in this publication and in ISUG Journal, you are no doubt beginning to get the picture of what application partitioning is all about. You now know that an application has three logical layers: user int...
I’ve written a number of articles in the past on using .NET components, both visual and non-visual, from a PowerBuilder “Classic” (i.e., Win32) application. Until now, all of them involved using a .NET component that was either provided in the .NET Framework or created using Visual Stu...
Part of the allure of the .NET platform is that all code, no matter what language or grammar it’s written in, compiles down to Common Intermediate Language (CIL) that is managed and executed by the Common Language Runtime (CLR). PowerScript code goes through a two-step process before b...
This article will focus on the upgrade process from AllFusion Harvest Change Manager R7.1 to CA Software Change Manager (SCM) R12.0.2. I am writing this article because I recently went through this process and felt it would be beneficial to share this experience with other users in the...
I taught a full day .NET seminar to an ISUG group in Minneapolis today. 19 developers attended. During the migration unit I demo'd and showed how mapped custom events, not on the control supported list, are migrated BUT, during compile, do not generate a warning. Even worse at runtime ...
XAML data binding is a codeless (declarative) way of transferring information from one object to another. It’s very helpful in a UI where data originating in one object controls a characteristic of (or is the source of data displayed in) another object. Data binding’s main benefit is t...
This article will focus on the PowerBuilder Build Process using E. Crane Computing product PowerGen with CA Software Change Manager (SCM) R12.0.2. I am writing this article because we recently upgraded to SCM R12 and it was a good time to visit our PowerBuilder build process and see wh...
In PowerBuilder, an event is used as a place to put code in reaction to something. The .NET world uses events differently and, in my opinion, more appropriately. In .NET, an event is just notification that something happened. This lets other objects react to changes while PowerBuilder’...
How I discovered that migrating to .NET is strikingly similar to n-tiered and web migration. started yesterday when I was researching and writing content for a PB .NET migration article while in the county courthouse jury room (yes there was wireless access) waiting to be called to s...
How to realize the full worth of PowerBuilder to .NET migration. GIGO (garbage in, garbage out) "A fundamental goal of legacy Information System migration is that the new system not become a legacy system itself" These insightful words were written seventeen years ago by Michael L. ...
Illustrates a time and effort saving technique when migrating Classic apps the reference external custom DLLs. One difference when migrating Classic Apps between the WinForm/WebForm and WPF is how you need to handle listing referenced DLLs during the migration process. In .NET the de...
I'll show you how to control the contents of the unsupported features list in the OutPut window of the Visual Studio IDE. I recently migrated a Classic MDI application to .NET. One of the nice features that helped me prepare my code for .NET deployment is the Unsupported Feature list...