Kiedy w czasie projektowania aplikacji zaistnieje potrzeba wprowadzenia mechanizmu wtyczek, zwiększenia modularności oprogramowania w celu dopasowania aplikacji pod potrzeby różnych klientów lub uproszczenia mechanizmu automatycznych aktualizacji, programista staje przed potrzebą oddelegowania wykonania fragmentu programu poza plik wykonywalny – do zewnętrznego modułu. Istnieje wiele sposobów rozwiązania tego problemu, w tym kilka wbudowanych w system operacyjny oraz framework .NET.