Is .NET Compact a perfect subset of .NET?
Can I write a Windows Forms application and run it on .NET Compact, assuming that I took into account screen size and other limitations and avoid classes and methods not supported by .NET Compact or is .NET Compact a different and incompatible GUI framework?
Yes, for the most part, (especially in regards to Windows Forms) .NET CF is a subset of the standard .NET Framework.
This is the main tricky portion. .NET CF doesn’t support quite a bit of things in the framework.
There are a couple of obscure classes in the framework only supported on CF, such as the IrDA classes in networking, but otherwise, everything in .NET CF is supported in the standard distribution.
For details, see “Differences with the .NET Framework” on MSDN.