View State एक Dictionary Structure है, जिसका प्रयोग ASP.NET द्वारा Postback के दौरान Webpage के विभिन्न Child Controls की State को Preserve रखने के लिए किया जाता है। पिछले Section में Discuss किए गए ASP.NET के Postback Model को Implement करने में View State एक बहुत ही महत्वपूर्ण Role Play करता है। क्योंकि बिना View State को Use किए हुए ASP.NET Web Applications में Stateful-ness सम्भव ही नहीं है, जैसाकि पिछले Section में Discuss किया गया है।
ASP.NET से पहले VBScript Based Classic ASP का प्रयोग करते हुए Web Development करने वाले Web-Developers सामान्यत: Stateful-ness को Manage करने के लिए Hidden Fields का प्रयोग करते थे ताकि Successive HTTP-Requests के Across Webpage के विभिन्न Web Controls की State को Maintain किया जा सके।
ये Approach उस समय और भी ज्यादा महत्वपूर्ण हो जाता था, जब एक ही Webpage पर एक से ज्यादा <form> Element को Use किया जाता था। इसलिए किस <form> Element के साथ Associated Submit Button को Click करते हुए Web Form को Submit किया गया है, इस बात का पता लगाने के लिए Hidden Fields को Use करना जरूरी भी होता था, जिसके अन्तर्गत प्रत्येक <form> Element में एक Hidden Field होता था, जिसे Page Rendering के दौरान Programmatically Initialize कर दिया जाता था।
View State इसी Approach का एक ज्यादा बेहतर तरीके से Extend किया गया Version है। जिसके अन्तर्गत View State एक Unique व Encoded तरीके का Hidden Field होता है, जो कि किसी ASP.NET Page के किसी WebForm के विभिन्न Controls की Values को एक Dictionary Object के रूप में Store करता है।
Default रूप से प्रत्येक Page Control अपने Page की Entire State यानी प्रत्येक Control की प्रत्येक Property Value को View State में Save करता है। किसी Average Size के Page में View State कुछ KB का Extra Data Hold करता है। ये Data प्रत्येक User Request के दौरान Client Web Browser में Download होता है और Server पर Upload होता है। यानी ViewState Object, Client व Server के बीच State-Transmission के लिए Carrier की तरह Use होता है।
हालांकि इस View State को न तो Client Side में Use किया जाता है, न ही Use किया जाना चाहिए, लेकिन फिर भी Stateless Protocol आधारित Web Application में Statefulness को Simulate करने के लिए प्रत्येक Request–Response Cycle में Client-Server के बीच Flow होने वाला ये एक Extra Data होता है।
यानी Client Web Browser, Current Webpage के विभिन्न Web Controls की States को View State के माध्यम से ही Web Server पर Send करता है और Web Server, फिर से Web Browser को Response के रूप में Resultant Webpage Send करने से पहले उसके विभिन्न Web Controls को फिर से पिछली State Values या नई Modified Values से Fill करने के लिए इस View State को ही Reuse करता है तथा इस Dynamically Generated Response Webpage के विभिन्न Web Controls की State को अगली Request में फिर से Retrieve करने के लिए View State को Response Page के साथ एक Hidden Field के रूप में फिर से Client Web Browser पर Resend कर देता है।
ये प्रक्रिया प्रत्येक Request-Response Cycle में Circular रूप से Follow होती है जिसके परिणामस्वरूप एक Web Developer के रूप में हमें HTTP जैसे Stateless Protocol पर आधारित एक ASP.NET Web Application में Stateful-ness का Feeling या Simulation प्राप्त होता है।
ASP.NET के पहले Version में View State को जिस तरह के काम के लिए Develop किया गया था, ये आज भी वही काम कर रहा है। जबकि बाद के सभी Versions में केवल View State की Size को Minimize करने के लिए ही विभिन्न प्रकार के Modifications किए गए हैं, ताकि Client व Server के बीच Stateful-ness को Manage करने के लिए कम से कम Data Transfer हो।
लेकिन समय के साथ नई Devices (Tablet, Smart Phones, NetBooks, PDA, etc…)के विकास के साथ ही Modern Web Applications में फिर से इसकी Size बढने लगी थी, क्योंकि लोगों की जरूरतें बदलने की वजह से RIA (Rich Internet Applications) Develop किए जाने लगे थे और इस प्रकार के Applications में State को Manage करने के लिए Client-Server के बीच View State में फिर से काफी ज्यादा मात्रा में Data Transfer होने लगा था।
हालांकि हम अभी भी ऐसे ASP.NET Webpages Create कर सकते थे, जो कि View State का कम से कम उपयोग करता हो, लेकिन फिर भी ASP.NET अपने Fundamental Concept के अनुसार Client व Server के बीच State Management करने के लिए View State के माध्यम से कुछ न कुछ Data तो Transfer करता ही था।
यानी एक ASP.NET WebForms आधारित Web Application में हम किसी भी स्थिति में View State Concept को पूरी तरह से समाप्त नहीं कर सकते थे क्योंकि बिना View State Concept को Use किए हुए WebForms आधारित Web Applications में State Management सम्भव ही नहीं था और View State को किसी ASP.NET Application से पूरी तरह से Eliminate करने के लिए ASP.NET Platform को पूरी तरह से Redesign करना जरूरी था।
इसलिए ASP.NET 4 में एक नया Feature Add किया गया, जो कि Developers को और अधिक ऐसे Web Controls Provide करता है, जो कि View State की Size को कम से कम रखता है लेकिन Page की Functionality को किसी भी तरह से प्रभावित नहीं करता। (ASP.NET ViewState)
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Core ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Core ASP.NET WebForms in Hindi | Page:647 | Format: PDF