NHibernate چیست
NHibernate چیست؟
یک ORM است که تحت پلت فرم دات نت مایکروسافت کار میکند ، و یک FrameWork را برای کار راحتتر و با پیچیدگی کمتر با database پیشنهاد میکند. در این مدل فیلدهای Database به آبجکتهای معادلی، برای استفاده در محیط دات نت تبدیل (map) میشوند . و با این کار برنامهنویسان از پیچیدگیهای ارتباطی DataBase ای خلاص میشوند.
NH (NHibernate) یک نرمافزار کدباز ( OpenSource ) رایگان است. و قسمتی از java ORMapper Hibernate است که کدی در قالب XML از موجودیتها (Entity) و روابط (Relation) ارائه میکند. و به صورت اتوماتیک برای ذخیره و بازیابی Data ها کد Sql تولید میکند، و شما میتوانید با متادیتاهای (meta data) ذخیره شده در source code کار کنید.
نسخه های NHibernate
1. NHibernate نسخه 1.2.1 در نوامبر سال 2007 ( مهر ماه ۱۳۸۶ ) به بازار آمد و با .NET 2.0 کار میکرد.
2. NHibernate نسخه 2.0 در آگوست سال 2008 ( مرداد ماه ۱۳۸۷ ) عرضه شد.
3. NHibernate نسخه 2.0.1 در سپتامبر سال 2008 ( شهریور ماه ۱۳۸۷ ) عرضه شد. و با دات نت 1.1 و 2.0 کار میکرد
4. NHibernate نسخه 2.1 در اواسط سال 2009 ، عرضه خواهد شد.
5. NHibernate نسخه 3.0 اولین نسخه ای خواهد بود که از .net 3.5 استفاده خواهد کرد .
توجه داشته باشید که در نسخه های بالا در مورد کارکرد برنامه با .net framework های مختلف ، متن بر اساس نوشته های سایت رسمی nhibernate و ویکی پدیا آورده شده . تجربه شخصی نشان می دهد که نسخههای پایین تر با framework 3.5 مشکلی ندارند و بخوبی با آن کار می کنند . ( احتمالا منظور از سازگار بودن با فریم ورک های مختلف، استفاده از حداکثر قابلیت های آن فریم ورک است )
توانایی اصلی «ان هایبرنیت» در map کردن table های DataBase به کلاسهای .NET است.
ان.هایبرنیت همچنین DataQuery و امکان بازیابی (retrieval) را فراهم میکند ، کدهای SQL تولید میکند و طراح را از هندل کردن دستی DataBase نسبت به تبدیلات آن و نگهداری Application های Sql ، راحت میکند.
NH ، ماندگاری مناسبی را برای طرح قدیمی CLR (Compiler Language Runtime) فراهم میکند. و آبجکتهای کلاس شما مجبور نیستند مدل برنامه نویسی محدود کنندهای را دنبال کنند.
مزیت مهم استفاده از NHibernate این است که میتوان برای بانک اطلاعاتی به صورت Object Oriented (OO ) کد نوشت. یعنی عملا DtaBase یک Object است که از آن در قالب Data ی map شده استفاده میکنیم.
در صورت استفاده کردن از DataSet به جای NH برنامه سرعت بیشتری دارد؛ اما برای نوشتن کد باید کد Sql بنویسیم، پس درگیر پیچیدگیهای کار با Sql در محیط .NET خواهیم شد. درضمن اگر قرار به عوض کردن نوع DataBase باشد ، اگر framework ای هم از قبل برای راحتی کار درست کرده باشیم، به صورت کامل باید تغییر کند و دوباره نوشته شود. اما در صورت استفاده از NHibernate در صورت تمایل به تغییر DataBase فقط و فقط در تعریف نام DataBase باید تجدید نظر کرد و تمام تغییرات وابسته به database با تغییر پایگاه داده نهایی خودبخود تغییر میکنند و ان هایبرنیت آنها را برای ما ایجاد میکند.
منابعی که برای تهیه این مطلب از آنها استفاده شده است
تجارب شخصی

جالب بود.
خیلی وقت بود دنبال توضیح کاملی می گشتم!!!
ممنون
مطلب مفيدي بود
توصيه مي كنم تو صفحات فارسي ويكي پديا بزارين .