I'm back in the office today after a week of traveling in the Souther California area. Last week's been a blast running to a couple of FoxPro user groups with presentations for Web Connection and CodeCamp with .NET sessions over the weekend.

 

The Fox User Group sessions were great, with solid turnout which I was a little surprised about. I don't usually like to give product demonstrations because, well, user groups are supposed to be a community forum and not a sales pulpit. But so many people have asked to actually see Web Connection 5.0 demonstrated after seeing a glimpse of this or that feature. So this time around I did a 'build a Web app from scratch' session that demonstrated some of the cool new features that bring ASP.NET style development to FoxPro applications using all Fox code. The response to these sessions was excellent with lots of great questions (which is usually a good sign of real interest) and some feedback and even some ideas for a few improvements. I'm stoked.

 

CodeCamp was this weekend in Fullerton in Orange County and it too was a blast. My Ajax session was pretty full and there too there was lots of interest and lots of great questions. To my surprise there were very few people who had done much with AJAX which worked out great because the session was geared as an overview of the technology and a few tools that you can use to apply it. There's lots of interest and as I went through some of the questions I came to realize that there's also a lot of confusion on what AJAX can and can't do. In fact, I ended up sitting in on Craig Shoemakers AJAX architecture session and he addressed a few additional issues that I hadn't thought about that are important. His session too brought out the point that there's a ton of misconception about what AJAX is really good for. I think it's important to understand that right now there are a tons of tools out there, but no really solid frameworks that can be said to be standardized to any degree. For example, I like to use Jason Diamond's MyAjax.NET/Anthem and a home grown component (wwHoverPanel) that I use for most of my work. Craig is using Ajax.NET by Michael Schwarz. There are  three or for other frameworks out there as well, all of them free and all of them with overlapping feature sets. For somebody new to the technology it's tough to choose the right tool that fits their needs especially if you're coming from a ground zero point of view, not really understanding what you might need.

 

Of course there were also lots of questions about ATLAS, but both I and Craig really didn't focus on ATLAS other than, yes it's powerful and addresses many of the 'disjointed' questions, but it still has quite a ways to go before it will become usable. The biggest issue I personally have with ATLAS is that it's not documented at all and you have to reverse engineer examples to figure out how features works, which frankly sucks. This is not a good way to present technology even in its initial stages. Nevertheless, with what I've seen and played with in the December CTP of ATLAS I think Microsoft is on the right track unlike the PDC build which really made me wonder if I was ever going to use the stuff beyond the basic Web Server interfaces.

 

Sometimes I really wonder if I should be doing sessions on bleeding edge technology . I tend to advise people to proceed with caution and take some time to understand the implications so sometimes the message comes out a little more pessimistic than it really is.

 

This is certainly true with SmartPhone applications as well. The second session I did on SmartPhone development also deals with what I think of as bleeding edge technology that isn't all hatched out yet. There was an interesting mix of attendees in that session which demonstrates the thoughts that I've had for some time: Many people are interested but most are hesitant to leap to the platform because there are still too many limitations and the hardware is just not quite there to make for the necessary application platform. The development experience too is mixed – it's way cool you can build and debug for these devices, but there are many issues with connectivity and ActiveSync and the Emulator.

 

Case in point: Before I started I set up my phone for connectivity through ActiveSync to connect both to the local machine and the Internet. Some of the samples I present use both the Web Browser and Web Services to connect to content on a Web site both local and on the Internet. I checked it all out before the session with the local internet connection in the room, but during the actual session it bonked. Same config, nothing changed but it just didn't work. Murphy loves me … it took about 5 minutes of flailing about in the ActiveSync and Phone Connection settings and shutting down of the ActiveSync application to restore the connectivity.

 

Flailing about like this is always a lot of FUN – yeah right. At least one guy in the attendance commented, how this represents real world development . I thankfully managed to get it to work as most of the demos used Internet Connectivity in some way.

 

In the end the moral of that session is: You can do it, but plan ahead for it to take a fair amount of time due to hardware weirdness and the slowness of the device/emulator and the development cycle because of it. The Code/Run/Debug/Crash cycle is at least 3-4 times slower than on a desktop. Significantly more if the app gets more complex and uses network connectivity (which is just dreadfully slow on a phone).

 

Besides that though, this session is always a lot of fun. I built a small time tracking application for a sample for this app, and as a sample at least this app is a reasonably complex app that demonstrates some of the key concepts real well. As a geek I really appreciate that you can build this kind of app for a phone, but as a professional developer or even and end user of the app I'd have to say – pass until the hardware improves.

 

 

CodeCamps are lot of fun, and I caught a number of informative sessions during the two days. Most of the conferences I go to speak, I don't have time to attend sessions because there's usually other stuff to attend to, so I'm stoked to have the time catch other people speak and do the work . It's great to see so much content presented by speakers and you can't beat the price of these free events.

 

If you haven't caught one of these events around the US and elsewhere, make it a point to visit one of them soon!