در این مقاله به مبحث State management پرداخته شده است، این بحث نیاز حیاتی برای برنامه نویسان وب که با تکنولوژی ASP.NET برنامه نویسی می کنند می باشد. اهمیت این موضوع به دلیل وجود راه های متفاوت برای مدیریتState در تکنولوژی ASP.NET می باشد. در این مقاله سعی بر این است تا این راه های متفاوت را مورد بحث قرار داده و و نقاط قوت و ضعف این راه ها را ارئه میکنیم. شاید کمکی باشد برای برنامه نویسان ایرانی تا برنامه های کاربردی بهتری را در محیط وب توسعه دهند.
پیش درآمد موضوع
همان طور که میدانید، HTTP یک پروتوکل State less است به این معنی که هیچ وضعیتی را بعد از انجام درخواست نگه داری نمی کند. به عبارت دیگر زمانی که کاربران درخواستی را به سرور ارسال میکنند سرور مطابق با نیاز های پاسخگویی منابعی مانند بخشی از حافظه، پردازشگر و غیره ... را به آن اختصاص داده و پس از پاسخ گویی کامل تمامی این منابع را آزاد میکند. این بحث برای برنامه نویسانی که تنها تجربه برنامه نویسی با Windows را دارند مطلبی جالب و تا حدی عجیب است.
اگر قصد پیگیری اطلاعات کاربر در بین صفحات مختلف که توسط او دیده شده است و یا حتی اطلاعات مشاهده یک صفحه توسط کاربران مختلف داشته باشیم. در این حالت نیاز است که از تکنولوژی State management که در ASP.NET وجود دارد استفاده شود.تکنولوژی State management پردازشی است که در ASP.NET به برنامه نویسان این امکان را میدهد تا وضعیت صفحات و اطلاعات موجود در درخواست ها و صفحات مختلف را مدیریت کنند.
انواع State management
دو نوع کلی در State management وجود دارد:
Client Sate Management
Server Sate Management
هنگامی که از حالت اول یعنی Client Sate management استفاده میشود به این معنی است که تمامی وضعیت ها و اطلاعات در سمت Client ،که از این پس در این مقاله به آن مشتری گفته میشود، ذخیره میگردد. در این حالت اطلاعات دائماٌ بین سرور و مشتری در سفر است.
سود مندی :
این حالت کمک میکند تا بار زیادی از مسئولیت مدیریت داده ها از دوش سرور برداشته شود، و فضای زیادی از حافظه سرور حفظ شود.
نقطه ضعف:
حجم زیادی از پهنای باند را اشغال کرده و کارای برنامه در زمانی که تعداد مشتری ها زیاد میشود به شدت کاهش پیدا میکند. علاوه بر این ضعف بزرگتری در این روش احساس می شود که آن هم امنیت اطلاعات می باشد، زیرا در این حالت اطلاعات به راحتی در اختیار کسانی که در میان این مسیر هستند قرار میگیرد. در نتیجه این راه حل به هیج عنوان برای ذخیره رمز عبور، شماره کارت های اعتباری، اطلاعات مالی و ... راه حل مناسبی نخواهد بود.
در نقطه مقابل ،حالت Server State Management تمامی اطلاعات را در سمت سرور ذخیره میکند.
سودمندی:
همان طور که اشاره شد سودمندی این حالت در امن نگاه داشتن داده های حساس می باشد.
نقطه ضعف:
در این حالت حجم زیادی از حافظه سرور مورد استفاده میشود.
هیچ برنامه نویسی نمیتواند بگوید که در بنامه کاربردی خود از هیچ کدام از این ها استفاده نمیکند. در آینده میبینیم که بنا به حجم اطلاعات و شرایط برنامه از ترکیبی از این دو حالت استفاده میشود. اما لازم است تا ابتدا به راه های مختلف موجود در هر کدام از این حالات بپردازیم.
Client Side State Management
View State
Control State
Hidden Field
Cookies
Query String
Server Side State management
Application State
Session State
برای یادگیری مدیریت حالت در ASP.NET این مقاله را از لینک زیر دانلود کنید:
دانلود مقاله