This is an article series in which I will talk about using O/R Mapping. O/R Mapping can ease your life since you don't have to write those hefty stored procedures to access database. O/R Mapping will also put an end to using datasets in your applications. In the first part of the article I will just discuss that why we need O/R Mapping and what it is all about. The fun part (coding) and seeing mapping in action will start from the next article. This is Edited !
We all are familiar with datasets which is a carrier used to carry data from one layer to another. In my previous article I described some of the pitfalls of using datasets. Datasets are most commonly used when we are accessing database. The common pattern of accessing data from the database is given in the following steps:
1) Make connection to the database
2) Make DataAdapter
3) Execute commands using dataadapter or command objects using stored procedures or Ad-hoc queries.
4) Fill the dataset using dataadapter
5) Bind dataset to the control on the webform.
The above procedure does not look that long but consider doing this over and over and over again. What will happen when some database field you misspelled and now its occurring in 200 stored procedures. You need to tell your Boss that you need a week or even more to fix this simple spelling problem. Not only that but migration can also be a big problem. If you have a stored procedure that takes 5 seconds to execute (Although 5 seconds is too long) and some one tweaked the procedure so now it runs in < 1 second and you are planning to use the new procedure throughout your application since its better in performance but later you find out that old stored procedure occur in 100 places than what are you doing to do? Actually to be honest I ran into this issue just one week ago. When I had to upgrade the data access layer of an application from "Data Access Application Block" to "Enterprise Library Data Access Block". Data Access was used more than 200 places in the whole application so I had to go to each and every place and manually change the access to use Enterprise Library. This migration was done in 2 days which was less than I expected but what will happen when Microsoft will introduce a new Data Access Library which will be different from the Enterprise Library. We have to repeat the whole procedure again and again.
What if I told you that you can insert, delete, update, edit in other words perform all type of database operations without executing any SQL at all. This seems impossible and kind of a crazy thought but this is what O/R Mapping is all about. O/R Mapping also known as Object Relationship Mapping which allows us to map our data in file(s) and use those mapping files to retrieve or add data to the database. The main idea behind the O/R Mappings is relationships. Consider the following query:
SELECT Person.Name, Person.Email FROM Person,Customer
WHERE Person.PersonID = Customer.CustomerID
As you can see that Person table and the Customer table has relationship between them which let's them perform different actions. Just in the same way O/R mapping is also relationships and these relationships can be created in files.
There are many O/R Mappers available to download. Some are free and some are pretty expensive. In this article and for the rest of the series we will be looking at the NHibernate O/R Mapper which is a free and open source. You can download the NHibernate O/R Mapper from http://nhibernate.sourceforge.net/ .
Here is a list of different O/R Mappers (List of O/R Mappers)
When not to use O/R Mapping:
You should not use O/R Mapping when your business logic is dependent on complex stored procedures. Having said so if you have business logic implemented in stored procedures than you have another thing coming :). Almost 95% of all the stored procedures that you write can be represented by O/R Mapping.
Installation is pretty simple. I assume you downloaded the Zip file from http://sourceforge.net/project/showfiles.php?group_id=73818. Once you done downloading simply extract it on your hard drive. It will have different folders inside the main directory, some of those folders contains the code and some have different type of files. Your concern will be the .dll files in the bin directory.
After installing the NHibernate just sit back and relax and wait for my next article in which I will show you how can you access the database and how cool it is to use O/R Mapping.
This is Edited !