Validation Application Block (Enterprise Library 5.0)

What is Validation?

Validation is a process that ensures the sanity of data entered, received, or processed by a software module, class, or class members.

Some examples of validation are length check, range check, Null check, date range, specific character, and so on.

Consider you have a class with some properties or methods in it that requires validation for data handled by these methods or properties. For example, in the code shown below assume that you need to validate that the Name property has a name-value with 2 - 5 characters in length and an Age property value must be in the range of 1 - 100.

Validation-Application-Block

To validate these two properties, we must write validation code in the class itself so that before it sets the data for the object, the data is validated as per business rules.

To make the developer community more productive and simply de-couple the validation functionality from the business logic or application code, a Validation Application block can be used.

To use a Validation Application block, you must have Enterprise Library 5.0 installed, which can be freely downloaded from the Codeplex site.

Why do we need to Validate

 

Correctness

  1. Ensure the system doesn't process invalid data
  2. Enforce business rules
  3. Ensure user input is compatible with internal structures, data schemas, and external systems

Responsiveness

  1. Flag invalid data before performing expensive processing tasks

Security

  1. Protect against script injection and other attacks

Procedure for using a Validation Application Block

  1. Create your business objects
  2. Decorate them with validation rules
  3. Validate your data where required
  4. Process or display validation results

Configuring Validation Application Block

  1. Open your Visual Studio project; if an app. config file is not already available, then add it
  2. Open the Microsoft Enterprise Library console.
  3. In the Blocks menu, choose the "Add Validation Settings" option and your screen will appear, as shown in the image below:
    Validation-Application-Block
  4. From the loaded screen, click on the "+" button, to add a type we want to validate, this will allow you to add a type, either from the GAC or from a file. We will use a file for our demo purposes here.
  5. Once a type is selected, it will load the DLL and show you the class inside it, navigate through, and pick the class that you want to validate. The screen will appear as shown in the image below.
    Validation-Application-Block
  6. Click the "OK" button, and you must observe that the screen will appear as shown in the image below.
    Validation-Application-Block
  7. Now we have the type loaded that we want to validate and now it's time to add the Rules we wish to apply.
  8. As shown in the image above, click on the small icon and click on the "Add Validation Ruleset".
    Validation-Application-Block
  9. The screen will now appear as shown in the image below.
    Validation-Application-Block
  10. Click on the area shown in the image above, which will open the popup, and from there we will choose "Add Property to Validate" as shown in the image below.
    Validation-Application-Block
  11. In the opened window, add the name of the property you wish to validate, as shown in the image below.
    Validation-Application-Block
  12. Now look for the same icon on the top-right corner and it will prompt you for further actions to pick type validation etc. as shown in the image below.
    Validation-Application-Block
  13. Now, click on "Add String Length Validator" and enter the basic required setting for the Validation rule, as shown in the image below.
    Validation-Application-Block
  14. Similarly, add validation details for the Age property we have in the class code, and it must appear as:
    Validation-Application-Block
  15. Save this from the "File" -> "Save" menu to a .configfile. If you already have one config file in your application then browse to that location when saving, otherwise, you can create a new one and add that to your project.  After properly performing Steps 1 through 15 which are quite intuitive, you will have a config file as shown below.
    Validation-Application-Block

Consuming validation application block with the client application

After adding the .config into the client application, you only need to write some code to tie the validation logic in the .config with the calls happening via the object to the class properties.

Validation-Application-Block

This code will ensure that the Name is at least 2-5 characters long and the Age is between 1 and 100.

Test run the application and enter data as I have shown in the image below, which will pass the validation.

Validation-Application-Block

But if you try entering data that doesn't pass through the validation then the error message will be displayed that we configured in the config file.

Validation-Application-Block

Conclusion

Validation is a mandate for all kinds of applications, and a Validation Application Block is one of the finest ways of implementing it without much coding effort required in the business class.