Da kann ich dir eigentlich .NET und die Assemblies empfehlen. Damit kannst du buchstäblich einzelne Teile deines Programms auslagern. Im Extrem so, dass du für jeden Dialog (= Form) eine separate Assembly nutzt.

Musst du was aktualisieren, gibst du nur die Teile neu heraus, die sich verändert haben.
Aber okay, der Nachteil wären dann die ~20 MB für das .NET-Framework.