Sure you can use dynamic records, static reflection and many more techniques, but to truly make a system fast, you need to cache anything you can in memory, avoid complexity, keep Big O notation to a minimum and in general just go with a “less is better” attitude.

I therefore decided to skip to the bottom line of this article and show you what I use and how I use it.

After you got a sense of how easy it is to work with the Inverted Software DataBlock, I shell break down the framework into the underlying components.

Now that you know how to use the Inverted Software DataBlock let’s see how it’s built:There are only six files making up the Block:

CrudField .cs Contains a custom attribute, signaling the Block what property is used in what operation type.CRUDHelper.cs This is the main class and the entry point to the Block.DataBlockException.cs Defines a custom exception the Block will throw on errors.ObjectHelper.cs Contains cached information about objects properties, attributes and stored procedures output.ObjectPool.cs Was taken from the ParallelExtensionsExtras to help with SQLCommands creation.SQLHelper.cs A takeoff from the original PetShop example SQLHelper. Although this class does not resemble the original Microsoft example, it still contains basic ADO.NET code.

There is no magic here, just highly optimized code. For example: let’s look at a function in ObjectHelper: