I’ve been consulting for Windows Mobile projects for quite a few years now and know most of the techniques to optimize custom Windows Mobile software. During my ‘Platform in Your Pocket’ session for TechDays Canada, I went through some optimizations tips and tricks such as using StringBuilder as opposed to string or List<T> opposed to ArrayList things that you take for granted when developing on the desktop using the .NET Framework. On Windows Mobile it’s more important because you are ‘memory constrained’ and can’t just ‘throw more RAM or CPU’ in a device to make your application perform better.
During the session I didn’t have time to cover everything to optimize your code and a common question was ‘what else can I do to optimize my code’. Here is a page on MSDN that lists a few ways to improve the performance of you Windows Mobile app using .NET Compact Framework which should help when you are developing your software.