कीवर्डहरू -

एएसपी डटनेटमा भ्यु स्टेटको चर्चा

एएसपी डटनेटमा भ्यु स्टेटको चर्चा

CTO at BRAINDIGIT | MVP (Visual Studio and Development Technologies) at Microsoft Most Valuable Professional


View State भन्नाले ASP.NET पेज बनोटले उपयोग गर्ने एक विधि हो जसका मद्धतले पेजलाई प्रिजर्भ र राउन्ड ट्रिप्सका बीचमा कुनैपनि Data कन्ट्रोल गरिन्छ ।

कुनैपनि पेजलाई HTML मार्कअप गरिएपछि, सम्झिनु पर्ने पेजको अवस्था र Data लाई ६४ वटा base encoded strings मा सुचिबद्ध गरिन्छ । त्यस पछि यसै सुचनालाई View State hidden field का रुपमा राखिन्छ ।

पेज सर्भमा पोस्ट हुँदा हरेक पटक त्यस पेजको एक नायाँ वेब पेज क्लास बन्दछ । परम्परागत वेब प्रोग्रामिङ अनुसार यसो हुँदा पेजमा भएका information र control हरू हरेक राउन्ड ट्रिपमा हराउँछन् ।

उदाहरण स्वरुप: कुनैपनि टेक्स्ट बक्समा राखिएको information ब्राउजर वा क्लाइन्ट डिभाइस बाट सर्भरमा पुग्दा ति information यस राउन्ड ट्रिपमा हराउने गर्दछन् ।

परम्परागत वेब प्रोग्रामिङको यहि असहजतालाई हटउन ASP.NET ले तपाइको डाटा बचाउनका लागि विभिन्न options हरू उपलब्ध गराउँछ जसद्धारा तपाइँको डाटा पेज वा application अनुसार हराउनबाट बचाइन्छ । ति विशेषताहरू निम्न लिखित छन्

1.    View state
2.    Control state
3.    Hidden fields
4.    Cookies
5.    Query strings
6.    Application state
7.    Session state
8.    Profile Properties

View state, control state, hidden fields, cookies र query strings ले विभिन्न तरिकाले डाटालाई क्लाइन्टमा राख्दछन् भने application state, session state र profile properties ले डाटालाई सर्भरको मेमोरिमा बाचइ राख्दछन् । विभिन्न अवस्थामा यि सबै विषेशताहरूका आ आफ्नै फाइदाहरू तथा बेफाइदाहरू छन् ।

1.    Client-Based State Management Options

तल State Management का विभिन्न options हरू, जसमा information लाई पेज वा क्लाइन्ट कम्प्युटरमा सुरक्षित राखिन्छ, त्यसका बारेमा चर्चा गरिएको छ । यस प्रक्रियामा कुनैपनि information लाइ राउन्ड ट्रिपका वेलामा सर्भरमा राखिन्न ।
View State
यस View State विशेषताले एक यस्तो dictionary object को उपयोग गर्दछ जसका मद्धतले एकै पेजका लागि पटक–पटक आग्रह आउँदा पनि डाटा बचाएर रखिएको हुन्छ । यसरी यस View State विशेषताले कुनैपनि राउन्ड ट्रिपहुँदा चाहिने पेज वा property बचाउँछ ।

पेज प्रोसेस हुँदा पेजको हालको अवस्था वा कन्ट्रोललाई एक स्ट्रिङमा hash गरिन्छ र पेजमा एक hidden file को रूपमा राखिन्छ । र यदि ViewState property मा रहेको डाटा MaxPageStateFieldLength मा उल्लेख गरिएको भन्दा बढि मात्राको भएमा, त्यसलाई धेरै hidden fields का रूपमा राखिन्छ ।

त्यसै पेजलाई सर्भरमा फेरि पोस्ट गर्दा त्यस पेजले page initialization हुँदा view-state string लाई parse गर्छ र पेजमा रहेको property information लाई स्थापित गर्दछ ।

Control State

कुनैपनि कन्ट्रोलले सहि काम गरोस् भन्नकालागि कहिलेकाहिँ हामिले control-state डाटालाई स्टोर गरेर रान्नुपर्ने हुन्छ । उदाहरणस्वरूप, यदि हामिले कुनै } custom control बनाएका छौं जसको विभिन्न tab ले विभिन्न information दिन्छन् भने त्यस कन्ट्रोलले राम्रो काम गरोस भन्नका लागि कन्ट्रोलले जान्नु पर्ने हुन्छ कि राउन्ड ट्रिप हुँदा  कुन tab रोजिएको थियो ।

ViewState property पनि यस कामका लागि प्रयोग गर्न सकिन्छ तर ViewState लाई डिभेलपर्सले पेजका लेभलमा बन्द गर्न पनि सक्छन् । यसो गर्दा कन्ट्रोल तोडिन्छ । यसको निवारणका लागि ASP.NET page framework ले नयाँ विशेषता थपेको छ जुन हो control state.

Hidden Fields

ASP.NET का मद्धतले कुनैपनि इन्फर्मेसन स्टोर गर्दा HTML hidden field का रूपमा HiddenField control मा बाचाई राख्न सकिन्छ ।

यस HiddenField ब्राउजरमा देखिँदैन तर यसको प्रोपर्टिजलाई कुनैपनि कन्ट्रोलका मद्धतले मिलाउन सकिन्छ । कुनै पेजलाई सर्भरमा पठाउँदा HiddenField मा रहेका कन्टेन्ट र अरू कन्ट्रोलका मानलाई HTTP form collection मा पठाइन्छ । कुनैपनि पेजमा रहेका सूचनाका लागि HiddenField एक भण्डारको काम गर्दछ ।

खराब प्रवृतिका युजरले पेजका HiddenField मा रहेका सूचना फेर्न पनि सक्छन् । त्यसैले कुनैपनि संवेदनशील कुराहरु HiddenField मा नराख्दा नै राम्रो हुन्छ ।

Cookies

थोरै मात्राको डाटा जुन टेक्स्ट फाइलका रूपमा क्लाइन्टको फाइल सिस्टममा वा क्लाइन्ट ब्राउजर को मेमोरिमा रखिन्छ तिनलाई कुकि भनिन्छ ।

यस भित्र साइट सम्बन्धि जानकारी पाइन्छ जुन सर्भरले क्लाइन्टलाई पेज आउटपुट सँगै पठाउँछ । कुकिज अस्थायी (समाप्ति मिती र समय जनाइएको) वा थायी हुन सक्छन् ।

हामीले कुकीको प्रयोग कुनैपनि क्लाइन्ट, सेसन वा एप्लिकेसनका जानकारीहरू भण्डार का लागि गर्न सक्छौं । कुकीहरू क्लाइन्ट डिभाइसमा रहन्छन् र जब कुनै ब्राउजरले पेजको अनुरोध गर्दछ, क्लाइन्टले त्यो इन्फर्मेसन र अनुरोध कुकीलाई पठाउँछ । सर्भरले त्यस कुकीलाइ पढेर त्यसका मानहरू निकाल्न सक्छ ।

Query Strings

URL पेजको अन्तमा जोडिएका सुचनालाई query string भनिन्छ । सामान्य query string तल उदाहरणमा दिइए जस्तै हुन्छ:
http://www.domain.com/listwidgets.aspx?category=basic&price=100
माथिको URL मा query string प्रश्न चिह्न (?) बाट सुरु भई दुई वटा मान जोडि सम्मीतिल हुन्छन् । एउटा "category" अनि अर्को "price."

2.    Server-Based State Management Options

ASP.NET ले विभिन्न तरिकाहरू प्रदान गर्दछ जसद्धारा साइटको सूचनाहरू क्लाइन्टमा नभई सर्भरमा राखिन्छन् । Server-Based State Management का मद्धतले क्लाइन्टलाई पठाइने सूचनामा कमि ल्याउन सकिन्छ, तर यसले सर्भरमा महँगो श्रोतको उपयोग गर्न गक्दछ ।

तल तीन वटा Server-Based State Management विशेषताहरूको विस्तारमा चर्चा गरिएको छ ः M application state, session state, and profile properties

Application State

ASP.NET भित्र application state का मद्धतले भ्यालुहरू सुरक्षित गर्न सकिन्छ । application state एक विश्वव्यापि storage mechanism हो जुन वेब एप्लिकेसनका सबै पेजहरूको पहुँचमा रहेका हुन्छन् ।

त्यसैले application state को उपयोगिता त्यस्ता सूचनाहरू संकलन गर्नका लागि गरिन्छ जुन सर्भरका राउन्ड ट्रिप र पेजहरूको अनुरोधका बीचमा पनि मिलाउन सकियोस ।

Session State

ASP.NET भित्र session state का मद्धतले भ्यालुहरू सेभ गर्न सकिन्छ – जुन HttpSessionState को एक उदाहरण हो । session state र application state मिल्दाजुल्दा छन् तर एक मात्र भिन्नता session state हालको ब्राउजर सेसनमा मात्र भर पर्नुमा रहेको छ ।

यदि विभिन्न प्रयोग कर्ताले तपाइँको एप्लिकेसन प्रयोग गरिरहेको भए, सबै प्रयोग कर्ताहरूको आ आफ्नो session state हुन्छ ।  त्यस बाहेक, यदि एक प्रयोग कर्ताले तपाइँको एप्लिकेसन छोड्छ र पछि फेरि फर्किन्छ भने एक नयाँ र भिन्दै session state बन्दछ । session state को बनावट key/value dictionary को स्वरुपमा गरिन्छ ।

र यसको उपयोगिता सेसनको सुचनाहरू सर्भर राउन्ड ट्रिप र पेजको अनुरोधका बीचमा पनि सुरक्षित राख्नमा रहेको हुन्छ ।

निम्न लिखित कार्यहरु सफलतापुर्वक पुर्ण गर्नका लागि session state को प्रयोग गर्न सकिन्छ ।

१. ब्राउजर वा client-device अनुरोधलाई पहिचान गरेर सर्भरमा रहेका एकल कभककष्यल session instance सँग मेल गराउन

२. सेसन अनुसारका डाटा सर्भरमा राख्न र सो डाटा विभिन्न ब्राउजर वा client-device को अनुरोधमा उपलब्ध गराउन

३. उचित session management events को निर्माण गर्ने । त्यस बाहेक, यसद्धारा तपाइँले एप्लिकेसन कोड लेख्न पनि सक्नुहुन्छ ।

Profile Properties

ASP.NET को एक थप विशेषतो profile properties हो । यसले प्रयोगकर्ता अनुसार डाटाहरू भण्डार गर्दछ । यो विशेषता session state सँग मिल्दो छ – मात्र यसमा प्रोफाइलको डाटा  प्रयोगकर्ताको session समाप्त हुँदा हराउँदैन ।

यस profile properties ले ASP.NET प्रोफाइलको प्रयोग गर्दछ जुन स्थायी रूपमा रहन्छ र हरेक प्रयोग कर्तासँग मिल्दछ । यस ASP.NET profile ले प्रयोग कर्ताको सूचनालाई सजिलै व्यवस्थापन गर्नमा मद्धत पुर्याउँछ ।

त्यस बाहेक, यस profile ले प्रयोग कर्तालाई सूचनाहरू strongly typed API का रूपमा सजिलै उपलब्ध गराउँछ जसलाई हामीले कहिँबाट पनि हेर्न सक्छौं । कुनै पनि प्रकारको चिजलाई हामी profile मा भण्डार गर्न सक्छौं ।

यस ASP.NET profile विशेषताले हामीलाई एक त्यस्तो generic storage system प्रदान गर्दछ जसका मद्धतले हामी कुनैपनि डाटा बनाउन वा मिलाउन सक्छौं ।

साथै त्यस डाटालाई सुरक्षित रूपमा उपलब्ध गराउन पनि सकिन्छ । Profile properties को प्रयो गर्नका लागि पहिला एउटा profile provider लाई configure गर्नु जरुरी छ । ASP.NET भित्र SqlProfileProvider रहेको हुन्छ जसको मद्धतले प्रोफाइल डाटा SQL डाटाबेसमा भण्डार गर्न सकिन्छ ।

तर तपाइँ आफैले नयाँ profile provider class पनि बनाउन सक्नुहुन्छ जसले डेटालाई custom formatमा custom storage mechanism जस्तै XML file वा वेब सर्भिसमा स्टोर गर्दछ ।

Profile properties मा राखिएका डाटा एप्लिकेसनको मेमोरीमा भण्डार नहुने कारणले यसलाई Internet Information Services (IIS) restarts वा worker-process restarts मा डाटा नहराउने तरिकाले राखिन्छ । त्यस बाहेक profile properties लाई विभिन्न प्रोसेसहरू सँग उपलब्ध गराइन्छ जस्तै वेब फार्म वा वेब गार्डेन ।

ASP.NET सिरिजको यो अन्तिम लेख हो । साथै 'डट नेट गाइड' को डिजिटल कपी खरिद गर्न चाहनु हुन्छ भने यहाँ क्लिक गर्नुहोस् ।