If you are too used to programming in Linux and want to move to programming for Windows mobile. It can be a bit hard. It was difficult for someone I know to digest that the SDK requires that you have Visual Studio installed (the full version not the express edition). So, here are a few directions for those who wish to venture into windows mobile programming.
You will need to install .Net Compact Framework 2.0 and 3.5. You can install just 3.5 but it’s better to have both. You will need to install Visual Studio. The latest version of Visual Studio is 2008. WHen you have both of them installed, you can install the WIndows mobile 6 SDk refresh and Windows mobile 5 SDK refresh. And viola ! you can now start programming for windows mobile devices. From what I understand, you can’t program for Windows Mobile outside of Visual Studio. Well there is nothing stopping you from just opening notepad and coding but you have to have Visual Studio installed (along with the other things I mentioned).
As you might already know, there are 2 modes of programming in .NET – managed and unmanaged. Any programs written in C# or Visual Basic are managed; and, anything written in C++ is unmanaged. What does that mean? It means memory is managed for you behind the scenes in C# and Visual Basic. However, you have to do your own memory management (free up memory space, etc). Each of them have their own pros and cons.
Now open Visual Studio and click on new project. Select Smart Device -> Smart Device Project. A new project will be created for you with a default form in design view. On the left you will find a toolbox, which has widgets (controls) for your UI. On the right, you will see a properties section where you can set properties, event handlers, etc for your controls. This should at least help you get started with the setup part of it.