NHibernate چیست

فوریه 17, 2009 2 دیدگاه

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 با تغییر پایگاه داده نهایی خودبخود تغییر می‌کنند و ان هایبرنیت آنها را برای ما ایجاد می‌کند.

منابعی که برای تهیه این مطلب از آنها استفاده شده است

     nHibernate درویکی پدیا

     theserverside.net

     تجارب شخصی

دسته‌ها:DataBase, Programming برچسب‌ها: , , , , ,

لیستی از نرم افزارهای ORMapper

فوریه 14, 2009 بیان دیدگاه

از آنجا که بیشتر مطالبی که در این وبلاگ خواهم نوشت، در ارتباط با ORM است. لذا لیستی از ORM های مختلف را که ویکی پدیا آورده در اینجا می‌آورم و در مطالب بعدی در مورد یکی از این ORM ها که قدرت خوبی دارد و OpenSource هست مطالبی خواهم نوشت .

مطلب زیر از اینجا در ویکی پدیا قابل دسترسی می باشد .

C++

Java

.NET

PHP

  • Doctrine, Open Source ORM for PHP 5.2.3, free software (GNU LGPL)
  • Propel, ORM and Query-Toolkit for PHP 5, inspired by Apache Torque, free software (GNU LGPL)
  • EZPDO, Open Source ORM for PHP 5.0.4 or newer, free software (BSD)
  • DABL, Database class creator and Query builder, inspired by Propel but easier to install, free software

Python

Ruby

Perl

  • DBIx::Class, open source (often used with Catalyst)
  • Fey-ORM, open source
  • Class::DBI, open source (quick and easy)

دسته‌ها:Programming برچسب‌ها:

ORM چیست

فوریه 14, 2009 9 دیدگاه
ORM یا Object Relational Mapping یک تکنیک برنامه نویسی برای تبدیل ارتباطات در Database به مفاهیم Object Oriented در برنامه نویسی است. در واقع می‌توان گفت که ORM کلا‌س ها را به Table ها map می‌کند.
ORM برای این کار ( map کردن ،) یک Framework تهیه می‌کند. و توصیه می کند که کاربردها هنگام پیاده سازی از یک Framework استفاده نمایند. وقتی که شما می‌خواهید به Database دسترسی پیدا کنید، یا اطلاعاتی را ذخیره کنید، این کارها را مستقیما بر‌ روی اشیاء ( Object تان ) انجام می‌دهید. در واقع ORM با کپسوله کردن مراحل دسترسی به Database ، دشواری‌های کار با پایگاه داده را از دید کاربران و برنامه‌نویسان پنهان می‌کند.
معرفی ORM

معرفی ORM

مزیت بکارگیری ORM مدیریت ساده data در Object Oriented Programming توسط ORM است. و اینکه اگر قرار به عوض شدن پایگاه داده باشد، این تبدیل تنها با عوض کردن یک بخش از Framework که وظیفه برقراری ارتباط با Database را بر عهده دارد ( در برخی از برنامه‌های موجود با تغییر خصوصیت نام پایگاه داده ) صورت می‌پذیرد.
از مشکلاتی که ORM می‌تواند بوجود آورد میتوان به این مورد اشاره کرد که به خاطر فضای زیادی که اشغال می‌کند ، باعث پایین آمدن Performance در سیستم می‌شود. ولی به خاطر مزایایی که دارد (که بخصوص در پروژه‌های بزرگ حس می‌شود) استفاده از آن توصیه می‌شود.
منابعی که در تهیه این مطلب از آنها استفاده شده است:
دسته‌ها:DataBase, Programming برچسب‌ها: , ,