1. At a computer system comprising one or more processors and memory storing executable instructions that implement a declarative language framework for building software applications from declarative language application descriptions, a method for dynamically building a software application from a declarative language application description, the method comprising: an act of receiving, at the declarative framework, an indication that a software application is to be initiated; an act of receiving, at the declarative framework, a declarative language application description, the declarative language description comprising one or more tags in a declarative language that each contain one or more parameters to be mapped to properties of a class object that is to be included in the software application; an act of the declarative framework using reflection to identify, at runtime, properties of a plurality of candidate class objects that could be used to implement functionality defined in each tag; an act of the declarative framework selecting one of the plurality of candidate class objects for each tag, each selected class object having properties that match the one or more parameters defined in the corresponding tag; an act of the declarative framework automatically mapping the parameters in each of the tags to the corresponding selected class object; and an act of automatically binding the properties of the selected class object to the parameters of the corresponding tag based on one or more declarative rules associated with the properties.