NHibernate چیست؟


همانطور که در مبحث پیشین گفته شد یکی از ابزارهای پیاده سازی ORM در دات نت NHibernate است . در اینجا قصد داریم به شرح این تکنولوژی بپردازیم .




NHibernate ابزاریست برای عملی کردن مفهوم ORM (Object – relational mapping) در فریم ورک (ّFramework) .NETکه در اواخر سال 2005 به صورت Open source و رایگان تولید شد . اولین فرم ورک مناسب و خوبی که برای ORM تولید شد، EOF نام گرفت (Enterprise Objects Framework) که البته خود نیز دارای مشکلاتی بود . در واقع Nhibernate ورژن Open source و رایگان Hibernate (فرم ورک پیاده سازی ORM در Java) در دات نت است .

برای درک بهتر ساده تر شدن کار در NHibernate به کد زیر دقت کنید :


Private void saveData(Object user)

{

string firstname = user.firstName;

string lastname = user.lastName;

/* Other fields */

DB.save(firstname,lastname,…); // Saving data to Database

}


همانطور که مشاهده می کنید برای ذخیره یک شی (مشخصات و فیلدهای یک شی ) در دیتا بیس ، نیاز به نوشتن چنین متدهایی است . حال اگر برنامه وسیع تر و پیچیده تر باشد به همان اندازه نوشتن چنین متد هایی ممکن است خسته کننده و تکراری به نظر برسد . اگر از NHibernate استفاده کنیم به کدی شبیه زیر می رسیم :


Public void saveData(Object user)

{

openNhibernateSession();

session.save(user);

closeNhibernateSession();

}


همانطور که می بینید با NHibernate می توان تا این حد کار را ساده تر کرد . در NHibernate حتی شما این امکان رو دارید که بر روی اشیاء Query اجرا کنید .

NHibernate از ورژن 1.1 دات نت به بعد قابل استفاده است (البته با کمی تغییرات کوچک می توان در دات نت 1 نیز از آن استفاده کرد که توصیه نمی شود)


منابع


[1] : NHibernate in Action - manning - Pierre Henri Kuaté,TobinHarris,Christian Bauer, and Gavin King

[2] : http://en.wikipedia.org/wiki/Nhibernate