جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
State Management در ASP. NET 2.0 - بخش 1
-(2 Body) 
State Management در ASP. NET 2.0 - بخش 1
Visitor 281
Category: دنياي فن آوري
يكي از مهمترين تفاوت هاي موجود بين برنامه هاي وب و Desktop ، مديريت stateاست كه در آن مي بايست به اين پرسش پاسخ داده شود كه نحوه نگهداري اطلاعات در ارتباط با كاربر جاري به چه صورت است ؟
در يك برنامه سنتي ويندوز ، stateبطور اتوماتيك مديريت مي گردد . حافظه به حد فراوان يافت مي شود و همواره در دسترس است . در برنامه هاي وب داستان بگونه اي ديگر است . هزاران كاربر ممكن است بطور همزمان برنامه اي مشابه را بر روي كامپيوتري يكسان ( سرويس دهنده وب ) اجراء و هر يك از آنان از طريق پروتكل HTTP( برگرفته شده از  Hypertext Transfer Protocol) كه داراي ماهيتي statelessاست با سرويس دهنده وب ارتباط برقرار نمايند . مجموعه شرايط فوق باعث شده است كه نتوان برنامه هاي وب را با سناريوئي دقيقا" مشابه با برنامه هاي سنتي ويندوز طراحي و پياده سازي كرد .
هيچگونه فريمورك برنامه نويسي وب ، صرفنظر از ميزان پيشرفته بودن آن ، نمي تواند ماهيت statelessبودن پروتكل HTTPرا تغيير دهد. پس از هر درخواست و پاسخ به آن ، ارتباط منطقي سرويس گيرنده با سرويس دهنده قطع خواهد شد . معماري فوق ، اين اطمينان را ايجاد مي نمايد كه برنامه هاي وب بتوانند به هزاران كاربر بطور همزمان و بدون نگراني در خصوص حافظه پاسخ دهند . استفاده از روش هاي مختلف براي ذخيره اطلاعات بين درخواست هاي متعدد يك كاربر و بازيابي آنها در زماني كه به آنها نياز است از جمله مشكلات معماري فوق براي پياده كنندگان برنامه هاي وب محسوب مي گردد . 
آشنائي و درك مناسب نسبت به محدوديت هاي  state، يكي از مفاهيم كليدي در زمان ايجاد برنامه هاي وب كارآ و قدرتمند است .
در مجموعه مقالاتي كه در اين خصوص آماده و بتدريج بر روي سايت منتشر خواهد شد به بررسي موارد زير خواهيم پرداخت :
  • آشنائي با مفاهيم ، جايگاه و لزوم مديريت stateدر برنامه هاي وب
  • آشنائي با پتانسيل هاي ارائه شده در ASP. NET 2.0 براي ذخيره سازي و مديريت اطلاعات
  • آشنائي با گزينه هاي متفاوت موجود به منظور مديريت stateنظير View state، Session state، كوكي هاي سفارشي 
  • نحوه انتقال اطلاعات از يك صفحه به صفحه ديگر

 مديريت stateو مسائل در ارتباط با آن
در يك برنامه سنتي ويندوز ، كاربران با يك برنامه در حال اجراء بطور پيوسته ارتباط برقرار مي نمايند . بخشي از حافظه موجود بر روي كامپيوتر Desktop براي ذخيره  تنظيمات جاري اطلاعات محيط كار كاربر اختصاص داده مي شود .
در يك برنامه وب ، داستان كاملا" متفاوت است . شايد از ديد كاربران يك سايت حرفه اي اينگونه برداشت شود كه يك برنامه بطور مستمر در حال اجراء است و به آنان سرويس هاي لازم را مي دهد . علي رغم اين كه ظاهر موضوع درست بنظر مي آيد ولي در پس پرده داستان بگونه اي ديگر دنبال مي شود .  برنامه هاي وب از يك الگوي دستيابي غيرمتصل كارآ استفاده مي نمايند . در اين الگو ، سرويس گيرنده پس از ارتباط با سرويس دهنده از آن درخواست يك صفحه را مي نمايد . پس از پاسخ به سرويس گيرنده ،ارتباط منطقي ايجاد شده قطع و سرويس دهنده بي خيال هر گونه اطلاعاتي در رابطه با سرويس گيرنده مي گردد . پس از دريافت صفحه درخواستي توسط سرويس گيرنده ، برنامه اجراء خود را متوقف و ASP.NET engineاشياء مربوط به صفحه را دور مي اندازد .
با توجه به اين كه سرويس گيرندگان لازم است در اكثر موارد صرفا" براي چندين ثانيه متصل باشند ، يك سرويس دهنده وب مي تواند به هزاران درخواست با كارآئي مطلوب پاسخ دهد .
در صورتي كه لازم است اطلاعات بين چندين عمليات كاربر نگهداري شوند ، مي بايست از راهكارهاي مختلفي به منظور مديريت stateاستفاده كرد .
View state
همانگونه كه اطلاع داريد كنترل هاي سرويس دهنده ASP.NETاز viewstateبراي بخاطر سپردن stateاستفاده مي نمايند . اطلاعات view stateدر يك فيلد مخفي نگهداري شده و بطور اتوماتيك پس از هر postbackبراي سرويس دهنده ارسال مي گردد . view stateمحدود به كنترل هاي سرويس دهنده نمي گردد و در صورت ضرورت مي توان مجموعه اي از اطلاعات مورد نياز را مستقيما" در مجموعه view stateذخيره تا امكان بازيابي آنها پس از هر postbackفراهم شود . نوع هاي مختلفي را مي توان در view stateذخيره نمود . نوع هاي داده ساده و اشياء سفارشي نمونه هائي در اين زمينه مي باشند .
خصلت ViewStateصفحه، مجموعه view stateرا ارائه مي نمايد . اين خصلت يك نمونه از كلاس مجموعه StateBagاست .براي اضافه كردن و حذف آيتم هائي در اين كلاس ، از گرامري  مشابه با يك ديكشنري استفاده مي گردد  كه در آن هر آيتم داراي يك نام منحصر بفرد  است .
كد زير نحوه استفاده از view stateرا نشان مي دهد .


 ViewState("Counter") = 1
Add Comments
Name:
Email:
User Comments:
SecurityCode: Captcha ImageChange Image