1. A computer-implemented method of generating an application based on a selection of one or more application patterns, the method comprising: providing a pattern module associated with an application pattern, the pattern module including a model of the application pattern, a design time component to provide content for the model, and a runtime component to execute the operation associated with the model based with the content; determining a set of dependencies among the model, the design time component, and the runtime component; and generating a set of interfaces to couple the model, the design time component, and the runtime component based on the set of dependencies.