Per chi ha da sempre programmato utilizzando WindowsForm le novità introdotte con l'avvento di WPF sono veramente tante.
Mi sono accorto però, supportando alcuni team nell'approccio a WPF, che il primo vero scoglio/novità che si incontra "migrando" verso questa nuova tecnologia è la filosofia su cui si basa il sitema di layout.
L'utilizzo (corretto) di WPF "spinge" verso la definizione di un layout fluido, combinando i vari container a disposizione, e non più posizionale. Viene enfatizzato il concetto di creazione di un layout più flessibile che possa adattarsi correttamente al ridimensionamento delle window e al cambiamento dei dati contenuti/presentati.
Non che con WinForm questo non fosse possibile (TableLoyoutPanel e FlowLayoutPanel docet), ma con WPF questo modo di "fare layout" è lo standard de-facto (a meno di particolari esigenze, come per esempio la fase di "drawing").
Non credo di esagerare dicendo che WPF sovverte completamente il modello di layouting del .Net fx 2.0, rendendo il "flow-based" layout lo standard e fornendo un supporto "semplice" per il layout posizionale.
Una volta superato questo primo scoglio...bhe ci sono le DependencyProperty, i RoutedEvent, il DataBinding, gli Stili e chi più ne ha più ne metta ;-)
Che ne pensate?