In a previous article I wrote about the technique used by Mobile Client Software Factory to do Microsoft Test automated testing in device projects.
MSDN magazine have now published a magazine article that explores the technique for developing other kinds of assemblies. They also make the point that Compact Framework assemblies are “retargetable” (able to run on either platform ) whereas full framework assemblies are not.
This is not always ideal, as sometimes you may want to take advantage of desktop platform features.
The recommended technique involves sharing source, yet having two project files, targeting each different platform in the same project directory.
Links
Share Code: Write Code Once For Both Mobile And Desktop Apps — MSDN Magazine, July 2007

