You will encounter a lot of Bugs and Limitations in .net cf. You will have to monkey patch them. its ugly but you will have no choice.
You will end up writing a lot of custom controls. As most of the controls in the framework don't support features that are commonly requested by clients. So its a good practice to create custom controls for each and every control you use from the start. Even though you might not have anything in them when you begin. You can add custom logic later on. Without having to modify a lot of existing code.
If you need validation you could use .net validation framework
- Its a good idea to sperate your code everywhere in your App. You could use the MVC pattern. And if you choose to use it you can get a head start by using MobileMVC
- If you need a rich UI tool kit you can look at Resco (google it).
- VS Designer will be your arch enemy.
This is all that i can think of right now.