X
تبلیغات
پیکوفایل
رایتل


چهارشنبه 20 شهریور 1387


 مدیریت دیتا (اطلاعات) در برنامه های شی گرا امری بسیار ضروری و مهم است . اینکه دریک برنامه ما چگونه بتوانیم اطلاعاتی را که کاربر و یا خودمان در حین اجرای برنامه و هنگامی که برنامه از حالت اجرا خارج شده است ، حفظ ، مدیریت و تغییر دهیم بسیار حیاتی است .

حالتی را در نظر بگیرید که برنامه شما نیاز به ذخیره یکسری اطلاعات در مورد مشتریان خود را دارد ، در این حالت بسته به نیازها،مخاطب و ... موجودیت ها و فیلد های مختلفی در برنامه وجود دارداز قبیل : نام مشتری ، محل سکونت ، آدرس ، نوع مشترک و ... حال برنامه احتیاج به محلی برای ذخیره اطلاعات خود دارد که می تواند یک فایل ، پایگاه دادهSQL Server ، Oracle ،

... باشد . ما برای ذخیره کردن اطلاعات موجودیت ها مجبور به انجام یک سری اعمال تکراری هستیم برای انجام این اعمال ناچار به نوشتن متدها یی هستیم ، نظیر :


Private void saveData(Object user)

{

string firstname = user.firstName;

string lastname = user.lastName;

/* other fields */

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

}


همچنین برای برگرداندن اطلاعات و اعمال تغییرات روی آنها و احتمالا نمایش آنها به کاربر ، نیاز بهنوشتن متدهایی نظیر فوق هستیم . البته بدون احتساب اعمالی نظیر تبدیل کردن انواع داده به یکدیگر (Casting) .


اگر از معماری چند لایه استفاده کرده باشید ، این متد ها در لایه ی BLL (Bussiness logic layer) پیاده سازی می شوند و متدهایی که مستقیم با پایگاه داده سر و کا ر دارند در لایه ی

DAL (Data access layer) . همانقدر که برنامه ما وسیع تر می شود به همان ترتیب تعداد وپیچیدگی موجودیت ها و فیلدها بیشتر .حال شما سیستمی را در نظر بگیرید که این ارتباط های دایمی و احتمالا پیچیده ی با پایگاه داده را برای شما انجام دهد بدون انجام اعمال تکرای ، در واقعپلی مابین اشیاء و پایگاه داده شما ایجاد کند (بین لایه ی BLL و DAL ) و شما به راحتی بتوانید

اطلاعات اشیاء را با صدا زدن یک متد در پایگاه داده ی خود ذخیره کنید . البته استفاده از اینسسیستم دلیلی بر پیاده سازی نکردن لایه DAL نیست ، زیرا برخی از اعمال بسته به شرایطمختلف نیاز به لایه DAL دارند .این سیستم همان ORM است که این امکان را برای شما فراهم می کند .دقت داشته باشید که ORM محدود به هیچ زبان خاصی نیست و تنها یک تکنیک و سیستم است که می تواند در زبانهای مختلف پیاده سازی شود .


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


در بحث های بعدی در مورد Nhibernate توضیح خواهیم داد .


منابع


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

[2] : http://en.wikipedia.org/wiki/Object-relational_mapping