>Say I create this app(exe) with a menu and ship it out. Now the user wants to add some more functionality so since my menu is datadriven, I create an additional .APP with the needed forms/code compiled. Then I just add a record into the menu table to give the menu a name and location, an icon (maybe) and the name of the app is added to another field. So when the user runs the original app, the dynamic menu code sees the new line and creates a new menu item, setting the additional APP file to run on the menu item being clicked.
>
>Now I have added functionality to the original application without recompiling.
You might also want to take a look at the Managed Extensibility Framework. It's designed for that kind of thing:
http://www.codeplex.com/MEF