A system and a method for developing and dynamically constructing multi-tiered distributed computing applications using a framework which allows the major elements involved in enterprise software applications, namely, the user interface, the data access, and the processing logic, to be independently developed. Moreover, the applications are dynamically created at time of use with pre-built software components or objects. The specifics of the applications such as functions, capabilities, user interface (UI) characteristics, etc., may depend on, for example, the user identity, the user preferences, and the terminal capability. Software development cost and turn-around time are reduced, promoting consistent UI design thus reducing user training cost, and allowing the applications to be dynamically created according to the user profile.