Showing posts with label ASP.NET. Show all posts
Showing posts with label ASP.NET. Show all posts

Tuesday, March 14, 2023

ASP.NET Theme in Hindi

 इस ट्यूटोरियल में हम ASP.NET Theme के बारे में समझेंगे 


Theme और मास्टर पेज में अंतर होता है।

मास्टर पेज की सहायता से जहां एक ओर एक ही तरह के कंटेंट को अनेकानेक वेबपेज पर शेयर/ सांझा किया जाता है वहीं दूसरी ओर थीम का उपयोग करके किसी भी कंटेंट के अपीरियंस को प्रभावित किया जाता है। कंटेंट के अपीरियंस से अभिप्राय उसके फॉन्ट, बैककलर, बॉर्डर कलर, बॉर्डर साइज इत्यादि से है।


माइक्रोसॉफ्ट के अनुसार

ASP.NET themes are a collection of properties that define the appearance of pages and controls in your Web site. A theme can include skin files, which define property settings for ASP.NET Web server controls, and can also include cascading style sheet files (.css files) and graphics. By applying a theme, you can give the pages in your Web site a consistent appearance.


Theme और Skin File

Theme अप्लाई करने के लिए स्किन फाइल को क्रिएट करना पड़ता है। स्किन फाइल का एक्सटेंशन .skin होता है और इसका उपयोग थीम को क्रिएट करने के लिए किया जाता है।


ASP.NET के अंतर्गत Theme का यूज़ किसी भी कंट्रोल के अपीयरेंस को प्रभावित करने के लिए किया जाता है। उदाहरण के लिए, मान लीजिए, किसी फॉर्म में कई सारे टेक्सटबॉक्स है और आप चाहते हैं कि उन सभी टेक्सटबॉक्स के बैककलर पीला रंग का हो और उनका बॉर्डर डॉटेड लाइन का हो तो ऐसा करने के लिए हम Theme का उपयोग कर सकते हैं। ASP.NET के भीतर Theme उस पेज पर उपलब्ध सारे टेक्स्ट बॉक्स का बैककलर पीला कर देगा और उसके बॉर्डर को डॉटेड लाइन का बना देगा। 


ध्यातव्य है कि Theme के यूज से कंट्रोल का कॉन्टेंट प्रभावित नहीं होता है।


Creating Theme

अब सवाल है कि ASP.NET के अंतर्गत Theme कैसे बनाते हैं? 


ASP.NET के अंतर्गत Theme का अभिप्राय एक स्पेशल फोल्डर से है जिसके भीतर CSS और स्किन फाइल्स रखे जाते हैं। Theme से जुड़े हुए CSS और स्किन फाइल्स को एक स्पेशल फोल्डर के भीतर रखते हैं जिसे App_Theme करते हैं। जिस प्रकार App_Data नाम का एक स्पेशल फोल्डर होता है जिसमें हम डाटाबेस से जुड़े हुए फाइल रखते हैं, ठीक उसी तरह Theme से संबंधित जितने भी फाइल्स होते हैं उन सभी फाइल्स को App_Theme फोल्डर के भीतर रखते हैं। यह फोल्डर एप्लिकेशन के रूट में स्थित होता है। Theme का अभिप्राय वेबपेज के Page डिरेक्टिव के एटट्रिब्यूट से भी है जिसको हम आगे देखेंगे।


ASP.NET के अंतर्गत Theme के लिए एक .skin एक्सटेंशन पेज होता है जिसमें हम जिस कंट्रोल के अपीयरेंस को चेंज करना चाहते हैं उसकी प्रॉपर्टी और वैल्यू को स्किन पेज के भीतर दे देते हैं। बस यह ध्यान रखना है कि हम वहां पर कंट्रोल की आईडी प्रॉपर्टी का यूज नहीं करते हैं। आईडी प्रॉपर्टी के अलावा जो भी अपीरियंस से जुड़े हुए कंट्रोल के प्रॉपर्टीज हैं उन सबको हम उनके वैल्यूज के साथ लिख देते हैं और उस फाइल को सेव कर देते हैं। उदाहरण के लिए, Simple/TextBox.skin फ़ाइल के भीतर की कोडिंग निम्नलिखित है

<asp: TextBox BackColor= "Yellow" BorderStyle= "Dotted" />


Adding Skin to Theme

ASP.NET के किसी वेब फॉर्म के भीतर Theme को यूज करने के लिए हमें उस पेज के Page डायरेक्टिव के भीतर Theme एटट्रिब्यूट देना होता है। उदाहरण के लिए,

<%@ Page Language="VB" Theme="Simple" Runat="server" %>


ध्यातव्य है कि Theme का वैल्यू App_Theme फोल्डर के भीतर स्थित फोल्डर होता है जिसमें स्किन और CSS फाइल्स रखे हुए हैं।


इसके द्वारा यह पता चल जाता है कि किस Theme को वेबपेज पर यूज करना है। थीम को अनुप्रयोग करने के लिए App_Theme फोल्डर के भीतर उस स्किन फाइल का सर्च होता है जिसका रिफरेंस डायरेक्टिव के भीतर कि Theme एट्रिब्यूट के साथ दिया हुआ होता है।


आप चाहे तो एक ही स्किन फाइल बना ले और उसमें जितने भी कंट्रोल की चाहे उनकी प्रॉपर्टीज वैल्यूज को डिफाइन कर दे अथवा ऐसा भी हम कर सकते हैं कि हम अलग-अलग स्किन फाइल बना ले और उन फाइल में हम अलग-अलग कंट्रोल्स के लिए Theme बना ले।


Creating Named Skin

ऊपर जो उदाहरण दिया गया है उसमें स्किन फाइल एक डिफॉल्ट स्किन फाइल है। जब इस फाइल के थीम को किसी वेबपेज पर अप्लाई किया जाता है तो यह वेब पेज के सारे टेक्स्ट बॉक्स को प्रभावित करेगा। 

डिफॉल्ट स्किन फाइल में SkinID एटट्रिब्यूट का उपयोग कंट्रोल के साथ नहीं किया जाता है।


ऐसा भी हो सकता है कि आप चाहते हो कि आपके वेबपेज के कुछ ही टेक्सटबॉक्स पर आपका थीम अप्लाई हो तो इसके लिए आपको Named Skin फाइल को बनाना होगा। इस फाइल के भीतर जिस कंट्रोल की भी हम स्किन बना रहे हैं उसके साथ एक SkinID प्रॉपर्टी भी देनी पड़ती है। स्किन आईडी प्रॉपर्टी एक यूनिक वैल्यू एक्सेप्ट करता है और जब आप वेब पेज के भीतर किसी कंट्रोल के ऊपर स्किन अप्लाई करना चाहते हैं तो उस कंट्रोल के स्किन आईडी प्रॉपर्टी में इसी यूनीक वैल्यू को यूज करते हुए आप उस टेक्सटबॉक्स पर या कंट्रोल पर थीम अप्लाई कर सकते हैं।

उदाहरण के लिए, आप स्किन फ़ाइल में टेक्सटबॉक्स के लिए दो तरह का स्किन बनाते हैं १) डिफॉल्ट स्किन २) नेम्ड स्किन

उदाहरण के लिए, Simple2/TextBox.skin फ़ाइल के भीतर की कोडिंग निम्नलिखित है

<asp: TextBox SkinID="DashedTextBox" BackColor= "Yellow" BorderStyle= "Dashed" />

<asp: TextBox BackColor= "Yellow" BorderStyle= "Dotted" />


<%@ Page Language="VB" Theme="Simple2" Runat="server" %>

<head>Learn Theme</head>

<html>

<body>

<asp: TextBox id ="txtBox1" SkinID="DashedTextBox" Runat = "server" />

<asp: TextBox id="txtBox2"  Runat = "server" />


</body>

</html>


Theme vs StyleSheetTheme


जैसा कि हमने देखा कि पेज डायरेक्टिव के भीतर Theme एटट्रिब्यूट यूज करके हम किसी भी वेबपेज के भीतर किसी Theme को अप्लाई कर सकते हैं। अगर एक ही तरह के Theme को कई सारे वेब पेज पर अप्लाई करना हो तो यह कठिन कार्य होगा क्योंकि तब प्रत्येक पेज के पेज डायरेक्ट के भीतर Theme को लिखना पड़ेगा और अगर इसमें किसी प्रकार का परिवर्तन करना होगा तो हमें प्रत्येक पेज पर जाकर उस Theme को परिवर्तित करना होगा। 


इस तरह की समस्या से बचने के लिए हम ऐसे Theme जिसका यूज़ सारे वेबपेजेस पर करना है, उसको वेब कंफीग्रेशन फाइल के भीतर डिफाइन कर देते हैं। 


<pages theme="ThemeFileName" > 


टैग के भीतर Theme एटट्रिब्यूट यूज किया जाता है और उसमें Theme फाइल का नाम वैल्यू के रूप में दिया जाता है जिसका उपयोग हमें अपने एप्लीकेशन के विभिन्न पेज पर यूज करना है।


Global Theme


ASP.NET के अंतर्गत अगर एक ही वेबसर्वर के भीतर कई सारे वेब एप्लीकेशन रन हो रहे हो और हम चाहते हैं कि उन सभी में पब्लिकेशन के ऊपर एक समान Theme यूज हो तो इसके लिए हमें ग्लोबल Theme का उपयोग करना होता है। 


कई बार किसी कंपनी की वेबसाइट के भीतर में समान रूप से एक जैसा थीम प्रदान करना होता है। इसके लिए हम ग्लोबल Theme यूज करते हैं। ग्लोबल Theme का यूज करने के लिए हमें अपने Theme को निम्नलिखित डायरेक्टरी के अंदर रखना पड़ता है


इसी तरह अगर आपका वेबसाइट HTTP आधारित वेब एप्लीकेशन है तो उसके लिए आपको निम्नलिखित डायरेक्टरी के भीतर अपने Theme के फोल्डर को कॉपी करके रखना पड़ता है

© अजीत कुमार, सर्वाधिकार सुरक्षित।

इस आलेख को उद्धृत करते हुए इस लेख के लिंक का भी विवरण दें। इस आलेख को कॉपीराइट सूचना के साथ यथावत साझा करने की अनुमति है। कृपया इसे ऐसे स्थान पर साझा न करें जहाँ इसे देखने के लिए शुल्क देना पडे।

Saturday, October 16, 2021

ASP.NET PostBack State Management ViewState Session QueryString

  • Meaning of Page posting 
  • PostBack of Page
  • Page Level State Management
  • ViewState
  • User Level State Management
  • Session
  • QueryString
  • Application Level State Management
पोस्टबैक का क्या अर्थ होता है? 
जब हम किसी वेबपेज के लिए वेब ब्राउज़र के वेब एड्रेसबार में यूआरएल लिखते हैं तो उस यूआरएल के आधार पर एक निश्चित वेबपेज की रिक्वेस्ट ब्राउज़र द्वारा वेब सर्वर के पास भेज दी जाती है। एचटीटीपी प्रोटोकोल के अंतर्गत, ब्राउज़र की रिक्वेस्ट सर्वर तक जाती है और उस निश्चित पेज की पोस्टिंग सर्वर ब्राउज़र को कर देता है। 

Post vs PostBack
जब पहली बार ब्राउज़र के भीतर हमें पेज दिखाई देता है तो यह पेज की पोस्टिंग होती है जबकि पेज की पोस्टबैक  का अभिप्राय है कि उसी निश्चित पेज को दोबारा सर्वर के पास प्रोसेसिंग के लिए भेजा जाए। ऐसा तब होता है जब उस पेज के भीतर स्थित किसी वेब कंट्रोल को क्लिक किया जाता है या इसी तरह की कोई अन्य घटना घटित होती है। उदाहरण के लिए जब किसी वेबफॉर्म के भीतर स्थित बटन को क्लिक किया जाता है तो बटन के क्लिक करने पर घटना घटित होती है और उस क्लिक घटना को हैंडल करने के लिए पेज को दोबारा ब्राऊजर द्वारा सर्वर पर भेजा जाता है और इस प्रक्रिया को पोस्टबैक कहते हैं। 

ब्राउज़र वेबपेज को दोबारा सर्वर पर प्रोसेसिंग करने के लिए भेजता है तो उस पेज का दोबारा से रिक्रिएशन होता है और पेज में जितने भी डाटा होते हैं वह नष्ट हो जाते हैं। उदाहरण के लिए अगर किसी वेबपेज के भीतर किसी टेक्स्ट बॉक्स में यूज़र ने अपना पासवर्ड लिखा और सबमिट बटन को क्लिक किया तो ऐसा होगा कि वर्ब फॉर्म दोबारा से प्रोसेसिंग के लिए सर्वर पर जाएगा और सर्वर उस पेज की प्रोसेसिंग करके पोस्टबैक करेगा। पोस्ट बैक करने की अवस्था में पेज का पुराना डाटा नष्ट हो जाता है। कहने का अर्थ यह है कि टेक्स्ट बॉक्स में जो डाटा या पासवर्ड लिखा गया वह डाटा उपलब्ध नहीं होगा। 

इस बात को एक उदाहरण से प्रोजेक्ट बनाकर समझते हैं। सबसे पहले एक ASP.NET वेबफॉर्म एप्लीकेशन बनाइए और उस एप्लीकेशन के भीतर एक वेबफॉर्म को जोड़िए। उस वेबफॉर्म के ऊपर 2 टेक्स्ट बॉक्स रखिए जिसके भीतर यूजरनेम और पासवर्ड डाला जा सके और दो बटन भी बनाइए। एक बटन सबमिट के लिए होगा दूसरा बटन  टेक्स्ट बॉक्स के डाटा को दोबारा से प्राप्त करने के लिए होगा। टेक्स्ट बॉक्स के डाटा को हम दो स्ट्रिंग टाइप के वैरियेबल्स में स्टोर करके रखते हैं और उस दोबारा डाटा को प्राप्त करने के लिए हम निम्न प्रकार के कोडिंग कर सकते हैं।

हम पाएंगे कि दूसरे बटन को दबाने पर टेक्स्ट बॉक्स में डाटा दोबारा से नहीं आता है इसका वजह यह है कि पोस्टबैक के दौरान वह सारा डाटा नष्ट हो जाता है।

ViewState as Page level State Management
अगर हम चाहते हैं कि जिस डाटा को टेक्स्ट बॉक्स के भीतर रखा गया, दूसरे शब्दों में जिस स्ट्रिंग वैरियेबल्स के भीतर हमने डाटा को स्टोर करके रखा अगर उस डाटा को हम ViewState नामक ऑब्जेक्ट के भीतर स्टोर करके रखें तो वह डाटा पोस्टबैक के बाद भी प्राप्त हो जाता है। 

ViewState का शाब्दिक अर्थ है View की स्टेट। View पेज को कहते हैं। ViewState अर्थात पेज के ऊपर रखे हुए डाटा।

ViewState के संबंध में यह बात याद रखने लायक है कि एक पेज का ViewState दूसरे पेज के ऊपर उपलब्ध नहीं होता है। कहने का अभिप्राय यह है कि किसी एक पार्टिकुलर पेज का डाटा दूसरे पेज पर प्राप्त नहीं होगा। ViewState का स्कोप एक ही पेज तक होता है। अतः दूसरे पेज पर  एक पेज के ViewState के डाटा को प्राप्त नहीं किया जा सकता है। 

Session as User level State Management
अगर हम चाहते हैं कि दूसरे पेज पर किसी पेज के डाटा को प्राप्त करना तो इसके लिए हमें Session ऑब्जेक्ट का उपयोग करना पड़ता है। 

Session ऑब्जेक्ट की सहायता से हम एक Session के दौरान जितने भी पेज होते हैं उन सभी पेज के ऊपर किसी पेज के डाटा को ट्रांसफर कर सकते हैं। अतः सेशन ऑब्जेक्ट के डाटा का स्कोप पूरा Session होता है और उस Session के भीतर जितने भी पेज होंगे उन सभी पेज पर हम डाटा को ट्रांसफर कर सकते हैं।

प्रत्येक यूज़र का अलग-अलग Session क्रिएट होता है।

QueryString as State Management


Application as State Management

ASP.NET Page Navigation Techniques in Hindi

ASP.NET के अंतर्गत पेज नेविगेशन के लिए कई तरीके उपलब्ध है। 
  1. Hyperlink server control
  2. JavaScript code
  3. PostBackUrl property of Button control
  4. Response.Redirect method
  5. Server.Transfer method
सबसे पहला तरीका क्लाइंट साइड नेविगेशन का है। इसके अंतर्गत हाइपरलिंक कंट्रोल का उपयोग किया जाता है। जब कंट्रोल पर यूजर क्लिक करता है तब यूजर दिए गए नेविगेशन पेज पर चला जाता है। 

उदाहरण के लिए
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Welcome.aspx">
         Goto Welcome Page
</asp:HyperLink>

जब पेज का सोर्स कोड देखा जाता है तो निम्न प्रकार का सोर्स कोड दिखाई देता है

<a id="HyperLink1" href="Welcome.aspx">Goto Welcome Page</a>

क्लाइंट सेट नेवीगेशन के लिए जावास्क्रिप्ट कोड का भी उपयोग किया जाता है। इसके अंतर्गत किसी बटन जैसे कंट्रोल के क्लिक या अन्य घटना का उपयोग कर इवेंट हैन्डल रूटीन को एकसेक्यूट किया जाता है

<input id="Button1" type="button" value="Goto Welcome Page"
           onclick="return Button1_onclick()" />


<script language="javascript" type="text/javascript">       
         function Button1_onclick()
           {
               document.location = "Welcome.aspx";
           }
</script>
जब यूजर बटन पर क्लिक करता है तो Welcome.aspx पेज पर यूजर नेविगेट कर जाता है।

ASP.NET बटन की PostBackUrl प्रोपर्टी का उपयोग कर भी एक पेज से दूसरे पेज पर नेविगेट किया जा सकता है। बटन की इस प्रॉपर्टी को डिजाइन टाइम पर या रनटाइम पर भी सेट किया जा सकता है।

Page.PreviousPage.FindControl("TextBox1")

ASp.net के Page क्लास की PreviousPage प्रॉपर्टी का उपयोग कर हम पिछले पेज के कंट्रोल के डाटा को वर्तमान पेज के ऊपर प्रदर्शित कर सकते हैं। उदाहरण के लिए, मान लीजिए कि एक एस्प एप्लिकेशन में दो एसपी पेज है। पहले पेज का नाम है Index.aspx और दूसरे का नाम है Welcome.aspx 
Index.aspx पर टेक्सटबॉक्स है जिसमें कुछ डेटा यूजर इनपुट करता है और एक बटन है जिसको यूजर क्लिक करता है। बटन की PostBackUrl प्रॉपर्टी को Welcome.aspx सेट किया गया है। जब यूजर Index.aspx पेज के बटन को क्लिक करता है तो यूजर Welcome.aspx पेज पर नेविगेट करता है। और Welcome.aspx पेज के लेबल कन्ट्रोल Label1 पर टेक्सटबॉक्स TextBox1 का डाटा उपलब्ध हो जाता है। इसके लिए सम्बंधित कोड निम्नलिखित है

// Sample code for Welcome.aspx.

protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.PreviousPage != null)
        {
            TextBox MyTextBox = (TextBox)Page.PreviousPage.FindControl("TextBox1");
            if (MyTextBox != null)
            {
                Label1.Text = MyTextBox.Text;
            }
        }
    }

Page.Response.Redirect()
जब यूजर किसी Aap.net पेज के बटन पर क्लिक करता है तो बटन उस पर उत्पन्न घटना की प्रोसेसिंग करने के लिए सर्वर को भेज देता है लेकिन सर्वर यदि रिस्पांस ऑब्जेक्ट मे रीडायरेक्ट करता है तो इसका अर्थ यह है कि वह ब्राउज़र को निर्देश दे रहा है कि ब्राउज़र नए पेज पर नेविगेट करें। जिस पेज पर नेविगेट करना होता है उससे संबंधित पेज की path को Redirect मेथड के भीतर एक पैरामीटर के रूप में दिया जाता है।

protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Redirect("TutorialRide.aspx");
    }

ऊपर की बताएं तकनीक में पूरा एक राउंड ट्रिप होता है। कहने का अर्थ है कि पहले तो बटन को क्लिक करने पर बटन सर्वर पर घटना को प्रोसेसिंग करने के लिए भेजता है और फिर सर्वर ब्राउज़र को रीडायरेक्ट करने के लिए रिस्पांस ऑब्जेक्ट भेजता है इस प्रकार एक पूरा राउंड ट्रिप होता है। 

अगर हम चाहते हैं कि सर्वर खुद ही पेज रीडायरेक्ट कर दे तो इसके लिए हम सर्वर ऑब्जेक्ट के Transfer मैथड का उपयोग करते हैं। सर्वर के ट्रांसफर मेथड की एक लिमिटेशंस सीमा यह है कि यह सर्वर पर उपलब्ध किसी पेज पर ही redirect कर सकता है परन्तु यह किसी दूसरे सर्वर पर उपलब्ध पेज पर redirect नहीं कर सकता है। किसी दूसरे सर्वर पर उपलब्ध पेज पर redirect करने के लिए हमें रिस्पांस ऑब्जेक्ट का ही उपयोग करना पड़ता है।

protected void Button1_Click(object sender, EventArgs e)
    {
        Server.Transfer("SameServerPage.aspx");
    }

अजीत कुमार १३ सितम्बर २०२१

ASP.NET FileUpoad control and its Properties & methods

Properties of FileUpload control
  1. HasFile
  2. FileBytes
  3. FileContent
  4. FileName
Methods of FileUpload control
  1. SaveAs
ASP.NET के अंतर्गत FileUpload कंट्रोल एक रिच कंट्रोल्स हैं। FileUpload कंट्रोल का उपयोग किसी भी प्रकार के फाइल को सर्वर के किसी फोल्डर के भीतर अपलोड करने के लिए किया जाता है। FileUpload कंट्रोल के कई सारे प्रॉपर्टीज हैं। इनमें से कुछ खास प्रॉपर्टीज हैं जिसका उपयोग करके किसी फाइल के कंटेंट के बारे में जानकारी एकत्र की जा सकती है। जब यूजर फाइल अपलोड कंट्रोल को क्लिक करता है तब यह पता लगाना जरूरी है की फाइल अपलोड कंट्रोल के भीतर कोई फाइल अपलोड़ हुआ अथवा नहीं। इसके लिए HasFile प्रॉपर्टी का उपयोग किया जाता है। यह प्रॉपर्टी बताता है कि कोई फाइल कंट्रोल के भीतर अपलोड हुआ है अथवा नहीं। जब कोई फाइल कंट्रोल के भीतर अपलोड होता है तब उस फाइल का नाम एक्सटेंशन के साथ कंट्रोल के बगल में दिखाई देता है। केवल फ़ाइल का नाम दिखाई देता है न कि फ़ाइल का पूरा पथ।

FileBytes इस प्रॉपर्टी का उपयोग कर हम अपलोडेड फ़ाइल कितना बाइट साइज का है यह ज्ञात कर सकते हैं। अगर यह शून्य है तो फ़ाइल अपलोड को गलत समझें।

FileContent

FileName इस प्रॉपर्टी का उपयोग कर हम अपलोडेड फ़ाइल के नाम मात्र को जान सकते हैं।

FileUpload के SaveAs मेथड का उपयोग कर फ़ाइल को सर्वर के ऊपर सेव किया जाता है। इस मेथड में फ़ाइल के पूरे पथ को देना पड़ता है जहाँ उसे सेव करना है।

आमतौर पर 4 एमबी तक के फाइल को आसानी से अपलोड किया जा सकता है लेकिन इससे ज्यादा साइज के फाइल को अपलोड करने के लिए हमें वेब कंफीग्रेशन करना पड़ता है

10 एमबी साइज के फाइल को अपलोड करने के लिए हमें वेब कंफीग्रेशन फाइल के भीतर निम्नलिखित कंफीग्रेशन करना पड़ता है।

<configuration>
    <system.web>      
       <httpRuntime
       maxRequestLength="10240"
       requestLengthDiskThreshold="100" />
    </system.web>
</configuration>

ASP.NET Different sections of webpage AutoPostBack Page Directives in Hindi

माइक्रोसॉफ्ट ASP.NET  के अंतर्गत aspx वेब पेज के तीन हिस्से आमतौर पर होते हैं। 
  1. Page directives
  2. Scripting block
  3. Page Rendering block
पहला हिस्सा डायरेक्टिव से जुड़ा होता है दूसरा हिस्सा स्क्रिप्ट ब्लॉक से है। स्क्रिप्ट ब्लॉक के भीतर उस पेज से जुड़े हुए सब या फ़नक्स रूटीन या मेथड लिखे जाते हैं। एक बात ध्यान देने वाली है aspx पेज के भीतर पेज रेंडरिंग ब्लॉक के भीतर जितने भी कंट्रोल्स होते हैं उनकी आईडी वगैरह प्रॉपर्टीज होती है। हम इसमें से किसी भी कंट्रोल को स्क्रिप्ट ब्लॉक के भीतर एक्सेस कर सकते हैं और उनकी प्रॉपर्टीज वगैरह को गेट सेट कर सकते हैं।

एएसपीक्स वेब पेज के सर्वर कंट्रोल के ऊपर किसी प्रकार के घटित होने वाली घटनाओं का हैंडलिंग सर्वर के ऊपर होता है। जिस सर्वर कंट्रोल ऑब्जेक्ट पर घटना घटित होती है उस ऑब्जेक्ट को इवेंटहैंडलर मेथड के भीतर Object डेटा टाइप पैरामीटर के रूप में दिया जाता है। इसके अलावा घटना से संबंधित अतिरिक्त जानकारी को एक अन्य पैरामीटर के रूप में इवेंटहैंडलर में दिया जाता है। यह दुसरा पैरामीटर EventArgs क्लास या ऑब्जेक्ट के टाइप के रूप में दिया जाता है। जब किसी खास प्रकार के कंट्रोल के ऊपर घटना घटित होती है जैसे की इमेज कंट्रोल के ऊपर क्लिक करने पर जो घटना घटित होती है उससे संबंधित अतिरिक्त जानकारी के लिए ImageClickEventArgs दिया जाता है जो EventArgs से व्युत्पन्न derived है।

जब ASP.NET के किसी कंट्रोल के ऊपर घटना घटित होती है उस घटना को हैंडल करने के लिए इवेंट हैंडलर मेथड होना चाहिए और घटना को उस इवेंट हैंडलर के साथ wired माना जाता है जिसे AutoEventWireup नामक पेज अटरीब्यूट के साथ दर्शाया जाता है।

Page.IsPostBack Property
जैसा कि हम जानते हैं कि ASP.NET के अंतर्गत पेज लाइफ साइकिल के दौरान कई तरह की घटनाएं घटित होती है। कुछ घटनाएं पेज से संबंधित होती है तो दूसरी ओर पेज पर रखे हुए कंट्रोल्स के ऊपर भी घटनाएं घटित होती है लेकिन यह बात याद रखने लायक है कि पेज पर रखे हुए कंट्रोल की घटनाएं तब घटित होती है जब पेज का लोड इवेंट हो गया हो और पेज रेंडर इवेंट होने वाला हो। कहने का अर्थ है कि PreRender प्रीरेंडर इवेंट और पेज लोड इवेंट के बीच में पेज पर रखे हुए कंट्रोल्स की घटनाएं घटित होती है। जैसे अगर किसी बटन कंट्रोल को क्लिक किया जाता है तो उस क्लिक करने की घटना का इवेंट तब फायर होता है जब पेज लोड हो गया हो और पेज रेंडर होने वाला हो।

जब पेज का इनीशिएलाइजेशन होता है तो उस पेज में जितने भी कंट्रोल्स रखे होते हैं उनका इनीशिएलाइजेशन होता है। मान लीजिए कि एक पेज दो बार लोड हो रहा है तो उस पेज पर रखे कंट्रोल्स दोबारा से इनीशिएलाइज होंगे। अतः अगर किसी ड्रॉपडाउन का इनीशिएलाइजेशन हुआ है तो उसमें वह आइटम्स दिखाई देगा लेकिन अगर पेज दोबारा रीलोड होता है तो वह ड्रॉपडाउन दोबारा से इनीशिएलाइजेशन होने पर वही आइटम्स दोबारा से डब्ल कर दिखाई देगा जो कि नहीं होना चाहिए। अतः इस तरह की समस्याओं से बचने के लिए यह जरूरी है कि हमें मालूम हो कि पेज का पोस्टबैक हुआ है अथवा नहीं। अगर पेज का पोस्टबैक हुआ है तो इस हालत में पेज के कंट्रोल का दोबारा से इनीशिएलाइजेशन नहीं होना चाहिए। इसी उद्देश्य से Page.IsPostBack प्रॉपर्टी यूज किया जाता है। Page.IsPostBack = True यह बताता है कि पेज का पोस्टबैक हुआ है।

AutoPostBack Property
किसी भी कंट्रोल की घटना से जुड़ा हुआ एक महत्वपूर्ण प्रॉपर्टी AutoPostBack है। यह प्रॉपर्टी पेज के पोस्टबैक से संबंधित है। जब किसी कंट्रोल में कोई घटना घटित होती है जैसे किसी टेक्स्ट बॉक्स में टेक्स्ट में चेंज करने पर या ड्रॉपडाउन के किसी आइटम को चेंज करने पर या रेडियो बटन में से किसी एक रेडियो बटन का चेंज करने पर घटनाएं घटित होती है जिसके बाद उस घटना को सर्वर पर हैंडल करने के लिए भेजा जा सकता है और नहीं भी भेजा जा सकता है। अगर हमें सर्वर पर हैंडल करने के लिए भेजना है तो इसके लिए हम AutoPostBack=True यूज करते हैं।

ASP.NET के किसी पेज के भीतर पेज डायरेक्टिव कंपाइलर को पेज के संबंध में कई सारी बातों की जानकारी देता है अगर उसमें Debug=False हो तो कंपाइलर उस पेज का debugging नहीं करता है। इसी तरह यदि Trace=False हो तो कंपाइलर उस पेज का Tracing नहीं करता है। पेज की प्रोग्रामिंग किस भाषा में हुई है, इसकी जानकारी Language एटट्रिब्यूट से ज्ञात होता है। जिस भाषा में कोडिंग होती है उसी भाषा का कंपाइलर उस पेज को कंपाइल करने के लिए यूज किया जाता है। उदाहरण के लिए Language="C#" हो तो उस पेज का C# कंपाइलर होगा।

© अजीत कुमार, सर्वाधिकार सुरक्षित।

इस आलेख को उद्धृत करते हुए इस लेख के लिंक का भी विवरण दें। इस आलेख को कॉपीराइट सूचना के साथ यथावत साझा करने की अनुमति है। कृपया इसे ऐसे स्थान पर साझा न करें जहाँ इसे देखने के लिए शुल्क देना पडे।

ASP.NET Controls and its types in Hindi

  • ASP.NET Control and its types
  • Event Handler
  • State Management and ViewState
  • Tracing
  • CodeBehind File
  • Dynamic compilation in ASP.NET
  • Partial Class
  • ASP.NET Page Life Cycle 
  • Events of Page class

ASP.NET फ्रेमवर्क के सबसे मुख्य केंद्र ASP.NET कंट्रोल्स है जो सर्वर पर रन किए जाते हैं और उसके पश्चात ब्राउज़र पर उनके कंटेंट रेंडर / प्रदर्शित होते हैं। 

ASP.NET एप्लीकेशन को डेवेलप करने के लिए डेवलपर को ASP.NET कंट्रोल्स की अच्छी खासी नॉलेज होनी चाहिए। ASP.NET फ्रेमवर्क के अंतर्गत इस तरह के कई सारे ASP.NET कंट्रोल्स है और इन कंट्रोल्स को अलग-अलग ग्रुप में बांटा जा सकता है। ASP.NET कंट्रोल्स को आमतौर पर आठ अलग-अलग वर्गों में बांटा गया है जैसे स्टैंडर्ड कंट्रोल्स, वैलिडेशन कंट्रोल्स, रिच कंट्रोल्स, डाटा कंट्रोल्स, नेवीगेशन कंट्रोल्स, लॉगिन कंट्रोल्स, वेब पार्ट कंट्रोल्स और HTML कंट्रोल्स।

Standard Control
ASP.NET के स्टैंडर्ड कंट्रोल्स ऐसे कंट्रोल्स हैं जिनका उपयोग आमतौर पर किसी भी फॉर्म के भीतर किया जाता है जैसे बटन, इनपुट फील्ड से सम्बंधित कंट्रोल्स, लेवल इत्यादि

Validation Control
वैलिडेशन कंट्रोल ऐसा कंट्रोल है जिसका उपयोग डाटा को सर्वर पर भेजने से पहले डाटा की वैलिडेशन के लिए किया जाता है। वैलिडेशन कंट्रोल का उपयोग किसी फॉर्म में डाटा के होने की अनिवार्यता, फॉर्म के दो कंट्रोल्स के डाटा के बीच में तुलना करने, किसी कंट्रोल के डेटा के ऊपर रेगुलर एक्सप्रेशन की जांच करने जैसे कार्यों के लिए किया जाता है। 

Rich Control
रिच कंट्रोल- कैलेंडर कंट्रोल और विज्ञापन को दर्शाने वाले एडरोटेटर जैसे कंट्रोल रिच कंट्रोल के अंतर्गत आते हैं।

Data Control
डाटा कंट्रोल ऐसा ASP.NET कंट्रोल है जिसका उपयोग किसी डाटा सोर्स जैसे डेटाबेस, XML फाइल, एक्सेल फाइल इत्यादि से डाटा को कंट्रोल पर भेज कर ब्राउज़र पर दर्शाने के लिए होता हैं अथवा ऐसे कंट्रोल की सहायता से ब्राउज़र से डाटा को डाटा सोर्स में स्टोर करते हैं। 

Navigation Control
नेविगेशन पेट्रोल का उपयोग विभिन्न प्रकार के नेविगेशन के लिए होता है। उदाहरण के लिए, मेनू ट्रीव्यू , ब्रेडक्रंब इत्यादि।

Login Control
लॉगिन कंट्रोल ऐसा कंट्रोल है जिसका उपयोग यूजर के लॉगिन के लिए, उसके पासवर्ड को चेंज करने के लिए, रजिस्ट्रेशन वगैरह के उद्देश्य किया जाता है।

Web Parts Control
वेब पार्ट कंट्रोल ऐसा कंट्रोल है जो निजीकृत पोर्टल को बनाने में सहायक होता है।

HTML Control
HTML कंट्रोल ऐसा कंट्रोल है जिसका उपयोग किसी भी HTML टैग को सर्वर साइड कंट्रोल में रूपांतरित करने के लिए किया जाता है।

HTML कंट्रोल को छोड़कर बाकी जितने भी ASP.NET कंट्रोल की ऊपर चर्चा की गई है, उन सभी कंट्रोल्स को डिक्लियर करने के लिए <% asp: लिखकर डिक्लेअर किया जाता है। asp: उपसर्ग यह बताता है कि यह कंट्रोल System.Web.UI.WebControls नेमस्पेस से संबंधित हैं।

इन सभी वेब कंट्रोल की प्रोसेसिंग सर्वर पर होने के लिए Runat ="server" attribute का यूज किया जाता है। HTML कंट्रोल के साथ asp उपसर्ग का यूज नहीं किया जाता है। HTML कंट्रोल को सर्वर साइड कंट्रोल में रूपांतरित करने के लिए Runat ="server" का यूज किया जाता है। 

HTML कंट्रोल को ASP.NET फ्रेमवर्क के संगत क्लास में रूपांतरित किया जा सकता है लेकिन आमतौर पर कोई भी डेवलपर HTML कंट्रोल को यूज नहीं करता है।

Event Handler
आमतौर पर जितने भी ASP.NET कंट्रोल हैं वे एक से अधिक इवेंट्स को सपोर्ट करते हैं, उन एट्रिब्यूट को लिखने के लिए On प्रीफिक्स यूज किया जाता है जैसे OnClick एट्रिब्यूट। इस एट्रीब्यूट को सर्वर के किसी सबरूटीन assign किया जाता है। जब भी किसी ASP.NET सर्वर कंट्रोल को क्लिक किया जाता है तो वह उस घटना के उपरांत, आमतौर पर नियत रूप से उस घटना से संबंधित इवेंट हैंडलर की प्रोसेसिंग सर्वर पर होती है। अगर आप चाहते हैं कि घटना की प्रोसेसिंग सर्वर पर न होकर क्लाइंट साइड हो तो उसके लिए OnClient उपसर्ग यूज़ करते हुए घटना को लिखना होता है जैसे कि OnClientClick 


इवेंट हैंडलर प्रोसीजर की एक खूबी यह है कि इस प्रोसीजर के अंतर्गत दो पैरामीटर होते हैं Sender As Object और e As EventArgs 

Sender का अभिप्राय उस ऑब्जेक्ट से है जिस ऑब्जेक्ट पर घटना घटित हुई है और EventArgs का अभिप्राय उस घटना के घटित होने से संबंधित है जो डाटा सरवर पर भेजा जा रहा है। उदाहरण के लिए, अगर किसी बटन को क्लिक करते हैं तो ऑनक्लिक इवेंट हैंडलर के भीतर Sender के रूप में बटन होगा और उसका EventArgs जो होगा वह उस बटन के क्लिक करने पर इवेंट से सम्बंधित जो डाटा है, सर्वर पर भेजी जाएगी।

कोई जरूरी नहीं है कि जब किसी बटन को क्लिक किया जाए तो इवेंट से संबंधित कोई डाटा सरवर पर भेजी जाए अतः EventArgs का हमेशा महत्व नहीं है। 

आप कल्पना कीजिए कि किसी इमेज बटन को क्लिक करके यूजर किसी घटना को अंजाम देता है ऐसी स्थिति में EventArgs का महत्व है जैसे कि उस इमेज बटन के किस कोऑर्डिनेट के भीतर बटन को क्लिक किया गया है, इसके लिए X और Y का उपयोग कॉर्डिनेट के रूप में होगा और इस डाटा को सर्वर को भेज दिया जाएगा। ऐसी स्थिति में, ही मेंटल केस की जगह संबंधित डाटा टाइप जैसे इमेज क्लिक इवेंट गर्ल्स होता है जबकि डिफॉल्ट रूप में इवेंट हर गति डाटा टाइप होता है।

जैसा कि हम जानते हैं कि HTML प्रोटोकोल एक स्टेटलेस प्रोटोकॉल है और जब भी किसी रिक्वेस्ट को वेबसाइट पर भेजा जाता है तो उस रिक्वेस्ट की प्रोसेसिंग होने के बाद सर्वर रिस्पांस भेज देता है लेकिन सर्वर स्टेट को स्टोर करके नहीं रखता है। व्यू स्टेट ViewState का उपयोग ASP.NET के अंतर्गत स्टेट मैनेजमेंट के लिए किया जाता है। 

स्टेट मैनेजमेंट ASP.NET फ्रेमवर्क के अंतर्गत एक उपाय है जिसके द्वारा किसी भी डाटा को स्टोर करके रखा जा सकता है। आमतौर पर किसी Hidden इनपुट टाइप डाटा के रूप में स्टेट को रखा जाता है। जब भी आप किसी फॉर्म के भीतर हिडेन इनपुट टाइप देखेंगे तो ASP.NET वेब पेज के अंतर्गत सोर्स कोड में आपको भी स्टेट मिल जाएगा आमतौर पर भी ViewState सभी कंट्रोल्स के लिए उपयोग किया जाता है जब तक कि उसे किसी कंट्रोल के लिए डिसएबल ना किया गया हो 

किसी वेबपेज के भीतर कितनी डाटा कंज्यूम हो रही है इसका ट्रेसिंग करने के लिए हम पेज डायरेक्टिव के भीतर ट्रेस Trace अटरीब्यूट का उपयोग करते हैं।  अगर आप चाहते हैं कि ASP.NET के किसी कंट्रोल के भीतर स्टेट का उपयोग किया जाए तो उसके लिए आपको इनेबलडव्यूस्टेट की प्रॉपर्टी को यूज करना होगा।  इनेबलडव्यूस्टेट की प्रॉपर्टी यदि ट्रू है तो वह कंट्रोल Viewstate को यूज करेगा अन्यथा उसका मान false होने पर ViewState डिसएबल होगा।


ASP.NET के अंतर्गत डायनामिक कंपाइलेशन होता है।  जब पहली बार किसी ASP.NET वेबपेज को कंपाइल किया जाता है तो उसके बाद उस पेज में किसी भी प्रकार का परिवर्तन होने पर जितने हिस्से में परिवर्तन हुआ है, बस उसी का कंपाइलेशन किया जाता है। आप इसे ऐसे भी समझ सकते हैं कि जब किसी चीज के लिए रिक्वेस्ट सर्वर पर भेजी जाती है तो उस पेज को सरवर एक बार कंपाइल कर देता है लेकिन जब दोबारा उसी पेज के लिए रिक्वेस्ट भेजी जाती है तो सरवर उसे दोबारा कंपाइल नहीं करता है जब तक कि उस पेज में किसी प्रकार का परिवर्तन ना हुआ हो। अगर उस पेज में किसी प्रकार का परिवर्तन होता है तो सरवर उसे रिकंपाइल करता है अन्यथा नहीं करता है। ASP.NET के अंतर्गत सरवर कंपाइल्ड पेज क्लास को एक टेंपरेरी फोल्डर के अंतर्गत रखता है जब तक कि उसके सोर्स कोड में किसी प्रकार का परिवर्तन ना हो।  जब उस क्लास को टेंपरेरी फोल्डर में रख दिया जाता है तो उस क्लास और ओरिजिनल ASP.NET पेज के बीच में एक प्रकार की डिपेंडेंसी निर्भरता उत्पन्न हो जाती है। अब अगर ASP.NET पेज में किसी प्रकार का परिवर्तन किया जाता है तो उस से रिलेटेड क्लास फाइल डिलीट हो जाती है और दोबारा कंपाइल होकर व टेंपोररी फोल्डर में सेव हो जाती है इस पूरी प्रक्रिया को डायनामिक कंपाइलेशन कहते हैं। डायनामिक कंपाइलेशन की वजह से ASP.NET फास्ट काम करता है। सीधे-साधे शब्दों में यह हुआ कि जब ASP.NET एप्लीकेशन में मोडिफिकेशन होता है तभी पेज में दोबारा कंपाइलेशन होता है।

याद रखे कि ASP.NET का पेज कंपाइल होकर एक क्लास फाइल में कन्वर्ट हो जाता है। उस क्लास के कुछ प्रॉपर्टी ओर मेथड होते हैं जिनका उपयोग करके उस पेज पर उपलब्ध जितने भी कंट्रोल है उनको हम एक्सेस या मॉडिफाई कर सकते हैं। 

क्लासिक ASP के अंतर्गत VBScript स्क्रिप्टिंग का यूज किया जाता था जबकि ASP.NET के अंतर्गत ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज ऐसे vb.net या C# का यूज किया जाता है।

CodeBehind File
जब माइक्रोसॉफ्ट ने क्लासिक ASP से ASP.NET की ओर स्थानांतरण किया तब उसने ASP के विपरीत ASP.NET में ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का कंसेप्ट यूज़ किया, जहां एक ओर क्लासिक ASP में एक ही पेज में कोड और प्रेजेंटेशन लॉजिक दोनों होते थे तो दूसरी ओर ASP.NET के अंतर्गत बिजनेस लॉजिक और प्रेजेंटेशन लॉजिक दोनों को पृथक कर दिया गया जैसे कि प्रेजेंटेशन लॉजिक के लिए ASP.NET aspx पेज का यूज़ किया गया जबकि प्रेजेंटेशन लॉजिक से जुड़े हुए बिजनेस लॉजिक को ASP.NET aspx.cs फाइल में रखा गया और यह समझना जरूरी है कि जो कोडबिहाइंड फाइल विकसित किया गया उसमे ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के इन्हेरिटेंस के कांसेप्ट को यूज किया गया। ASP.NET version1 तक जब कोडबिहाइंड फाइल को कंपाइल किया जाता था तो दो तरह के क्लासेज बनते थे एक क्लास प्रेजेंटेशन पेज को रीप्रजेंट करता था जबकि दूसरा क्लास बिजनेस लॉजिक को और यह दोनों क्लास एक दूसरे से क्लास इन्हेरिटेंस के द्वारा आपस में जुड़े होते थे। प्रेजेंटेशन पेज का क्लास CodeBehind फाइल के क्लास को इन्हेरीट करता था। इस प्रक्रिया में समस्या यह थी कि दोनों पेज के बीच में जो एसोसिएशन होता था वह क्षणभंगुर होता था। इसका कारण यह है की इन्हेरिटेंस एक दिशा में होने वाला संबंध है क्योंकि जो बात पैरेंट के लिए सच्चा है वही बात चाइल्ड के लिए भी सच है। इसके विपरीत हम यह नहीं कह सकते कि जो बात चाइल्ड के लिए सच्चा है वही बात पैरेंट के लिए भी सच हो।

Partial Class 
इसके अलावा इन दोनों क्लासेज में कंट्रोल की कंट्रोल आईडी समान रखनी पड़ती थी अगर उसमें से किसी भी कंट्रोल की कंट्रोल आईडी में विसंगति उत्पन्न हो तो कोड ब्रेक कर जाता था। इस प्रकार की समस्याओं से निजात पाने के लिए माइक्रोसॉफ्ट में ASP.NET वर्जन 2.0 मे इन्हेरिटेंस के कंसेप्ट को हटाकर Partial क्लास के कांसेप्ट को लाया। Partial क्लास के कंसेप्ट के कारण आप एक दूसरे से संबंधित कई सारे Partial क्लासेज को अलग अलग फोल्डर या फिजिकल फाइल में लिख सकते हैं और उनका जब कंपाइलेशन होगा तो वे सारे क्लासेज मिलकर एक सिंगल क्लास फाइल बन जाते हैं।

Partial क्लास की सबसे बड़ी खूबी यह है कि डेवलपर को अपने कंट्रोल्स को सभी पेज में डिक्लियर करने की जरूरत नहीं है। कहने का अभिप्राय यह है कि प्रेजेंटेशन पेज और कोडबिहाइंड फाइल दोनों जगह किसी कंट्रोल को डिक्लेअर करना जरूरी नहीं है। अगर आप प्रेजेंटेशन पेज में किसी कंट्रोल को डिक्लेअर करते हैं तो वह कंट्रोल ऑटोमेटिकली कोडबिहाइंड फाइल में उपलब्ध होगा और ठीक इसी तरह अगर किसी कंट्रोल को आप कोडबिहाइंड फाइल में डिक्लेअर करते हैं तो वह कंट्रोल प्रेजेंटेशन पेज के क्लास में भी उपलब्ध होगा।


ASP.NET Page Life Cycle
ASP.NET के अंतर्गत जैसा कि हमने जाना कि Page एक क्लास है तो ASP.NET पेज से संबंधित कई प्रकार के इवेंट्स है जो पेज के लाइफ साइकिल के अंतर्गत उत्पन्न होते हैं। आमतौर पर पेज से जुड़े हुए 10 इवेंट्स माने गए हैं। 

जब भी हम किसी वेब पेज की रिक्वेस्ट करते हैं तो ये पेज से सम्बंधित इवेंट एक सिक्वेंस/क्रम में एक-एक करके घटित होते हैं। 

पेज के इनीशिएलाइजेशन से सम्बंधित तीन घटनाएँ हैं। सबसे पहला इवेंट PreInit है। पेज की इनीशिएलाइजेशन से पहले यह घटना घटित होती है। पेज इनीशिएलाइजेशन पर Init घटना घटित होती है और पेज के इनीशिएलाइजेशन के कंप्लीट होने के पश्चात InitComplete घटना घटती है। इस प्रकार पेज के इनीशिएलाइजेशन से संबंधित तीन घटनाएं पेज पर घटित होती है और यह एक क्रम में घटित होते हैं।

इसके बाद पेज की लोडिंग की प्रक्रिया शुरू होती है और इससे भी संबंधित ३ घटनाएं है
  1. PreLoad
  2. Load
  3. LoadComplete

Page के लोड होने से पहले PreLoad इवेंट घटित होता है और पेज लोड होने पर भी Load घटित होता है और जब पेज लोड कंप्लीट हो जाता है तब LoadComplete घटना घटित होता है। इस प्रकार Load से भी संबंधित पेज की तीन प्रकार की घटनाएं है।

अब इसके बाद पेज रेंडर की बारी आती है। पेज के रेंडरिंग होने से पहले PreRender इवेंट घटित होता है और जब रेंडरिंग कंप्लीट हो जाती है उसके ठीक पहले RenderComplete इवेंट घटित होता है और अंत में जब पेज की स्टेट को सेव किया जाता है तो SaveStateComplete घटना घटित होती है।

अंत में, जब पेज अनलोड किया जाता है तो UnLoad इवेंट का घटना घटित होता है। यह बात याद रखने वाली है कि पेज से संबंधित ये घटनाएं एक क्रम में घटित होती हैं। आमतौर पर किसी भी वेब डेवलपर को Load और PreRender इवेंट से संबंधित घटनाओं पर फोकस करना है। इन घटनाओं से संबंधित कोडिंग ज्यादा होती है।

© अजीत कुमार, सर्वाधिकार सुरक्षित।

इस आलेख को उद्धृत करते हुए इस लेख के लिंक का भी विवरण दें। इस आलेख को कॉपीराइट सूचना के साथ यथावत साझा करने की अनुमति है। कृपया इसे ऐसे स्थान पर साझा न करें जहाँ इसे देखने के लिए शुल्क देना पडे।




Monday, June 28, 2021

ASP.NET Framework, Server Object (IIS)

"Server" Object (IIS)

You can use the Server object to access methods and properties on the server. Most of these methods and properties serve as utility functions.

Server object methods

  1. CreateObject
  2. Execute 
  3. GetLastError 
  4. HTMLEncode 
  5. MapPath 
  6. Transfer 
  7. URLEncode 
Server.CreateObject creates an instance of a server component.
The CreateObject method creates an instance of a server component. If the component has implemented the OnStartPage and OnEndPage methods, the OnStartPage method is called at this time.

<% Set MyAd = Server.CreateObject("MSWC.AdRotator") %>

Server.Execute executes an .asp file.

Server.GetLastError returns an ASPError object that describes the error condition.

Server.HTMLEncode applies HTML encoding to the specified string.
The HTMLEncode method applies HTML encoding to a specified string. This is useful as a quick method of encoding form data and other client request data before using it in your Web application. Encoding data converts potentially unsafe characters to their HTML-encoded equivalent. If the string to be encoded is not DBCS, HTMLEncode converts characters as follows:
  • The less-than character (<) is converted to &lt;.
  • The greater-than character (>) is converted to &gt;.
  • The ampersand character (&) is converted to &amp;.
  • The double-quote character (") is converted to &quot;.
  • Any ASCII code character whose code is greater-than or equal to 0x80 is converted to &#<number>, where <number> is the ASCII character value.
If the string to be encoded is DBCS, HTMLEncode converts characters as follows:
All extended characters are converted.
Any ASCII code character whose code is greater-than or equal to 0x80 is converted to &#<number>, where <number> is the ASCII character value.
Half-width Katakana characters in the Japanese code page are not converted.

Server.MapPath maps the specified virtual path, either the absolute path on the current server or the path relative to the current page, into a physical path. https://docs.microsoft.com/en-us/dotnet/api/system.web.httpserverutility.mappath?view=netframework-4.

Server.Transfer sends all of the current state information to another .asp file for processing

Server.URLEncode applies URL encoding rules, including escape characters, to the string.



Thursday, October 31, 2019

ASP.NET Introduction

ASP.NET stands for Active Server Page Network Enabled Technologies.
ASP.NET is basically a platform/framework to build web-based application using one of the many available programming languages such as C#, VB.NET etc.
The ASP.NET is designed to work with HTTP protocol which is the most used protocol in web technologies.

It is important to realize the architecture of the ASP.NET before going ahead. The ASP.NET uses libraries which are known as FCL Framework Class Library and CLR, Common Language Runtime and a few collections of languages such as C#, VB.NET etc. The architecture of ASP.NET is therefore about three things.
  • Language: - The .NET allows you to use any one of the programming languages as per the taste and skill of the developer.
  • Library: - The .NET framework has some standard libraries. For web-based application, we can use web library.
  • CLR: - The CLR should be considered as a platform which facilitates running code written in any one of different languages such as C#, VB.NET etc.
Characteristics of ASP.NET Framework

Code Behind Mode- It is all about separation of code and design of the application. This is very important feature which allows the developer to focus on the code or design independently. When an ASP.NET web application has file with .ASPX extension, another file is created with .ASPX.CS extension if the code is in the C# language. This is code file different from the design file.

State management- The concept of state is very crucial in the web application. When the data of web form is transmitted to server, the state of data may change. Because HTTP protocol is a stateless protocol, it is very important to store the state of data when the user clicks to another page, otherwise the data will be lost. Thus, it is very important to manage the state of data depending upon the nature of requirements.

Caching- In the programming, caching is all about keeping the data ready for use whenever user needs the data. Sometimes, user visits the same page again and again. In this situation, the page can be cached so that the retrieval time could be reduced. The pages are cached in temporary locations.

Life Cycle of ASP.NET Application
Every application has its life cycle. Understanding the life cycle is important for the ASP.NET developers. An ASP.NET application is a web application developed using .NET frameworks. The web application has several web pages. The life cycle of the application is as follows:
  • When application starts, an index file or home file is executed. The request goes to the web server and Application_Start method is executed. In this method, all the global variables are initialized with their default values.
  • Every time user sends request to the server, object is created such as request object, response object, context object by the server. Technically, they are known as HttpContext, HttpRequest & HttpResponse. The HttpContext is just the container for the HttpRequest and HttpResponse objects. The HttpRequest object contains information about the current request, including cookies and browser information. The HttpResponse object contains the response that is sent to the client.
  • These objects are not enough to recognize the application. Therefore, server creates another object called HttpApplication
  • Dispose- This is an event object which is invoked before the instance of the application is destroyed. This allows to manage resources.
  • End of Application- The application is unloaded from the memory and memory is cleansed.
Page Life Cycle
When request is sent to the web server for a page by browser, several steps take place before the response is sent back to the client browser. The steps and the objects created in these steps are as follows:
  1. Page Request
  2. Page Start
  3. Page Initialization
  4. Page Load
  5. Validation
  6. Post back event handling
  7. Page Rendering
  8. Upload
Page Request
When a page is requested from the server, it checks whether the page requested is new one or it has already been requested earlier. For this, the server searches the cache. If the page is not requested before, the server compiles the page and responds. In contrary situation, the server finds the page from the cache and responds.

Page Start
In this stage, two objects are created- request object and response object. The Request object holds all the information sent to the server and the response object holds all the information sent back to the client.

Continued...










Hot Topics