Posted By : Murugan Andezuthu Dharmaratnam
Posted On : 22 January 2015
Keywords : Microsoft Application Blocks, What is Microsoft Application Blocks, Application Blocks

Microsoft Application Blocks

Microsoft Application Blocks

Application Blocks are classes distributed as Visual Studio Project which you can dowload from Microsoft Website and add to your .Net Application.They are written by Microsoft's Patterns and Practices team . Microsoft has released several Application Blocks that most common programming tasks such as.

  1. Caching Application Block: Developers can use this application block to incorporate a cache in their applications. Pluggable cache providers and persistent backing stores are supported.
  2. Cryptography Application Block: Developers can use this application block to incorporate hashing and symmetric encryption in their applications.
  3. Data Access Application Block: Developers can use this application block to incorporate standard database functionality in their applications, including both synchronous and asynchronous data access and returning data in a range of formats.
  4. Exception Handling Application Block: Developers and policy makers can use this application block to create a consistent strategy for processing exceptions that occur throughout the architectural layers of enterprise applications.
  5. Logging Application Block: Developers can use this application block to include logging functionality for a wide range of logging targets in their applications. This release adds asynchronous logging capabilities.
  6. Policy Injection Application Block: Powered by the Interception mechanism built into Unity, this application block can be used to implement interception policies to streamline the implementation of common features, such as logging, caching, exception handling, and validation, across a system.
  7. Security Application Block: Developers can use this application block to incorporate authorization and security caching functionality in their applications.
  8. Semantic Logging Application Block: This application block provides a set of destinations (sinks) to persist application events published using a subclass of the EventSource class from the System.Diagnostics.Tracing namespace. Sinks include Microsoft Azure table storage, SQL Server databases, and flat files with several formats and rolling capabilities. Developers can extend the block by creating custom formatters and sinks. For those sinks that can store structured data, the block preserves the full structure of the event payload in order to facilitate analyzing or processing the logged data. Events can be persisted in-process or collected and persisted out-of-process in a separate service.
  9. Transient Fault Handling Application Block: This application block makes on-premises or cloud applications more resilient to transient failures by providing intelligent retry logic mechanisms.
  10. Unity Application Block: Developers can use this application block as a lightweight and extensible dependency injection container with support for constructor, property, and method call injection, as well as instance and type interception. This release adds support for Windows Store apps as well as the registration by convention feature to ease the task of configuring Unity.
  11. Validation Application Block: Developers can use this application block to create validation rules for business objects that can be used across different layers of their applications.


Application Blocks are the best way to perform the specific task in .NET. We can also extend these classes. Application blocks makes our development faster and also ensures the best practices.

Why We Need Application Blocks

  1. Best way for performing specific task in .NET
  2. Using application block makes the development faster and more modular development
  3. Source code for application blocks are available in the form of projects so that we can easily modify them and can use for our learning purpose
  4. Maintains consistency in our code



Murugan Andezuthu Dharmaratnam

Murugan is a technology leader with 14 years of hands-on experience in full life cycle systems design, development, implementation, and management. In addition to systems design and development, his core competencies include cloud design and architecture, interactive web applications and websites development, mobile computing, and Healthcare Information Technology. His experience is very diverse with a broad range of technologies within multiple industry settings including private, public, and non-profit. Coupled with his technology expertise, Murugan is a well-organized, result-oriented, and a highly analytical leader with proven track record in developing and implementing very complex systems.