If possible....

I want to design a main window which will always be present during the programs runtime. Within it have windows... Some windows will have a treeview and a listview to em. While others will have a other design.

Possibly be able to click a button to open a new workspace and have the windows stack on each other.

Within a "workspace" you can arrow <- and -> to achieve a bigger view of a sub window within a workspace... For instance. You can ctrl + right arrow key over to the listview while ctrl + left arrow will bring you a full view of the treeview..

Should I design each part of the extremly flexible program as one exe which accesses a database, or several dll's which I know nothing about creating... to design this application for scalability (I think is the right word)