Saturday, September 17, 2011

TechWave 2011 - Some final notes

All in all, I was quite pleased with TechWave this year. Still, there's always room for improvement, so here's my suggestions:



  • Location, location, location - As is probably well known by now, I hate Las Vegas as a conference location. Perhaps it's not far enough away from Los Angeles for me. SAP seems to hold TechEd events in 4 general locations: Europe (Madrid in 2011, Berlin in 2010, Vienna in 2009), India (Bangalore for the last 3 years), China (Beijing in 2011, Shanghai in 2010 and 2009) and the United States (Las Vegas in 2011 and 2010 and Phoenix in 2009). Perhaps a different location here in the US? Although I wouldn't mind a co-location in one of the other sites as well...

  • Power - Not so much of an issue for me, because I generally used by iPad throughout the conference, but people with laptop were really struggling to find power at this conference. In some cases although there were outlets in the conference rooms, the power was cut off to them. That's a far cry from what I saw at an Adobe Max event a few years ago. They had "recharging stations" throughout the conference center where people could recharge their laptops. I'd recommend doing that, and perhaps even providing charging strips inside of the conference center rooms as well.



Hosted on Fotki




  • Internet Access - They did a good job of providing high speed internet access (for free) to people staying in the hotel as well as providing wireless access to conference attendees in the conference areas. In the latter case, access to some sites that might involve large downloads (apple itunes, netflix, etc.) were blocked, which I can understand. I'm more concerned about internet access for presenters. I presented in two different rooms, and one had hard wired access and one didn't. I ended up not doing 3 of my 4 demos for my .Net assemblies session because I didn't have hard wired access. I didn't want to bother with trying to get connected to the wireless access only to discover that the sites I was trying to access for the demo were blocked. Jim O'Neil's demo for one of his sessions almost didn't happen because he was connected to the wireless access point and was attempting to access Netflix for his demo. I'd recommend providing wired internet access for presenters in all conference rooms with little or no restrictions on which sites can be accessed.

  • Scheduling - The sessions were scheduled pretty much back to back. All the sessions were in the same block of rooms, so getting from one session to another was not so much of an issue. I'm thinking more of presenters again. Back to back sessions doesn't allow the next presenter much time to get set up once the previous presenter has finished. If I'd had a bit more set up time for my assemblies session, I might have gone ahead and tried the wireless access and determined whether or not my demos were going to work with the filtering on that network. But given that I was setting up at the time the session was supposed to start didn't give me any time to experiment. Some sessions had 30 minute breaks after them. Perhaps we could have 15 minute breaks between all sessions instead?


During the enhancements session one person asked if PowerBuilder could have an image control that would load directly off a URL.  I'd actually demoed that in my web services session, because my REST service client demo accesses pictures in Flickr.  However, the person was asking for that capability in PowerBuilder classic and my sample was for PowerBuilder.Net (using the WPF Image and BitmapImage classes).  Hopefully they're reading this, because I threw together an Interop Forms Toolkit wrapper around the .Net PictureBox control which does just that and can be used from PowerBuilder Classic.  I've put the sample on  Google Docs:

BitmapFromURLControl.zip

Also, if you attended any of my sessions and were looking for the code for my samples, I've placed that on Google Docs as well.  In fact, even if you didn't attend my sessions, you're welcome to it.

SMTPClient is a PowerBuilder.Net solution with one target. The .Net Assembly target that can then be used by PowerBuilder Classic to send email through SMTP.

ClassicSMTPClient is a PowerBuilder classic workspace with one target, which shows how to use the assembly generated above.

WPFDataWindow is a PowerBuilder.Net solution with two targets. One demonstrates the use of the new table blob column type. The other demostrates adding third-party WPF controls to a WPF DataWindow. There are a couple of SQL scripts that need to be run to create a table and view that the samples use in the demo database that comes with PowerBuilder. There is also a PowerBuilder Classic workspace with a target in it that is used to load images into the sample database for display by the table blob column.

WPFControls is a PowerBuilder.Net solution with two targets. The first demonstrates the use of the Avalon Dock (open source) docking manager. The second demonstrates the use of the OdysseyRibbon (open source) ribbon control.

WCFSamples is a PowerBuilder.Net solution with four targets. The first target is a sample of calling the Amazon Web Service using the WCF client. The second uses that same WCF client, but wraps it as a .Net assembly that can be used from PowerBuilder Classic. The third is a sample of calling the Flickr REST web service. The fourth is an example of creating a WCF self hosted web service. There is a fifth target that was only used for debugging. There is also a PowerBuilder Classic workspace with a single target that shows how to use the assembly generated in the second .Net target. You will need to get your own Amazon Web Services and Flickr developer accounts and enter the key values in the sample code before those samples will work.

webservices.zip contains several different versions (all PowerBuilder Classic) of the dw2struct utility. The utility reads a DataWindows and generates the syntax for a structure that maps to the result set of the DataWindow.

assemblies.zip is PowerBuilder Classic workspace with three targets. The first target is a WinForm application that uses the System.Net.Mail.SmtpClient class in the .Net framework to send email via SMTP. The second is a sample of using the .Net assembly generated by the PowerBuilder.Net SMTPClient sample. The last workspace is a sample of using the .Net interop forms toolkit to expose a visual .net control in a PowerBuilder classic application. There is also a VS 2008 solution that implements the .Net Interop Forms Toolkit. The sample is based on the Pure Components Ribbon Toolbar, which is commercial, but there is a evaluation available for download that you can use to run the sample.

 

2 comments:

Rick Donagrandi said...

Hey, Bruce! I was the one looking for the image from URL... So, yes, I read your post. We're using PB 11.2 in production, so I'm downloading your sample projects and will test them out, but not sure they'll work in our production environment. But thanks, anyway! I have an SMTP .net dll project in VS Express 10 that I use in PB 11.2 plus if you're interested. This is a project that I built beginning with your code from your PBDJ article, and had to make numerous changes to so that it was visible from PB 11.2. (adding GUIDs to the class methods, adding an interface, etc.) Of course, now that you're using PB 12.net, you don't really need VS anymore. ;>

brucearmstrong said...

The sample puts an ActiveX warpper around the .Net control. It should work for any version of Classic. It requires VS though because it used the Interop Forms Toolkit add-in for Visual Studio. You only need that to create the wrapper though.

You shouldn't have needed to add anything to the SMTP sample for PB11 to see it. That's all handled automatically if the assembly is marked COM visible and you use REGASM to geneerate the COM registry entries.