1. A computer-implemented method comprising: in a design tool that supports model driven application development, creating an application comprising a plurality of native components, wherein the native components correspond to code for performing one or more functions, and wherein the native components correspond to visual objects in a graphical user interface associated with the design tool; receiving metadata that defines an interface for communicating with a custom component, wherein the custom component has corresponding code, wherein the custom component is a non-native component designed independently of, and in a different technology than, the native components in the application, and wherein the metadata specifies a technology for the custom component, one or more communication ports for the custom component, and one or more properties for the custom component; displaying a visual object corresponding to the custom component in the graphical user interface; mapping the visual object corresponding to the custom component to at least one other visual object corresponding to at least one of the plurality of native components, wherein at least one connector representing the mapping is displayed in the graphical user interface; and generating executable application code and wrapper code based on the metadata and the mapping, wherein the wrapper code communicates information between the custom component and the application, and wherein the wrapper code comprises a first component for communicating with the custom component and a second component for communicating with the application.