Compact Framework Development Environment
Over the past year or so, I've been working on a large compact frameworks application. Working on a device application presents a different set of challenges from doing web or desktop application. Along the way I've found a number of tools/processes that really help me work as efficient as possible doing this type of development, here are some of those ideas:
- Work on an actual device, it's much faster and gives you a better feel for the application you are developing than working on an emulator.
- When developing your application it may make sense to put all your business logic AND the actual screens of your application into a different assembly than the main application. What I did that worked out really well was to create a shell or host application that acts as a switch board that launches the individual screens that contains the functionality. Then I created an additional version of this switch board that ran as a Windows Desktop application, what this allowed me to do was to do most of my development in a desktop app which is much more efficient, then once I got the functionality working, I wired that into the device host/switchboard application and tested it there.
- There is an awesome tool from Laurent Docquir that allows capturing debug messages from your device on your development PC, this is similar what you could do if you attached the VS.NET debugger although it is much faster. In addition this program allows you to launch the process you want to test as well as kill that process on the device. Another nice feature is the display of the timing in the left hand column, this works awesome for doing performance tuning of your application.
- Since it isn't much fun pulling out the stylus and entering text, clicking on the actual device, you should try to find some sort of program that will display the contents of the device on your screen that will allow you to manipulate the device, the best one I found to date is Soti's Pocket Controller Pro. This also allows you to download skins from the different devices to get realistic screen shots of your application.

- ec