<p>I have a goal to build an application with UI that would run on both Windows Mobile and "normal" desktop Windows. The priority is for it to "look good" under Windows Mobile, and for desktop Windows it is OK if it distorted. Before I invest days trying, I would like to hear if that is possible to begin with. There are several parts to this question:</p>

<ol>
<li><p>Is .NET Compact Framework a subset of "normal" (please, edit) .NET Framework? If not, does MSDN have any information anywhere on classes that are in .NET Compact Framework, but not in "normal" (again, please, edit) framework?</p></li>
<li><p>Is behavior of shared classes same in both frameworks?</p></li>
<li><p>Is it possible to have a single Visual Studio 2005 solution / project for both platforms? If yes, how do to set it up?</p></li>
<li><p>Any other comments and advice? Any relevant links?</p></li>
</ol>

CF, in general contains a subset of the
classes
from the regular framework - but you can't directly execute code from one on t'other. Additionally, rather than just being a subset, there are probably a few things in compact that aren't in the regular version, such as the GUI things specific for mobile devices (soft keys, etc) - assuming you are writing a winform exe, and not a web page (which might be the simplest way to get compatibility).
With some effort, it it possible to share
logic
code, in particular utility dlls - but they need different csproj files (since they have completely different compile-time "targets"). To reduce maintenance, you can often cheat by hacking the csproj to use wildcards, like from
here
:
```
```
<ItemGroup>
  <Compile Include="..\protobuf-net\**\*.cs" />
</ItemGroup>
```
```
For UI, things get a lot tricker. In general the expectation would be to have shared business logic and separate UI for different target devices.