Configuration Application block in the
Enterprise Library
Introduction:
All the web applications needs some data that is to be available
for the whole application. Usually this data is put in the web.config file.
Sometimes writing information in the web.config file is tricky since its an xml
file and writing information manually can be dangerous and may contain errors.
Microsoft introduces "Configuration Application Block" which is a part of the
Enterprise Library. Enterprise Library is like a tree which has many branches.
Each branch can be taken as a separate block which makes up the whole tree.
In this article we will see how Configuration Application block
can be used to keep information available to all the users and which is used to
configure the way the application works.
Adding References to the libraries:
The first step that you should take is to create references to the
Configuration Library. If you choose the default installation options than the
file path to the Configuration Library can be found at:
C:\Program Files\ Enterprise Library\ code\ bin\
Configuration.dll
Just refer to this library in your application. After referencing this
library you need to include this in your code using the following syntax:
using
Microsoft.Practices.EnterpriseLibrary.Configuration;
Okay so now you have referenced to the Configuration Application Block in
your application.
Writing Information in the Configuration Application Block:
If you manually want to write the information in the configuration
application block. Then good luck, because it has all the xml tags which can
easily produce error because you may miss some of the tags or the attributes.
For this reason Microsoft has provided a very cool Desktop Tool that you can use
to write the information in the Configuration File.
Just go to start
Select Program Files
Microsoft Patterns and Practices
Enterprise Library
and finally "Enterprise Library Configuration".
Below is the "Enterprise library Configuration" application which you will
see:

Now click on the File and than open application. Select the "web.config" of
your current web application. This will make an application node. Right click on
the application node and select "Add new Configuration Block".

Now you have added a Configuration Block. You need to add the Configuration
Sections which will contain the information which will be available to the
application. Just right click on the Configuration Block and select "Add
Configuration Section".

The default name of the Configuration Section is "Configuration Section". You
can always change this name to the name that you like. Let's say that we are
storing information about "Color" of the website.
Let's change the name of the "Configuration Settings" to "ColorSettings". Now
right click on the ColorSettings and add "Xml File Storage Provider" and "Xml
Serializer transformer".
Here is the image below:

Now click on the "Save" button which will save the information to the "Web.config"
file and it also creates a new file which is "colorConfig".
The colorConfig will contain the information which you will write in it. Now
if you view the "web.config" file it will contain a entry for the "ColorSettings".

Now let's see how we can write information in the config file. Let's make a
class which will be written in the Configuration File. Here is a simple class
for writing the color information:
|
public
class
ColorClass
{
private
string name;
public
string Name
{
get {
return name; }
set { name = value; }
}
public
ColorClass()
{
}
}
|
Writing Configuration Information to the config file:
Now let's see how we can write information in the configuration file. Here is
the simple button click code which is used to write the information to the
configuration file. The ConfigurationManager class is the most important class
of the Configuration block which contains all the methods that you will need to
write the information. In this example we used WriteConfiguration method which
is used to write the information to the configuration file.
|
private
void
Button1_Click(object
sender, System.EventArgs e)
{
ColorClass color = new
ColorClass();
color.Name = "Red";
ConfigurationManager.WriteConfiguration("ColorSettings",color);
}
|
Explanation of the Code:
1) First we made an object of the class ColorClass which we have defined
earlier.
2) Next we used the "Name" property of the Color class and assign it the
string value "Red".
3) Finally we used the ConfigurationManager class of the Configuration
namespace and we used the WriteConfiguration method to write the information in
the configuration file.
After this method is executed you will see that the configuration file has
changed. We can also see below in the image that the value of the Name is
written in the Configuration file. Please note that this configuration file is
the colorconfig.config file and not the web.config file.

Now lets see how we can retrieve the information from the configuration file.
Reading the information in the configuration file is also pretty straight-
forwad and you can achieve this using casting.
Here is the button click code to Read the Configuration Information in the
colorconfig.config file:
|
private
void
Button2_Click(object
sender, System.EventArgs e)
{
ColorClass color = (ColorClass)
ConfigurationManager.GetConfiguration("ColorSettings");
Response.Write(color.Name);
}
|
Explanation of the Code:
1) In the button click event we just made the object of the ColorClass and
used the GetConfiguration method of the ConfigurationManager class to get the
configuration information. Important point to note is that we are also casting
it to the (ColorClass) so it can be assigned to the instance of the ColorClass.
2) Later we just display the color on the screen and "red" will be displayed.
When ever you write something in the Configuration file and go back to the
Visual Studio it will let you know that the file has been changed and do you
want to reload the new file or not. You can also find out the alteration of the
file using the events available in the ConfigurationManager class.
This event is fired when the Configuration settings in the configuration file
has been changed.
| ConfigurationManager.ConfigurationChanged+=new
ConfigurationChangedEventHandler (ConfigurationManager_ConfigurationChanged); |
In this article we saw that how we can use the Configuration Application
Block of the Enterprise Library and benefit our application. You can save all
sort of configuration information in the configuration file. This can include
the font data for the whole application.
In the next article we will take a look at the Exception Handling Application
Block of the Enterprise Library.
Attachments:
Project Files: ConfigurationBlockSample.zip