احسان ولی نوری داور پنجمین جشنواره وب ایران


.
 
دانش خود را منتشر کنید

پی سی پدیا یک دانشنامه آزاد برای علوم کامپیوتر و فناوری اطلاعات (IT) است. شما به راحتی می توانید دانسته های خود را با دیگران به اشتراک گذاشته و متقابلا از دانش دیگران نیز استفاده نمائید. اگر تمایل ندارید مقالات شما توسط دیگران ویرایش، اصلاح و یا به روز رسانی گردد لطفا مقاله ارسال نکنید زیرا پی سی پدیا یک دانشنامه آزاد است که امکان ویرایش و به روز رسانی مطالب را توسط همه کاربران (ضمن رعایت قوانین حق نشر) فراهم می نماید.
.
 
صفحه اصلی
مقالات 
ارسال مقاله
لینک ها
 جستجوی موضوعی
سوالات متداول
تماس با ما
درباره ما

ورود
  
 
 
 
عضویت
رمز عبورتان را فراموش کرده اید؟

تبلیغات


.


حمایت از پی سی پدیا




.
  
Linkbox
 ادامه...
 
 
 ۱۳۹۳ چهارشنبه ۵ آذر . ورود

 
 
 
ارسال شده توسط:Wiki
تعداد دفعات بازدید:1416
تاریخ ثبت مقاله:۱۳۸۸ دوشنبه ۱۹ مرداد
امتیاز مقاله:4.8
تاریخ آخرین ویرایش:
آخرین ویرایشگر:
تعداد دفعات ویرایش:0
 

 همه چیز درباره NHibernate 
یک ORM است که تحت پلت فرم دات نت مایکروسافت کار می‌کند ، و یک FrameWork را برای کار راحت‌تر و با پیچیدگی کمتر با database پیشنهاد می‌کند. در این مدل فیلدهای Database به آبجکت‌های معادلی، برای استفاده در محیط دات نت تبدیل (map) می‌شوند . و با این کار برنامه‌نویسان از پیچیدگی‌های ارتباطی DataBase ای خلاص می‌شوند.
موضوع مقاله: مفاهیم برنامه نویسی

NHibernate Logo

یک 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 UI

ویژگیهای NHibernate:
از آنجا که برای شروع به کار با یک برنامه، کسب اطلاع از نقاط ضعف و قوت آن از ملزومات است و از آنجا که برنامه NHibernate در یکی از حساس ترین و مهمترین لایه های برنامه نهایی اجرا می شود، دانستن مطالب زیر را الزامی می‌دانم، همچنین لازم بذکر است که مطالب زیر شامل مباحث فنی مختلفی است که از حوصله این مطلب خارج است به همین دلیل توضیحات مربوط به اصطلاحات ذکر شده را به عهده خواننده مطلب می‌گذارم.

1.     Natural programming model : بدین معنا که NHibernate ، OO را پشتیبانی می‌کند . یعنی ارث‌بری (Inheritance) ، چند‌ریختی (Polymorphism) ، ترکیب (Composition) ، Collection در .NET که شامل Generic collection ها هم می‌شود .

2.     Native .net ‏: API های NHibernate بر مبنای زبان‌های .NET و استانداردهای آن ایجاد شده است .

3.     Support for fine-grained object models : پشتیبانی از مدل‌های آبجکتی، از طریق مدل‌های مختلف غنی شده از مپینگ‌ها، برای Collection ها و Object  های وابسته .

4.     No build time byte code enhancement : در روند بیلد شدن، پردازش بر اساس بایت‌کدها و ایحاد کدهای اضافی وحود ندارد . در حقیقت در زمان بیلد شدن هیچ بهبودی در بایت‌کدها داده نمی‌شود .

5.     The query options : از بدست آوردن آبجکت‌های دیتابیس گرفته تا بدست آوردن خروجی‌های آنها . به هر دوی این مسائل می‌پردازد .

6.     Custom SQL : تصحیح کامل SQL که NHibernate باید برای آبحکت‌هایش از آنها استفاده کند .

7.     Support for “conversations” : ان.هایبرنیت از ماندگاری بالای مفاهیم ، سوا و سر‌هم‌بندی آبحکت‌ها پشتیبانی می‌کند و همچنین از optimistic locking به صورت خودکار مراقبت می‌کند .

8.     Free/open source : ان هاببرنیت، تحت مجوز LGPL (Lesser GNU Public License) است و سورس پروژه ان.هایبرنیت را از سایت SourceForge از اینجا می توانید دانلود کنید .

نصب و راه اندازی NHibernate:
برای استفاده از NHibernate مراحل مخنلفی را باید سپری کرد که در زیر به آنها اشاره می‌شود. توجه داشته باشید که برای استفاده از ان.هایبرنیت باید کارهای دیگری انجام داد که در آینده به آنها خواهیم پرداخت، در این مطلب قصد داریم نحوه نصب و پیکربندی NHibernate را در یک سیستم تشریح کنیم .

گام اول . دانلود و نصب ان.هایبرنیت .

در ابتدا NHibernate را از اینجا در سورس فورگ دانلود کزده و نصب کنید.

گام دوم . اضافه کردن DLL های ان.هایبرنیت به پروژه.

پروژه‌ای ایجاد کنید و فایل اسمبلی داخل پوشه BIN را که از آدرس بالا دانلود کردید به پروژه اضافه کنید.

گام سوم . تنظیمات مورد نیاز در Web.Config .

در ادامه تنظیمات زیر در فایل web.config برنامه اضافه می‌کنیم.

<configuration>

<configSections>

 

<section name=nhibernate type=System.Configuration.NameValueSectionHandler, System,Version=2.0.1,Culture=neutral,PublicKeyToken=b77a5c561934e089 />

configSections>

 

<nhibernate>

 

<add key=hibernate.connection.provider value=NHibernate.Connection.DriverConnectionProvider/>

 

<add key=hibernate.dialect value=NHibernate.Dialect.MsSql2000Dialect/>

 

<add key=hibernate.connection.driver_class value=NHibernate.Driver.SqlClientDriver/>

 

<add key=hibernate.connection.connection_string value=Server=.;initial catalog=nhibernate;UserID=sa;Password=123;Min Pool Size=2/>

nhibernate>

configuration>

چند نکته که باید در ادامه به آنها توجه داشت.

وقتی برای تشخیص Data Store ، FrameWork تان را پیکربندی کردید، باید فضای مدل (ModelSpace) و همچنین پایگاه داده‌تان را معرفی و مشخص کنید.

نکته دیگری هم وجود دارد و آن map کردن فایل‌ها و توضیح روابط (Relations) بین کلاس‌ها و جداول است.

‫امروزه NHibernate ابزاری را فراهم کرده که می‌تواند DLL هایی را از فایل‌های map شده تولید کند. و اضافه کردن یک شیء جدید به برنامه، درواقع یک NAnt task است که بطور خودکار توسط ‏‏ #C از فایل‌های مپ شده تولید می‌شود.

با انجام تنظیمات بالا باید براحتی از NHibernate در برنامه‌تان استفاده کنید.

 

منابع:

http://nhibernate.wordpress.com
http://en.wikipedia.org/wiki/NHibernate
http://www.theserverside.net
https://www.hibernate.org/343.html


ارسال مقاله جدید | ویرایش این مقاله | ایمیل برای دیگران
[lnkIDC] Bookmark and Share   

  رای شما به این مقاله






  نظر شما درباره این مقاله چیست؟

 
نام:

 
نظر:

  نظرات
شروین
آقا ما اصلا نمیدونیم ORM چی هست. لطف کنید و یه مقاله هم راجع به اون بزارید
Wiki
چشم. انشاالله در مقاله های بعدی
anon
دوست عزيز، تمام مآخذ رو نوشتي منهاي اصل كاري ... http://nhibernate.wordpress.com/2009/02/17/what-is-nhibernate/ موفق باشيد
سارا
كتاب فارسي يا منبع فارسي كه نحوه map كردن از db به برنامه رو با كمك Nhibernate توضيح داده باشه هست؟ ميشه معرفي كنين ممنون
سجاد
خداییش دمت گرم ولی اگه نحوهء عملکرد پرسیستنس یا همون دیتا اکس لیر آن را از روی کد توضیح بدید ممنون میشیم


Free counter and web stats
استفاده از مقالات پی سی پدیا در سایر رسانه های اینترنتی و چاپی با ذکر منبع و درج لینک آزاد است
درباره ما | تماس با ما | FAQ |
© 2006 - 2012 PCPedia.ir| Broadcast your knowledge™ | All rights reserved.