Smart Device Programming
Do they still call it that? It seems that “Smart” was the Microsoft word of the day for a while (smart clients, smart phones, smart devices), but I was surprised to see that I couldn't find a Smart Devices Developer Center on MSDN. Of course, there is, but its called Mobility & Embedded Application Developer Center. But that's not why I'm writing.
I'm writing because I love what they are doing with the .NET Compact Framework. It combines my 2 favorite platforms for hobby programming: handheld computers, and the .NET Framework. Before the CF, I worked with the Palm 3.0 SDK, writing C code, and manually building resource files and command-line debugging, to make simple apps for my original Palm III. Then I moved up to embedded Visual Tools 3.0 and was able to build full-fledged apps using the emulator. When I heard the vision (and played with the early releases) for the Compact Framework, I knew it was time to replace my aging Palm with a new PocketPC.
This past week, I've finally renewed development on a project I started a year ago. I've been trying to find a “killer app” for my PocketPC in the workplace (given the limitation that we are not allowed to connect to the wireless corporate network). Many people synch their Outlook calendar with their PDA. This really comes in handy on those days when you have back-to-back meetings, and don't want to return to your desk to figure out where to go next. The problem is, the calendar only tells you the name of the room you need to get to next. It doesn't tell you where that room is. In big, cube-filled buildings where every floor looks pretty much the same, its a challenge to memorize the location of all of the various meeting rooms. Fortunately, we have maps of the campus and all of the buildings on our corporate intranet. Unfortunately, those maps are delivered as CAD files, which render in your browser using an ActiveX plugin. I was hoping I could copy the CAD file to my PocketPC so that I would always have easy access to the maps. But the need for the ActiveX plugin killed that idea.
I did a little research into the file type. They are AutoDesk Drawing Web Files (.dwf), used to publish AutoCAD drawings on the web. I also found a PocketPC viewer for these files, but it costs $500. That's too much for this one use case. The real breakthrough came when I discovered the full file specifications and the WHIP Toolkit which describes how to make applications that can read/write these files. Sounds like a project!
So anyway, that's the project I started a year ago, but never completed because I ran into some big hurdles: mostly, the differences between the .NET Framework (proper) and the .NET Compact Framework. I'll describe the problems and my solution, (and my ongoing progress) in the next few posts.