After a week of coding, I now have the first signs of a bedside clock!

The first milestone of my project was to get the XBee network stack up and running where I would have a desktop computer and an embedded device talk to one another. To reduce the risk of getting both devices talking I wanted to have the exact same code run on the desktop and the embedded device.
I went about this by creating a class library project targeted at the .NET Micro Framework and another class library targeted at the full .NET Framework. The files lived in the Micro Framework library, and the full Framework library linked to the same source files (the simplest approach I found was to unload the project and manually add the Compile elements with a relative path in the Include attribute). I worked with two Studio’s open, one for the desktop, the other for the embedded device. I wrote the stack in the Micro Framework solution since it is a sub-set of the full Framework and tested and debugged in the Desktop solution. In the end, I only needed to code a few methods from the Utility class from the .NET Micro Framework in my Desktop project to have the same code in both environments.
There was one “funny” was that was really driving me crazy. If I debugged the code on the embedded device, it worked great. If I tried running the embedded device stand-alone, it would never talk over the XBee network. With much digging I found a post on the Micro Framework news group by Martin Welford offering the advice to move the serial port open call before the connecting any event handlers. If the serial port was opened after the event handlers were connected, the serial port would not fire the events. Sure enough, I moved the Open() call and it worked.
Blair.