زیپ

آموزش و طراحی وب سایت - بهینه سازی وب سایت -SEO -مشاوره بهینه سازی سایت رایگان-آشنایی با ابزارها و اخبار داغ دنیای فناوری

زیپ

آموزش و طراحی وب سایت - بهینه سازی وب سایت -SEO -مشاوره بهینه سازی سایت رایگان-آشنایی با ابزارها و اخبار داغ دنیای فناوری

تست روانشناسی بسیار جالب!!

تست روانشناسی بسیار جالب!!

فردی که پشت در می‌بینید همان کسی است که شما در رویارویی با ...
 
تصور کنید در بیابان خشک و بی پایانی در حال راه رفتن هستید خسته،گرسنه،تشنه،پس از 5 ساعت پیاده روی......ناگهان ساختمان مجلل و با شکوهی در جلوی شما ظاهر می‌شود.

1.ساختمانی که جلوی شما ظاهر شده است چیست؟

الف-یک قصر    ب- یک موزه    ج-یک هتل    د-یک بنای مذهبی (مسجد-کلیسا-......)

2.شما از چه طریقی وارد ساختمان می‌شوید؟

الف-پنجره    ب- در        ج- بالکن         د- تونل زیر زمینی

 وقتی وارد ساختمان شدید آن را بسیار مجلل و باشکوه می یابید......ناگهان صدای در زدن می‌شنوید...در را باز می‌کنید و کسی را می‌بینید که واقعاً می‌خواستید با او باشید.

 

3. آن شخص کیست؟

به گشتن ادامه می‌دهید...پلکانی را می‌بینید که به طبقه بالا می‌رود.


 4.مارپیچی است یا مستقیم؟

از پلکان بالا می‌رویم تعداد پله ها را می‌شمارید.

 

5.چند پله بود؟(هر عددی از یک تا بی نهایت)

بعد وارد اتاقی می‌شوید..........

 

6.دلتان می‌خواهد این اتاق چقدر بزرگ باشد؟

الف-به اندازه یک آکواریوم 

ب-به اندازه یک اتاق معمولی  

ج-به اندازه یک جنگل 

 د-به اندازه  اقیانوس آرام

 

7.دلتان می‌خواهد رنگ دیوار اتاق چه باشد؟

الف-قرمز    ب-سیاه و سفید      ج- ارغوانی      د-زرد یا پرتقالی      و-رنگ های رنگین کمان

 

یک میز جلوی شما ظاهر می‌شود...

8.آیا گرد- مربع- مثلث یا بدون شکل خاصی است؟

و ظرفی با 5 میوه روی آن قرار دارد: گیلاس- سیب- کیوی- طالبی-هندوانه

 

9.یک میوه را انتخاب کنید.......

میوه ای که انتخاب کرده اید شما را به یاد این شخص می‌اندازد...

10.نام او را بنویسید.

 

11.شما میوه را برمی‌دارید و.........

الف-بلافاصله آن را می‌خورید.

ب- قسمت کرم خورده را می‌ برید و قسمت سالمش را می‌خورید.

ج-آن را می‌برید و داخلش را می‌بینید که کرم خورده است و....بعد به خوردنش ادامه می‌دهید

د-اگر کرم خورده باشد تمامش را دور می‌اندازید

 

از آن ساختمان خارج می‌شوید و 5 حیوان را می‌بینید.موش- آهو- اسب- دلفین- فیل

12.این حیوانت را به ترتیب اولویت که برایتان دارند رده بندی کنید..

 

 جواب:

1.نشان دهنده چیزی است که شما بیشتر از بقیه چیزها دنبال آن هستید.

قصر:ثروت           موزه:حرفه و شغل                    هتل:خانه و عشق   

مکان مذهبی:اعتقادات یا زمینه رشد روحی و روانی شماست

 

2.نشان دهنده نوع زندگی  است که به دنبال آن هستید.

پنجره:زندگی سرشار از رویدادهای پیش بینی نشده و شگفت انگیز

در:زندگی آرام و امن

بالکن:زندگی مسالمت جویانه و عاشقانه

تونل زیر زمینی:زندگی خطرناک ولی معنی دار پر از تجربه های متفاوت

 

3.فردی که پشت در می‌بینید همان کسی است که شما در رویارویی با مشکلات زندگی می‌توانید کاملاً به او اعتماد کنید.

 

4.پلکان نشانه زندگی عشقی شماست پیچ در پیچ ولی زیبا - مستقیم معمولی ولی خسته کننده

 

5.تعدا پله ها:تعداد تلاشهایی که شما امیدوارید برای برقراری رابطه تان به عمل آورید.

 

6.اندازه اتاق:میزان ماجراجویی هر چه کوچک باشد یعنی شما آدم محافظه کاری هستید

 

7.رنگ اتاق شخصیت شماست:

قرمز:احساساتی و پر شور      سیاه و سفید:منطقی       ارغوانی:ماجراجو

 زرد و پرتقالی:شادمان و سرحال     رنگین کمان:شما در مورد این که واقعاً چه هستید شک دارید

 

8.شکل میز:زاویه دید شما را نسبت به چیزها یا موقعیت ها نشان می دهد.

مربع:ثابت و منصفانه

گرد:شما می‌خواهید چیزها را از دیدگاه و نقطه نظر بسیاری افراد دیگر ببینید

مثلث:شما می‌خواهید مبتکر و اصلی باشید

بی شکل:شما آدم بی اراده ای هستید و همیشه طفره می‌روید

 

9.میوه ها نشانگر این هستند که شما به دنبال چه نوع دوستانی می گردید میوه های بزرگتر نشانگر این هستند که نمود فیزیکی و ظاهری برای شما بیشتر اهمیت دارد و میوه های کوچکتر به معنی این هستند که شخصیت افراد برای شما مهم است.

 

10.این شخص نشانگر نوع دوستانی است که شما به دنبال او هستید.

 

11.چگونگی خوردن میوه نشانگر این است که شما چگونه با دیگران رفتار می‌کنید.

الف:یعنی شما کینه ای از دیگران به دل نمی‌گیرید

ب:یعنی شما فقط نکات مثبت دوستانتان را می‌پذیرید و از پذیرفتن نکات منفی آنها سرباز می زنید

ج:خوردن آن علیرغم کرم خوردگی یعنی نقاط قوت و ضعف دیگران را می پذیرید

د:دور انداختن یعنی شما آدم بی رحمی هستید.

 

12. 5 حیوان:

دلفین:شغل و حرفه               فیل:خانواده

اسب:عشق                       موش:انتظار و احترام

آهو: دوستان شما و چیزهایی که به آن توجه دارید است.
 
 
گردآوری:گروه سرگرمی سیمرغ
www.seemorgh.com/Entertainment
منبع: allpersians.com
 

تمام سیستم عامل های موبایل در یک نگاه


یکی از مهم‌ترین ویژگی‌های موبایل‌های امروزی نوع سیستم عامل موبایل است. یعنی برای انتخاب یک موبایل، بهتر است داشتن یا نداشتن سیستم ‌عامل، هم در نظر گرفته شود. بعضی از موبایل‌ها به اصطلاح سیستم ‌عامل ندارند. چنین موبایل‌هایی از یک پلت‌فرم ساده استفاده می‌کنند و به جز مواردی محدود و استثنایی، نمی‌توانند از هیچ نرم‌افزاری پشتیبانی کنند.
پرکاربردترین پلت‌فرم برای گوشی‌های بدون سیستم‌عامل جاوا است. به طوری که تا امروز تعداد گوشی‌های جاوا از مجموع گوشی‌های سیمبین بیشتر بوده است. جاوا نسخه‌های بسیار فراوانی دارد و همه شرکت‌های سازنده موبایل با توجه به سلیقه و نیاز مشتری از آن استفاده می‌کنند.
در مجموع چهار سیستم‌عامل برای موبایل تعریف شده که عبارتند از سیمبین (Symbian)، ویندوز موبایل (Windows Mobile)، پالم (Palm) و لینوکس (Linux) و البته آندروید تازه وارد.

ادامه مطلب ...

تحلیل مرور گر جدید گوگل chrome

اما اگر بخواهم تحلیلی از دید خودم بنویسم سعی می کنم به چند نکته بسنده کنم. لینکهایی هم به شما معرفی می کنم که بتوانید اطلاعاتی که مفید باشد را درباره این مرورگر بدست بیاورید.

http://www.tinypic.info/files/nz9voexyg6lp1epitnhk.jpg

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

دو. مصرف رم در این مرورگر پایین آمده است. همین میتواند گزینه خوبی باشد برای کسانی که از سیستم های پرسرعت بهره مند نیستند. خدا را شکر از این سیستمها در کشور ما کم هم نیست. کروم روی یک سیستم با رم 64 نمایش قابل قبولی داشت. البته به نسبت مرورگرهای دیگر!

سه. گوگل کروم از یک موتوری به نام وب کیت استفاده می کند. نیازی نیست بدانید که این موتور چه طور کار می کند، ولی باید بدانید که بعضی وقتها این موتور در استفاده از زبان های راست به چپ اذیت می کند. کلا مایکروسافت فکر می کنم در این زمینه موتور بهتری دارد. gecko هم که موتور مورد استفاده از فایرفاکس است جایگاه خوبی دارد. بقیه رسما تعریفی نیستند.

چهارم. کروم از نظر محیط کاربری خیلی جالب است. یعنی جالب هم نباشد جدید است. بعضی چیز ها را دارد که بد نیست بقیه هم یاد بگیرند! مثلا همین که به صورت پیش فرض انگار که صفحه را فول اسکرین می بینیم! کروم برای مانیتور های wide جدید هم خیلی خوب به نمایش در می آید ( چیزی که در مرورگرهای دیگر به چشم نمی آید ). کلا جدید است و یک خورده هم خوشگل است اما بالاخره این هم عادی می شود :)

پنجم. کروم هنوز به ثبات کافی برای نمایش صفحات نرسیده است. مثلا شما نمی توانید مطمئن باشید که صفحات در کروم نسبت به دیگر مرورگرها چه طور نمایش داده خواهد شد. کلا من چند صفحه دیدم که در کروم واقعا فوق العاده بود و چند صفحه دیدم که در کروم متوسط بود. بعضی وقتها هم بازی های خاص خودش را در می آورد که زیاد مهم نیست. پیشنهاد می کند برای تست یک بار http://1fathi.com را در کروم تست کنید و نتیجه را از نظر سرعت و عرض بررسی کنید.

ششم. اگر کاربر فایرفاکس باشید می توانید بی خیال این همه افزونه بشوید؟ شخصا بعضی افزونه ها برایم از نان شب که واجبتر نه، ولی واجب است. فکر می کنید کروم فعلا به مرورگر اول خیلی ها تبدیل نمی شود چون افزونه ندارد. فکر می کنم در آینده گوگل مرورگر اول خیلی ها بشود چون گوگل خیلی زود بانک افزونه کروم را پر و پیمان خواهد کرد.

هفتم. کروم هنوز با پخش کننده های مدیای سایتهای زیادی مشکل دارد. این در حالی است که گوگل ادعا می کند که کروم کلا برای سایت های پر از فایل های چند رسانه ای بهینه شده است. اگر گوگل نتواند کروم را برای این سایتها بهبود بدهد شکست سختی خواهد خورد. هر چند اصلا عجیب نیست که در نسخه های بعدی گوگل ما را شگفت زده کند.

هشتم. کروم محصول گوگل است. اگر محصول گوگل نبود مواردی مانند شش و هفت به این راحتی قابل چشم پوشی نبود. اما این نکته بزرگتری هم دارد. شما با مرورگری طرف هستید که به سرعت می تواند با محصولات گوگل هماهنگ بشود. مثلا گوگل گیرز در این مرورگر به صورت داخلی عمل می کند. فکر می کنم اگر امکانی هم باشد که هم اکنون یک پارچه سازی نشده باشد حتما می شود. این یعنی گوگل ریدر، جیمیل، گوگل داکس و … بهتر و سریعتر و راحت تر!

نهم. اگر یک تب را باز کنید ( که اتفاقا با شکل جالبی هم باز می شود ) اگر تب کرش کند، یعنی کلا سایت به خوبی باز نشود فقط همان تب کرش می کند. اینجاست که می گویند ببینید عقل گوگل به کجاها که نمی رسد. با این کار عملا مشکل کرش کردن که در فایرفاکس هم شایع بود ( در مورد اینترنت اکسپلورر بهتر است سکوت کنیم تا آبرویمان نرفته است! ) دیگر به چشم نخواهد آمد. اگر کروم همه امکاناشتش کپی از دیگر مرورگرهاست در این مورد بقیه باید از کروم کپی کنند.

دهم. کلا فکر می کنم کروم آینده خوبی داشته باشد. تاکید می کنم آینده خوبی! این یعنی الان کروم چنان قابلیت های خیره کننده ای ندارد که از مرورگری مثل فایرفاکس دل بکنیم و دل به کروم بسپریم. کروم در آینده و به سرعت زیاد پله های ترقی را طی می کند اما الان فقط سرویسی است که باید برای یک تست از آن استفاده بشود و نه بیشتر. باید فقط کمی صبر کنیم تا نسخه پایدارتری بیاید. آن وقت بین کروم جدید و احتمالا غولی چون فایرفاکس 3.1 مقایسه کنیم. فعلا پیشنهاد من فقط فایرفاکس 3!

پی نوشت: کلا اگر بخواهید از کروم استفاده کنید توصیه می کنم

  1. مطلب « chrome، مرورگر پر سر و صدای گوگل را چگونه دانلود کنیم؟ » را بخوانید و دانلود کنید. انواع و اقسام فایل های مستقیم آنجا برای دانلود مهیا شده است.
  2. مطلب « نگاهی به کروم، مرورگر گوگل » را بخوانید که یک ریویو شخصی است و به بررسی نکات پرداخته است.
  3. مطلب « مرورگری از جنس سادگی » را بخوانید که بیشتر به یک راهنما شبیه است و ریز کاری های جدید کروم را خوب بررسی کرده است.

فکر نمی کنم به چیز بیشتری نیاز داشته باشید :)


منبع : http://1fathi.com/

19 دلیل برای استفاده از فایرفاکس به جای اینترنت اکسپلور

بسیاری از کارشناسان مرورگر موزیلا فایرفاکس را بسیار برتر از مرورگر قدیمی و معروف اینترنت اکسپلورر میدانند. این کارشناسان 19 دلیل گویا و روشن را برای این انتخاب خود ذکر میکنند. در این ترفند قصد داریم 19 دلیل برای استفاده از فایرفاکس به جای اینترنت اکسپلورر را به شما معرفی کنیم، شاید شما نیز به این مرورگر روی آوردید!

1. امنیت: یکی از مهمترین نکات بارز این مرورگر امنیت بسیار بالاتر فایر فاکس نسبت به Internet Explorer می باشد. بدین معنی که با استفاده از فایر فاکس شما بسیار کمتر مورد حملات امنیتی قرار می گیرید.

2. سرعت: دومین گزینه برتری Firefox نسبت به Internet Explorer سرعت بالاتر این مرورگر می باشد. بدین معنی که صفحات اینترنتی بسیار سریعتر در این مرورگر بارگذاری می شوند و برای اکثر ما که از اینترنت هایی با سرعت پایین استفاده می کنیم مزیت بسیار خوبی است.

3. امکان Tab Browser: در فایرفاکس پنجره های جدید در یک تب (در داخل همان پنجره) بازگشایی می شوند و این عمل باعث می شود که اولا محیط Taskbar ویندوز شلوغ نشود و دوم دسترسی سریعتر به سایتهای موجود در تب می باشد.

4. دسترسی همیشگی به موتورهای جستجو: در Firefox شما به راحتی می توانید در موتورهای جستجو معروف از قبیل گوگل، یاهو، آمازون و دیگر موتورهای جستجو، به جستجو بپردازید بدون اینکه نیازی به تایپ آدرس موتور جستجو باشد. امکانی که در Internet Explorer وجود ندارد.

5. امکان Import از مرورگر های دیگر: فایر فاکس همچنین می تواند اطلاعاتی از قبیل History، کوکی ها، پسوردها و اطلاعاتی که در فرمها وارد کرده اید (در مرورگر های دیگر) را در درون خود وارد کند.

6. ذخیره سریع صفحات لود شده به طور کامل: در Internet Explorer، حتمأ برایتان پیش آمده که مثلا وارد سایتی شده اید و وقتی قصد ذخیره آن صفحه را دارید، یا باید خیلی منتظر شوید تا صفحه ذخیره شود و یا اینکه پیغامی را خواهید دید که مبنی بر این است که شما نمی توانید این صفحه را ذخیره کنید. و دومین مشکل هم عدم ذخیره کامل سایتها می باشد بدین معنی که (ترفندستان) مثلأ اگر در صفحه ای، یک یا چند فایل فلش موجود باشد، پس از ذخیره صفحه مشاهده خواهید کرد که فلشها ذخیره نشده اند و در اینگونه موارد می بایستی از نرم افزارهای جانبی برای اینکار استفاده کنید. اما در مقابل مرورگر فایر فاکس اولأ تمامی صفحات را ذخیره میکند (آن هم به طور کامل یعنی همراه با تمامی تصاویر و حتی فلشهای به کار رفته) و ثانیاً اگر صفحه به طور کامل لود شده باشد، بدون لحظه ای تامل صفحه ذخیره می شود و دیگر خبری از یک پنجره ذخیره که باید مدتی برای آن در اینترنت اکسپلور منتظر می شدید نیست!

7. افزایش توانایی های برنامه با نصب پلاگینها: از دیگر مزیتهایی که Firefox نسبت به Internet Explorer دارد امکان نصب پلاگینها می باشد. بدین معنی که شما می توانید با نصب پلاگینها قابلیتهای فایرفاکس را توسعه دهید.

8. دارا بودن فایل منیجر: از دیگر مزیتهای Firefox نسبت به Internet Explorer دارا بودن فایل منیجر می باشد که شما را در دانلود هر چه بهتر و سریعتر فایلها یاری می کند.

9. استفاده از کلیدهای میانبر بیشتر: یکی از مواردی که کاربران حرفه ای بسیار از آن استفاده می کنند کلیدهای میانبر می باشد که کار با اینترنت را سریعتر و لذت بخش تر می کند و البته در فایرفاکس این کلیدها بسیار بیشتر می باشند. از جمله این موارد:
شما در Internet Explorer مثلا برای تایپ سایتی هایی که دارای دامین com. هستند کافی بود نام سایت را نوشته و کلیدهای ترکیبی Ctrl+Enter را بزنید. ولی برای سایتهای net. و یا org. فکری نشده است ولی در Firefox می توانید برای سایتهای net. کلیدهای ترکیبی Shift+Enter و برای سایتهای org. کلیدهای Ctrl+Shift+Enter را بزنید، و یا می توانید برای ذخیره یک صفحه کلیدهای Ctrl+S را بزنید و یا برای دسترسی به سورس صفحه نمایش داده شده کلیدهای Ctrl+U را بزنید و بسیاری دیگر از کلیدهای میانبر دیگر. لازم به ذکر است تمامی کلیدهای میانبر در Internet Explorer نیز در فایرفاکس انجام پذیرند.

10. قابلیت Bookmark: دسترسی به عنوان آخرین مطالب سایتها، بدون نیاز به مراجعه مکرر به سایت برای باخبر شدن آپدیت آن سایت از امکانات Bookmark است که در فایرفاکس وجود دارد.

11. مدیریت بسیار کاملتر بر روی علاقه مندی ها یا همان Favorites: شما می توانید لیست سایتهای مورد علاقه خود رو در Internet Explorer به راحتی اضافه کنید ولی به عنوان مثال اگر یک روز بخواهید ویندوزتان را عوض کنید خواهید دید که تمامی علاقه مندی ها نیز پاک خواهند شد. ولی در فایر فاکس میتوان آنها را هر زمان ذخیره کرد و مجدد وارد مرورگر نمود.

12. امکان حذف کوکی ها و لیست سایتهای مرور شده: شما درFirefox تنها با فشردن چند کلید ترکیبی Ctrl+Shift+Del به راحتی قادر به پاکسازی مرور اینترنتی خود خواهید بود، کاری که در Internet Explorer از طریق منوها و با چند عمل مختلف انجام می گیرد.

13. تغییر ظاهر فایر فاکس: شما حتی می توانید در Firefox شکل ظاهری مرورگر را تغییر دهید (یا به زبان دیگر، تغییر پوسته). این هم یکی دیگر از مزیتهای Firefox نسبت به Internet Explorer میباشد.

14. جستجوی دقیقتر: در Internet Explorer شما با فشردن کلیدهای ترکیبی Ctrl+F میتوانستید به جستجو در متون به کار رفته در صفحه بپردازید ولی اولأ مکان قرار گیری پنجره Find نامناسب و جستجو با آن کمی وقت گیر است ولی در Firefox علاوه بر قرار گیری این پنجره در مکانی بسیار عالی، شما می توانید کلیه موارد یافت شده را Highlight کنید که کار جستجو را بسیار راحت تر می کند.

15. جستجوی سریع بدون نیاز به تایپ کلمه: شما در Firefox می توانید عبارتی را با ماوس انتخاب کرده و سپس یک کلیک راست کنید. خواهید دید که گزینه ای در منوی کلیک راست وجود دارد با عنوان Search Web For Test که البته به جای کلمه Test عبارت انتخاب شده شما قرار دارد و تنها با کلیک برروی این گزینه می توانید نتایج جستجو را در موتور جستجوی پیش فرض مشاهده کنید.

16. مدیریت بسیارکاملتر بر روی فریمها: در Firefox در صفحاتی که از فریم استفاده شده باشد، شما قادر خواهید بود که مثلا تنها فریم را مشاهده کنید و یا تنها فریم را ذخیره کنید و یا سورس فریم را ببینید و کارهای مختلف دیگری که می توانید بر روی فریمها انجام دهید.

17. تبدیل قالب سایتها مناسب برای فارسی زبانان: شما همچنین می توانید بسیاری از سایتها را مطابق با استاندارد فارسی از راست به چپ کنید. یعنی تصور کنید در Yahoo Mail، تمامی منوها در سمت چپ قرار دارند ولی طبق استاندارد فارسی منوها می بایست در سمت راست قرار داشته باشند، شما کافی است در فایر فاکس یک کلیک راست کنید و گزینه Switch Page Direction را انتخاب نمایید. خواهید دید که تمامی منو های موجود در سمت چپ به سمت راست منتقل شده اند. این عمل در بسیاری از سایتها جواب قابل قبولی را می دهد که در نوع خود بی نظیر است.

18. حذف اتوماتیک پنجره های تبلیغاتی: فایر فاکس همچنین به صورت اتوماتیک پنجره های تبلیغاتی را می بندد که این مورد یکی از مشکلات اساسی کاربران Internet Explorer می باشد. ولی فایر فاکس این مشکل را حل کرده است.

19. نمایش آخرین مراجعات: علاوه بر دارای بودن History، همچنین شما می توانید در فایر فاکس، آخرین 10 سایت بازدید شده را تنها با یک کلیک مشاده نمایید.

نکته: این مقایسه ها، بر مبنای Firefox 2 و Internet Explorer 6، ورژنهای حال حاضر این دو مرورگر در زمان نگارش این ترفند صورت گرفته است

ORM چیست؟

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 در سیستم می‌شود. ولی به خاطر مزایایی که دارد (که بخصوص در پروژه‌های بزرگ حس می‌شود) استفاده از آن توصیه می‌شود.
منابعی که در تهیه این مطلب از آنها استفاده شده است:

همه چیز درباره NHibernate

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