Di solito per le cose che faccio la parte di elaborazione è ben separata dalla parte grafica, per cui scrivo la parte di "business logic" del programma come se fosse una libreria, magari collaudandola man mano con un'applicazione console. Quindi procedo a creare la parte GUI, che non fa altro che istanziare/usare le classi della parte scritta precedentemente.