State Management در ASP. NET 2.0 (بخش پاياني)
آنچه تاكنون گفته شده است :
بخش اول |
مفاهيم اوليه |
: |
ضرورت مديريت state در برنامه هاي وب |
بخش دوم |
view state |
: |
نحوه ايمن سازي اطلاعات ذخيره شده در view state |
بخش سوم |
view state |
: |
نحوه نگهداري Member Variables و اشياء سفارشي |
بخش چهارم |
cross-page posting |
: |
انتقال اطلاعات از يك صفحه به صفحه اي ديگر |
بخش پنجم |
cross-page posting |
: |
نحوه دريافت اطلاعات از صفحه مبداء |
بخش ششم |
Query String |
: |
نحوه انتقال اطلاعات بين صفحات |
بخش هفتم |
كوكي هاي سفارشي |
: |
نحوه عملكرد كوكي هاي سفارشي |
بخش هشتم |
Session State |
: |
مفاهيم و معماري session |
بخش نهم |
Session State |
: |
نحوه استفاده از session state |
بخش دهم |
Session State |
: |
پيكربندي session در برنامه هاي وب |
بخش يازدهم |
Session State |
: |
پيكربندي session در برنامه هاي وب |
بخش دوازدهم |
application state |
: |
آشنائي با application state |
در اين بخش به جمع بندي دوازده مقاله منتشر شده در خصوص state management خواهيم پرداخت .
state management ، فرآيندي است كه به كمك آن مي توان اطلاعاتي را بين درخواست هاي متعدد ، نگهداري كرد . اطلاعات فوق معمولا" شامل دو دسته مي باشند :
-
اطلاعات در ارتباط با يك كاربر : نظير ليست كالاهاي موجود در يك سبد خريد ، نام كاربر و يا يك سطح دستيابي خاص
-
اطلاعات قابل استفاده در تمامي برنامه : نظير آمارهائي كه فعاليت هائي خاص از يك سايت را ثبت مي نمايد .
با توجه به اين كه ASP.NET از يك معماري disconnected استفاده مي نمايد ، لازم است كه با هر درخواست اطلاعات state ذخيره و آنها را در زمان مورد نياز بازيابي كرد .
استراتژي انتخاب شده براي ذخيره سازي state مي تواند بطرز كاملا" محسوسي بر روي پارامترهائي نظير كارآئي ، قابليت گسترش و امنيت يك برنامه وب تاثيرگذار باشد .
از اطلاعات مندرج در جدول زير مي توان به منظور بررسي روش هاي مختلف مديريت state و انتخاب گزينه اي مطلوب كه پاسخگوي نياز يك برنامه است ، استفاده كرد .
Application State |
Session State |
Custom Cookies |
Query String |
View State |
ويژگي |
تمامي نوع هاي داده دات نت |
تمامي نوع هاي داده دات نت |
داده از نوع رشته |
حجم محدودي داده از نوع رشته |
تمامي نوع هاي داده دات نت با قابليت سريال شدن |
نوع هاي داده قابل استفاده |
حافظه سرويس دهنده |
حافظه سرويس دهنده |
كامپيوتر سرويس گيرنده ( در حافظه و يا يك فايل متن كوچك با توجه به تنظيمات انجام شده ) |
در رشته URL مرورگر |
يك فيلد مخفي در صفحه وب جاري |
مكان ذخيره سازي |
قابل استفاده در مدت زمان حيات برنامه ( معمولا" تا زماني كه سرويس دهنده راه اندازي مجدد نگردد ) |
پس از گذشت يك زمان مشخص از بين مي روند . ( معمولا" 20 دقيقه ولي مي توان آن را بطور دستي و يا از طريق كد تغيير داد ) |
وابسته به تنظيمات برنامه نويس ( امكان استفاده در چندين صفحه و نگهداري بين چندين ملاقات وجود دارد ) |
حذف پس از درج يك URL جديد و يا بستن مرورگر توسط كاربر |
نگهداري دائم براي post back به يك صفحه |
طول عمر |
تمامي برنامه ASP.NET ( برخلاف ساير روش ها ، داده برنامه براي تمامي كاربران سراسري است ) |
تمامي برنامه ASP.NET |
تمامي برنامه ASP.NET |
محدود به صفحه مقصد |
محدود به صفحه جاري |
حوزه دستيابي |
ايمني بالائي دارند چون هرگز داده براي سرويس گيرنده ارسال نمي گردد |
ايمني بالائي دارند چون هرگز داده براي سرويس گيرنده ارسال نمي گردد |
غيرايمن بوده و امكان تغيير آنها توسط كاربران وجود دارد . |
قابل مشاهده بوده و كاربران مي توانند به سادگي آنها را تغيير دهند . |
به صورت پيش فرض مقاوم در مقابل تغييرات مي باشند ولي امكان خواندن آنها وجود دارد . با استفاده از دايركتيو صفحه مي توان بر رمزنگاري آنها تاكيد كرد . |
امنيت |
پائين ، زماني كه حجم بالائي از اطلاعات ذخيره شده باشد چراكه داده هرگز حذف و يا عمرمفيد آن به اتمام نخواهد رسيد |
پائين ، در صورت ذخيره حجم بالائي از اطلاعات خصوصا" اگر در هر لحظه تعداد زيادي كاربر از برنامه استفاده نمايند. چراكه هر كاربر داراي يك نسخه جداگانه از داده session خواهد بود |
تاثير ندارد ، چراكه حجم داده ناچيز است |
تاثير ندارد ، چراكه حجم داده ناچيز است |
پائين ، در صورت ذخيره حجم بالائي از اطلاعات ولي بر روي كارآئي سرويس دهنده تاثير نمي گذارد |
كارآئي |
ذخيره هر نوع داده سراسري |
ذخيره آيتم هائي در يك سبد خريد |
اطلاعات شخصي براي يك وب سايت |
ارسال شناسه يك محصول از صفحه نمايش دهنده كليات به صفحه نمايش دهنده جزئيات |
تنظيمات مرتبط با صفحه |
متداولترين موارد استفاده |
جدول 1 : مقايسه روش هاي مختلف state management
برگرفته از سايت سخا روش