1. A computer program product, tangibly embodied in an information carrier, for a generation framework, the computer program product comprising instructions operable to cause data processing apparatus to: provide a common interface to a plurality of different types of generator cores corresponding to different systems and operating in different development environments; receive a request to generate software code from one of the generator cores operating in one of the development environments; determine a generation task associated with the request, the generation task corresponding to one of a plurality of different generation technologies: and generate the software code using the generation task.