1. A method for designing an application, comprising: (a) receiving metadata and a policy; (b) dynamically constructing a user-interface in accordance with the policy; and (c) creating the application through the user-interface.