Design Time Configuration

All application blocks include both run-time support and design-time support for configuration settings. The run-time support includes classes that represent the configuration settings. The Configuration Application Block uses these class definitions when it loads configuration settings. It reads the configuration settings from storage and returns objects that contain the configuration data to the application block.

The design-time configuration support includes classes that allow you to change the configuration settings by using the Enterprise Library configuration tools. These classes define a visual representation of the different configuration settings, specify the actions that can be performed based on the current configuration state, and provide the ability to validate the configuration settings.

The following figure illustrates the relationship between the run-time configuration support and the design-time configuration support.


The design-time classes depend on the configuration run-time classes because they obtain the current configuration settings from the configuration run-time objects. When you change these settings and save the changes, the design-time objects update the run-time objects, which are then saved in storage. However, the run-time classes have no dependency on the design-time classes. There is a single lightweight design-time assembly that contains design-time core and some block-specific classes. This is separate from the assemblies containing the run-time implementations. The design-time assembly is not required for running an application that uses the application blocks. However, it is required when you use the configuration console to change the configuration of an application block.