इस ट्यूटोरियल में हम ASP.NET टेक्नोलॉजी के बारे में क्रमबद्ध तरीके से अध्ययन करेंगे। सबसे पहले हम लोकल सिस्टम में आईआईएस सर्वर को कैसे इंस्टॉल करते हैं, के बारे में जानेंगे। उसके बाद हम देखेंगे कि कैसे किसी वेबसाइट को अपने लोकल सिस्टम से आईआईएस सर्वर पर डिप्लॉय करते हैं। इतना करने के बाद हम आईआईएस सर्वर पर स्थित वेबसाइट के किसी वेबपेज को ब्राउज करके ब्राउज़र में उसके यूआरएल को समझेंगे। साथ ही हम यह भी देखेंगे कि उसी फाइल को लोकल सिस्टम में ओपन करने पर यूआरएल में क्या अंतर होता है। इसके बाद हम स्टैटिक HTML फाइल को समझेंगे और यह देखेंगे कि HTML फाइल की क्या सीमाएं हैं और कैसे HTML टेक्नोलॉजी के साथ स्क्रिप्टिंग टेक्नोलॉजी को सम्मिलित कर वेब पेज को डायनेमिक बनाया जा सकता है। साथ ही यह भी देखेंगे कि ASP टेक्नोलॉजी की क्या सीमाएं हैं जिसकी वजह से ASP.NET टेक्नोलॉजी का उदय हुआ। ASP.NET टेक्नोलॉजी के बारे में तदन्तर अध्ययन करेंगे।
अगर आपको चेक करना हो कि आपके सिस्टम में आईआईएस इंस्टॉल है या नहीं है तो इसके लिए अपने डिफॉल्ट ब्राउजर को ओपन करें और उसके एड्रेसबार में यूआरएल के रूप में localhost टाइप कर Enter key दबाएं। अगर निम्नलिखित चित्र ब्राउज़र में डिस्प्ले हो तो समझ लें कि आपके सिस्टम में पहले से ही आईआईएस इंस्टॉल है और आपको आईएएस इंस्टॉल करने की कोई आवश्यकता नहीं है परंतु अगर ऐसा नहीं है तो आपको अपने सिस्टम में आईआईएस को इंस्टॉल करना होगा।
अपने सिस्टम में आईआईएस को इंस्टॉल करने के लिए कंट्रोल पैनल में जाना होगा। कंट्रोल पैनल में जाकर विंडोज को क्लिक करना होगा और निम्नलिखित चरणों का अनुपालन करते हुए आप अपने सिस्टम में आईआईएस इंस्टॉल कर सकते हैं। ध्यान दे कि पुराने विंडोज जैसे विंडोज एक्सपी में आईआईएस को इंस्टॉल करने के लिए अपने सीडी ड्राइव में CD को डालकर आईआईएस को इंस्टॉल करना पड़ता था परंतु अब Windows7, 8, 8.1, 10 इत्यादि वर्शन के साथ ऐसा करने की जरूरत नहीं है। केवल आपको कंट्रोल पैनल में जाना है और वहां बताए गए स्टेप्स को फॉलो करना है और आपके सिस्टम में आईआईएस को इनेबल्ड करना होगा। एक बार जब सिस्टम में आईआईएस इंस्टॉल/इनेबल्ड हो जाता है तो किसी भी वेबसाइट को आप आईआईएस सर्वर पर डिप्लॉय कर सकते हैं।
वस्तुतः वेबसाइट कई सारे वेबपेज का कलेक्शन होता है। वेब पेज के इस कलेक्शन को हम एक फोल्डर में रखते हैं और इस फोल्डर को आईआईएस सर्वर पर अपलोड करके हम उस फोल्डर के सारे वेब पेज को आईआईएस सर्वर की सहायता से ओपन कर सकते हैं। आईआईएस सर्वर की विशेषता यह है कि यह पेज को HTTP प्रोटोकोल के अधीन ओपन करता है। अगर आप अपने किसी वेबपेज को बिना आईआईएस को इंस्टॉल या इनेबल्ड किए ओपन करते हैं तो वह ब्राउज़र में फाइल प्रोटोकॉल के अधीन ओपन होता है। यह तथ्य एड्रेस बार में स्पष्ट दिखाई देता है। एड्रेस बार में आपको फाइल प्रोटोकॉल के बाद उस HTML फाइल का path दिखाई देता है जो बताता है कि यह फाइल फाइल प्रोटोकॉल के अधीन ओपन हुआ है ना कि HTTP प्रोटोकोल के।
इसके विपरीत जब हम अपने वेबसाइट अर्थात साइट के रूट फोल्डर को आईआईएस पर deploy कर देते हैं और आईएएस के अंतर्गत हम उस फोल्डर के किसी वेबपेज को ब्राउज करते हैं तो ब्राउज़र के एड्रेस बार में वह लोकलहोस्ट के साथ लिखा हुआ दिखाई देता है जो बताता है कि यह पेज HTTP प्रोटोकोल के अधीन ओपन हुआ है।
हमने अब तक समझ लिया की आईआईएस सर्वर का सबसे बड़ा योगदान वेब पेज को HTTP प्रोटोकॉल के अधीन ओपन करने से है।
अब सवाल है कि आईआईएस सर्वर में किसी वेबसाइट को कैसे deploy करते हैं। इसके लिए आपको अपने आईआईएस सर्वर के पैनल को ओपन करना होगा। आईआईएस सर्वर के पैनल को ओपन करने के लिए हमें विंडोज के रन डायलॉग बॉक्स को ओपन करना होता है। इसके लिए शॉर्टकट WINKEY + R है। डॉयलोग बॉक्स के textbox में inetmgr टाइप कर एंटर दबाए। आपके सामने आईआईएस का पैनल ओपन हो जाएगा। आईआईएस पैनल का चित्र नीचे दिखाया गया है।
आईआईएस पैनल के बाएं तरफ आपको Sites नोड के भीतर Default Website दिखाई देता है। Sites नोड पर राइटक्लिक कर वेबसाइट बना सकते हैं और Default Website पर राइट क्लिक कर आप एक वर्चुअल डायरेक्टरी क्रिएट करते हैं जैसा की चित्र में दिखाया गया है
वर्चुअल डायरेक्टरी क्रिएट करने के लिए आपको वर्चुअल डायरेक्टरी के रूप में कोई उचित नाम अपने मनमर्जी का देना पड़ता है। फिर इस वर्चुअल डायरेक्टरी का संबंधित फिजिकल path हम उस वेबसाइट फोल्डर को देते हैं जिसको हम आईएएस में deploy करना चाहते हैं। नीचे चित्र में दिखाया गया है कैसे आपके डेस्कटॉप पर रखा वेबसाइट फोल्डर आईआईएस सर्वर के भीतर वर्चुअल डायरेक्टिव से संबंधित फिजिकल path के रूप में होता है।
सबसे पहले आप अपने डेस्कटॉप पर वेबसाइट का फोल्डर बनाएं। उसका कोई उचित नाम दे दीजिए। उस फोल्डर के भीतर एक index.html फाइल बनाईए जैसा कि नीचे चित्र में दिखाया गया है। उस index.html फाइल के भीतर कुछ एचटीएमएल की कोडिंग कर दीजिए और फाइल को सेव कर दीजिए। आपने HTML फाइल बना लिया।
अब उस फाइल और उसके फोल्डर को एक वेबसाइट के रूप में आईआईएस सर्वर पर deploy करना है। इसके लिए आप विंडोज़ के रन डायलॉग बॉक्स को ओपन कीजिए उसमें inetmgr टाइप कीजिए और एंटर बटन दबाइए। इसके बाद आईएएस पैनल आपके सामने उपस्थित हो जाता है। ध्यान दीजिए कि आपके सिस्टम में आईआईएस सर्वर पहले से इंस्टॉल होने चाहिए। अगर ऐसा नहीं है तो पहले आप आईआईएस सर्वर को इंस्टॉल कर लीजिए। अब आईआईएस सर्वर के भीतर लेफ्ट पैनल में डिफॉल्ट वेबसाइट को सेलेक्ट कर राइट क्लिक कीजिए और वर्चुअल डायरेक्टरी बनाने के लिए आगे बताए गए स्टेप्स को फॉलो कीजिए।
ध्यान दीजिए कि वर्चुअल डायरेक्टरी आपके वेबसाइट या फोल्डर का एक प्वाइंटर होता है। दूसरे शब्दों में यह फिजिकल path का alias होता है। जब आप अपनी वेबसाइट के किसी वेबपेज को ओपन करते हैं तो आईआईएस सर्वर इस alias को ध्यान में रखते हुए उस HTML पेज के path को एड्रेस बार में दर्शाता है।
इस ट्यूटोरियल में हम देखेंगे की HTML पेज की क्या खूबियां हैं और उसकी क्या सीमाएं हैं। जैसा कि हम जानते हैं कि HTML पेज का उपयोग किसी वेबपेज के कंटेंट को प्रदर्शित करने के लिए होता है। HTML का उपयोग वेब पेज की सामग्री को निरूपित करने के लिए होता है लेकिन HTML द्वारा पेज के कंटेंट को अपडेट नहीं किया जा सकता है। दूसरे शब्दों में, HTML पेज स्टैटिक वेब पेज होता है। स्टैटिक पेज का अभिप्राय यह है कि पेज के कंटेंट को परिवर्तित नहीं किया जा सकता है। इस तथ्य को हम प्रयोग के द्वारा समझेंगे।
एक सिंपल HTML पेज बनाइए जिसके भीतर एक कॉम्बोबॉक्स होगा और एक बटन होगा। कॉम्बोबॉक्स के भीतर तीन चार आइटम रखते हैं। जब इस HTML पेज को ब्राउज़र में ओपन किया जाता है तो कॉम्बोबॉक्स के किसी भी आइटम को यूजर के द्वारा सिलेक्ट किया जा सकता है। जब यूजर बटन पर क्लिक करता है तो पेज में किसी प्रकार का परिवर्तन नहीं होता है। पेज पूरी तरह स्टैटिक बना रहता है। ध्यान दीजिए कि पेज रिफ्रेश नहीं होता है। इसका अर्थ यह है कि पेज का कंटेंट सर्वर पर नहीं जाता है।
पेज के कंटेंट को सर्वर पर भेजने के लिए HTML टेक्नोलॉजी के अंतर्गत फॉर्म टैग का उपयोग किया जाता है। फॉर्म टैग के अंतर्गत दो अटरीब्यूट्स काफी महत्वपूर्ण है- एक्शन और मेथड। एक्शन अट्रिब्यूट का उपयोग पेज की प्रोसेसिंग के लिए जरूरी यूआरएल के लिए किया जाता है। यूआरएल उस पेज का होता है जिस पेज द्वारा HTML की सामग्री का प्रोसेसिंग होता है। दूसरा अटरीब्यूट मेथड का है। फॉर्म टैग का मेथड अटरीब्यूट गेट या पोस्ट आमतौर पर होता है। गेट अटरीब्यूट ऐसा मेथड है जो बताता है कि सर्वर से कंटेंट को प्रोसेस करके गेट किया जा सकता है जबकि पोस्ट एट्रिब्यूट बताता है कि HTML पेज के कंटेंट को सर्वर को प्रोसेस करने के लिए पोस्ट किया जा सकता है फिलहाल हम HTML पेज के भीतर गेट अटरीब्यूट का उपयोग करेंगे और एक्शन के रूप में करंट पेज का यूआरएल देंगे निम्नलिखित कोड इस संबंध में दिया गया है।
अब हम अपने प्रयोग में थोड़ा सा सुधार करते हैं। हम form tag का उपयोग करते हुए पुराने कोड को परिवर्तित कर देते हैं जैसा के नीचे कोड में दिखाया गया है।
पुनः HTML पेज को ब्राउजर में ओपन करते हैं और बटन पर क्लिक करते हैं। इस बार हम पाते हैं कि वेब पेज रिफ्रेश हो रहा है और कॉन्बोबॉक्स के भीतर के किसी भी आइटम को सेलेक्ट करने के बाद बटन को क्लिक करने पर यूआरएल में सिलेक्ट किए हुए आइटम दिखाई देता है। इस यूआरएल को query-string के रूप में जाना जाता है। ? के बाद हमें सिलेक्ट किया हुआ आइटम दिखाई देता है। अब सवाल है कि पेज के भीतर चयनित आइटम को कैसे प्रदर्शित किया जाए।
HTML टेक्नोलॉजी के अधीन ऐसा करना संभव नहीं है इसके लिए हमें स्क्रिप्टिंग टेक्नोलॉजी की आवश्यकता होती है। हम आगे एएसपी टेक्नोलॉजी का उपयोग कर इस कार्य को पूरा करेंगे। एएसपी जिसका पूरा अर्थ एक्टिव सर्वर पेज है, माइक्रोसॉफ्ट की एक स्क्रिप्टिंग टेक्नोलॉजी है, जिसका उपयोग कर वेब पेज को डायनेमिक वेब पेज के रूप में परिवर्तित किया जा सकता है।
हम पिछले कोड में परिवर्तन कर ASP पेज बनाते हैं। asp पेज का फाइल एक्सटेंशन .asp होता है। ASP कोड <%.….%> के भीतर लिखते हैं। asp के टैग के भीतर हम स्क्रिप्टिंग लैंग्वेज की भाषा जैसे वीबीस्क्रिप्ट या जावास्क्रिप्ट का उल्लेख करते हैं।
इससे ASP पेज को सेव कर पुनः इसे ब्राउज़र में ओपन करते हैं। हम पाते हैं कि बटन पर क्लिक करने पर पेज रिफ्रेश होता है। साथ ही, यूजर के द्वारा सिलेक्ट किए गए आइटम को हम वेबपेज के भीतर प्रदर्शित भी कर पाते हैं लेकिन ASP की एक कमी यह है कि पेज का स्टेट सेव नहीं होता है। उदाहरण के लिए, जब कॉम्बोबॉक्स में के किसी आइटम को सेलेक्ट कर बटन को क्लिक किया जाता है तो पेज के पोस्टबैक होने पर सिलेक्ट किया आइटम कॉम्बोबॉक्स कंट्रोल में बना नहीं रहता है बल्कि उसका डिफॉल्ट आइटम ही दिखाई देता है। दूसरे शब्दों में, ASP पेज के रिफ्रेश होने पर पेज/कंट्रोल का स्टेट सेव नहीं होता। यह ASP की एक बहुत बड़ी कमजोरी है।
ASP की दूसरी दुर्बलता यह है कि प्रत्येक रिक्वेस्ट के तदनंतर ASP के भीतर एक नया EXE फाइल बनता है। अगर रिक्वेस्ट की संख्या बहुत ज्यादा हो तो इसका अर्थ यह हुआ कि कई सारे EXE फाइल बनेंगे और इसके कारण सर्वर की सारी मेमोरी कंज्यूम हो जाएगी जिसके कारण एप्लीकेशन की क्षमता पर दुष्प्रभाव पड़ता है। ASP की इन खामियों को ध्यान में रखते हुए माइक्रोसॉफ्ट ने ASP.NET टेक्नोलॉजी का विकास किया। ASP.NET टेक्नोलॉजी के अंतर्गत एक से अधिक रिक्वेस्ट होने के बाद भी एक ही EXE फाइल सर्वर में बनता है। प्रत्येक रिक्वेस्ट के लिए अलग-अलग डीएलएल फाइल बनता है जबकि पूरे एप्लीकेशन के लिए एक ही EXE फाइल बनता है। डीएलएल फाइल को मेमोरी में लोड करना और मेमोरी से अनलोड करना आसान है और यह एप्लीकेशन की कार्यक्षमता पर भी कोई बुरा प्रभाव नहीं डालता है जैसा कि ASP एप्लीकेशन में पाया गया है।
asp.net टेक्नोलॉजी के अनुसार पिछले कोड को परिवर्तित करके हम निम्नलिखित कोड लिखते हैं और फ़ाइल को .aspx एक्सटेंशन के साथ सेव करते हैं।
ASPX फाइल में फाइल के सबसे टॉप में <%@...%> के भीतर Page डायरेक्टिव का यूज किया जाता है और लैंग्वेज के रूप में c# अथवा vb का उपयोग किया जाता है। जैसे
<%@ Page Language="c#" %>
ASPX फाइल में प्रत्येक उस कंट्रोल को जो सर्वर कंट्रोल के रूप में व्यक्त होता है वह पेज क्लास का चाइल्ड क्लास होता है। ऐसे कंट्रोल में runat="server" का उपयोग किया जाता है।
ASPX फाइल को सेव करते हैं तो एक पेज क्लास का ऑब्जेक्ट बनता है और इस पेज के भीतर जिस कंट्रोल के साथ भी runat="server" होता है वह कंट्रोल पेज ऑब्जेक्ट का चाइल्ड ऑब्जेक्ट बन जाता है। एक बात ध्यान देने वाली है की इस पेज के भीतर एक से अधिक फॉर्म टैग हो सकता है परंतु एक और मात्र एक ही form tag के साथ runat="server" का प्रयोग किया जा सकता है।
ASPX फाइल में स्क्रिप्ट संबंधी कोड script tag के अंदर लिखा जाता है। आमतौर पर इवेंट हैंडलर संबंधी कोड को स्क्रिप्ट के भीतर लिखा जाता है। script tag के साथ runat="server" करने पर स्क्रिप्ट्स सर्वर पर रन होता है। इसके अलावा इसको हम HTML कोड के बीच में भी ASP के अनुरूप <%...%> के बीच लिख सकते हैं। जब ASPX फाइल के भीतर HTML के साथ ASP की कोडिंग की जाती है तो ऐसे कोड को इनलाइन कोड कहते हैं।
जब ASPX फाइल के भीतर स्क्रिप्ट के भीतर Methods और इवेंट हैंडलर्स कोड लिखे जाते हैं। साथ ही, उसी फाइल में HTML टैग के भीतर HTML की कोडिंग भी की जाती है तो ऐसे ASPX फाइल को इनलाइन कोड फाइल कहते हैं।इनलाइन ASPX फाइल को हम Code-Behind फाइल में भी रूपांतरित कर सकते हैं। इस फाइल को बनाने के लिए हमें script टैग के सारे methods को एक partial क्लास के मेथड्स के रूप में बदलना होता है। partial क्लास बनाने के लिए हमें Code-Behind फाइल बनाते हैं जो कि एक क्लास file होता है। सी शार्प लैंग्वेज में कोडिंग करने पर इस फ़ाइल का एक्सटेंशन .Cs होता है। इस क्लास फाइल के भीतर हम सारे मेथड्स और इवेंट हैंडलर्स के कोड लिखते हैं। Code-Behind फाइल के मेथड्स को ASPX फाइल के भीतर कॉल करने के लिए Page directive के बाद दो अटरीब्यूट का प्रयोग किया जाता है- Inherits और CodeFile । इन्हेरीट्स अटट्रिब्यूट के वैल्यू में हम उस क्लास का नाम लिखते हैं जबकि CodeFile की वैल्यू में हम Code-Behind फाइल का नाम उसके एक्सटेंशन के साथ लिखते हैं। यह तथ्य नीचे लिखा गया है
© अजीत कुमार, सर्वाधिकार सुरक्षित।
इस आलेख को उद्धृत करते हुए इस लेख के लिंक का भी विवरण दें। इस आलेख को कॉपीराइट सूचना के साथ यथावत साझा करने की अनुमति है। कृपया इसे ऐसे स्थान पर साझा न करें जहाँ इसे देखने के लिए शुल्क देना पडे।
No comments:
Post a Comment