3) To avoid ambiguity, explicitly state namespaces for controls like 'Button' and 'ListBox':
System.Windows.Forms.Button // .NET 2.0
System.Windows.Controls.Button // .NET 3.0
Or another way is:
using N2 = System.Windows.Forms;
using N3 = System.Windows.Controls;
N2.Button b2 = ...
N3.Button b3 = ...
Perhaps something like this would be clearer in code:
using Forms = System.Windows.Forms;
using Wpf = System.Windows.Controls;