Měl by sis ten program rozdělit (minimálně) na dvě vrstvy. V první bude uživatelské rozhraní (console, windows forms, web...), ve druhé pak aplikační logika tj. to co ten program opravu dělá. Pokud to takhle rozdělíš tak aplikační logiku můžeš s minimální námahou napojit na libovolné jiné uživatelské rozhraní.
Pokud to nerozdělíš, tak přechod na jiné rozhraní bude představovat spoustu práce.