1. A method comprising: receiving, with a design module running on a processor in communication with a database, data comprising a design for an application definition from a remote computer via a network, the application definition describing a function of an application; creating, with a design-time interface of the design module, a data source for the application definition, the data source comprising a definition of a location from which data can be retrieved by the application and/or to which data can be saved by the application; mapping, with the design-time interface of the design module, an object to the data source; receiving, with the design module, a selection of one or more client operating platforms for application publication from among a plurality of platforms from the remote computer via the network; generating, with at least one generator module, uncompiled source code for the application including both source code for a run-time services component employed by all of the selected one or more client operating platforms and source code for a client application component native to each of the selected one or more client operating platforms using the application definition, wherein the application including the run-time services component and the client application component for each of the selected one or more client operating platforms is independent of the design module; and sending, with the design module, the uncompiled source code for the application to the remote computer.