ASP.NET

ASP.NET तथा .NET Framework

ASP.NET माइक्रोसॉफ्ट .NET फ्रेमवर्क का एक भाग है। डॉट नेट फ्रेमवर्क एक सॉफ्टवेयर फ्रेमवर्क है, जिसे माइक्रोसॉफ्ट कंपनी ने 2002 में विकसित किया था। डॉट नेट फ्रेमवर्क अलग-अलग प्रोग्रामिंग लैंग्वेज मे बनायीं गयी applications को चलाने (execute) के लिए कॉमन प्लेटफार्म प्रदान करता है | अर्थात यह एक फ्रेमवर्क है जिसकी सहायता से Windows applications और Web application को आसानी से बनाया और चलाया जा सकता है| ASP.NET पेज बनाने के लिए आप .NET फ्रेमवर्क की विशेषताओं का प्रयोग करेगें। इसके दो भाग है :

  • फ्रेमवर्क की लाइब्रेरी
  • कॉमन लैग्‍वेज (language) रनटाइम।

फ्रेमवर्क क्‍लास लाइबेरी (The Framework Class Library)

.NET फ्रेमवर्क मे हजारों क्‍लासेज होती है जिनका प्रयोग एप्लीकेशन बनाने मे किया जाता है। फ्रेमवर्क क्‍लास लाइब्रेरी को प्रोग्रामिंग कार्य आसान बनाने के लिए डिजाइन किया जाता है। फ्रेमवर्क की कुछ क्‍लासेज के उदाहरण नि‍म्‍न‍लिखित है-

  • फाइल क्‍लास : फाइल क्‍लास हार्ड ड्राइव पर किसी फाइल को प्रदर्शित करने मे सहायता करती है। इसका प्रयोग फाइल की मौजूदगी चै‍क करने (Check the presence of files) नई फाइल बनाने(Create new files,  फाइल डिलीट करने (Delete files), तथा फाइल- संबंधित कई कार्य करने हेतु किया जाता है |
  • ग्राफिक्‍स क्‍लास : ग्राफिक्‍स क्‍लास मे विभिन्‍न प्रकार के चित्र जैसे GIF, PNG, BMP तथा JPEG Images के साथ कार्य किया जाता है। इसका प्रयोग चौकोर (Square), आयताकार(Rectangular shape), वृत-खण्‍ड(Circle-shaped), आकृतियॉ तथा चित्र के अन्‍य तत्‍वों (Elements को बनाने के लिए किया जाता है।
  • रैंडम क्‍लास: रैंडम क्‍लास मे एक रैंडम संख्‍या उत्‍पादित ( produced) होती है।
  • SMTP क्‍लाइन्‍ट क्‍लास : SMTP क्‍लाइन्‍ट क्‍लास से ई-मेल भेजी जाती है। इससे वे ईमेल भी जाती हैं, जिनमे अटैचमैंट व HTML की विषय सूची भी होती हैं।

ये फ्रेमवर्क की सिर्फ चार क्‍लासेज के ही उदाहरण है .NET फ्रेमवर्क मे करीब 13,000  क्‍लासेस है, जिनका प्रयोग आप एप्लीकेशन  बनाने मे कर सकते है।इस फ्रेमवर्क की सभी क्‍लासेज आप Microsoft.NET फ्रेमवर्क की SDK डॉक्‍यमेंटेशन व क्‍लास लाइब्रेरी  नोड का विस्‍तार करके (Ctrl+ W.J) दबाकर देख सकते है।

नोट: माइक्रोसॉफ्ट के फ्रेमवर्क मे टाइप्‍स, क्‍लासेज, पब्लिक मेथड्स पब्लिक प्रॅापर्टीज तथा पब्लिक इवेंट्स हैं।

फ्रेमवर्क की प्रत्‍येक क्‍लास में प्रॅापर्टीज, मैथड्स व इवेंट्स शामिल हो सकते है। किसी क्‍लास द्धारा प्रकट की गयी प्रॉपर्टीज, मैथड्स तथा इवेंट्स क्‍लास के मेम्‍बर होते है। उदाहरण के लिए, यहॉ क्‍लाइन्‍ट क्‍लास के मेंबर्स को आंशिक सूची दी गई है।

प्रॉप‍र्टीज (Properties)

  • होस्‍ट-आपके ई-मेल सर्वर का नाम या IP पता
  • पोर्ट-ई-मेल संदेश भेजने समय प्रयोग किया जाने वाला पोर्ट का नबंर

मेथड्स (Methods)

  • Send-इससे समकालीनता से ई-मेल संदेश भेजे जा सकते है।
  • SendAsync – इससे ई-मेल संदेश असकालीनता से भेजा जाता है।

इवेंट्स (Events)

  • Send Completed-यह इवेंट तब उठता है, जब ई-मेल भेजने का कार्य पूरा हो जाता है।

यदि आप क्‍लास के मेम्‍बर्स को जानते है, तो आप क्‍लास के साथ कोई भी कार्य कर सकते है  उदाहरण के लिए Smtp Client क्‍लास की दो प्रॉपर्टीज होस्‍ट व पोर्ट हैं जो ई-मेल भेजते समय ई-मेल सर्वर का प्रयोग आपकी इच्‍छानुसार करने मे सहायता करती है।

Smtp Client क्‍लास के मैथड्स  send() व  sendAsync() भी ई-मेल भेजने मे सहायक है। send मेथड send ऑपरेशन पूरा होने तक प्रोग्राम का आगे का क्रियान्‍वयन रोक देता है। दूसरी ओर sendAsync() मेथड, ई-मेल भेज देता है। send() मेथड की तरह sendAsync() मेथड send ऑपरेशन के पूरा होने की प्रतीक्षा नही करता ।

Send client क्‍लास का एक इवेंट Send completed है जो तब उठता है, जब ई-भेजने का कार्य समाप्‍त हो जाता है। आप इसके लिए एक इवेंट-हैंडलर भी बना सकते हैं, जो ई-मेल चले जाने पर एक मैसेज दर्शाता है।

सूची दर्शाती है कि किस प्रकार Smtp क्‍लाइन्‍ट क्‍लास अपने send() मेथड का प्रयोग का प्रयोग करके ई-मेल भेजनी है।

Protected sub page_ Load (By Val sender As Object, By Val e As system. EventArgs)

                  Dim client As New System.NET.Mail.SmtpClient()

                  Client.Host = “mail.happy.com

                  client.Post=21

client.Send(“admin@computerhindinotes.com”,”someother@gmail.com” , “Text message” ,”Hello friend”)

End Sub

सूची : SendMail.aspx

सूची मे पेज Smtp क्‍लाइन्‍ट Send() मेथड को ई-मेल भेजने के लिए बुलाता है। पहला पैरामीटर  form : address; दूसरी पैरामीटर  to : address; तीसरा पैरामीटर विषय, तथा पैरामीटर ई-मेल की बॅाडी है।

सावधान : इस सूची मे पेज स्‍थानीय Smtp सर्वर का प्रयोग करके ई-मेल भेजता है। यदि आपका Smtp सर्वर इस योग्‍य नही है तो आपको एक एरर मैसेज आएगा जिसे रिमोट होस्‍ट देगा-”An existing connection was forcibly closed.” आप इंटरनेट इंफॅार्मेशन सर्विस खोलकर, फिर Default Smtp वर्चुअल सर्वर (Virtual Server) पर राईट क्लिक करके तथा Start चुनकर अपना Smtp सर्वर इस योग्‍य बना सकते है |

नेमस्‍पेस (Namespace)

.NET के फ्रेमवर्क मे लगभग 13,000 क्‍लासेज है। यह बहुत अधिक संख्‍या है। यदि माइक्रोसॉफ्ट इन विभिन्‍न नेम-स्‍पेसेज में वर्गीकृत कर दिया है।एक नेमस्‍पेस साधारणतया एक श्रेणी है उदाहरण के लिए, फाइल सिस्‍टम से संबधित सभी क्‍लासेज system.IO नेमस्‍पेस मे स्थित हैं। Microsoft SQL Server से संबधित क्‍लासेज system.Data.sqlclient नेमस्‍पेस मे मौजूद है। पेज में क्‍लास के प्रयोग से पहले, इसके नेमस्‍पेस का नाम देना आवश्‍यक है। इसे करने के अनेक तरीके है।

पहले आप क्‍लास का नाम इसके नेमस्‍पेस के साथ देगे। उदाहरण के लिए, फाइल  क्‍लास system.IO नेमस्‍पेस‍ का भाग है, अत: आप निम्‍न कोड का प्रयोग यह चै‍क करने के लिए कर सकते है। कि फाइल मौजूद है या नही :

System.IO.File.Exists(“SomeFile.txt”)

हर बार नेमस्‍पेस को क्‍लास के नाम के साथ प्रयोग करना काफी उबाऊ (tedious) हो जाता है (इसमें अत्‍यधिक टाइपिंग शामिल है) इसे करने का दूसरा तरीका नेमस्‍पेस को इम्पोर्ट  करना है। किसी खास नेमस्‍पेस को इपोर्ट करने के लिए पेज में <%@import%> डायरैक्टिव को जोडिये। उपर्युक्‍त सूची मे हमने system.Net.Mail नेमस्‍पेस को इपोर्ट किया है क्‍योकि Smtp Client इसी का भाग है। उपर्युक्‍त सूची मे निम्‍न डायरैक्टिव का प्रयोग पेज के सबसे उपर किया गया है।

<%@import namespace =”system.net.mail”%>

किसी खास नेमस्‍पेस को इंपोर्ट करने के पश्‍चात् इसकी क्‍लासेज के नामों के आगे नेमस्‍पेस को लगाना आवश्‍यक नही है। अंत मे, यदि आप पायें कि अपनी ऐप्‍लीकेशन के कई पेजों मे आप नेमस्‍पेस का प्रयोग कर रहे हैं, तो आप नेमस्‍पेस की प‍हचान के लिए अपनी ऐप्‍लीकेशन के सभी पेजों की रूप-रेखा बना सकते है।

नोट : एक वेब कन्फिगरेशन फाइल एक विशेष प्रकार की फाइल है, जिसका प्रयोग आप अभी एप्लीकेशन को कॉन्फ़िगर करने के लिए करते है। ध्‍यान रखिये कि यह फाइल XML फाइल है, इसलिए इसके सभी तत्‍व केस-सेन्सिटिव हैं। वेब कॉन्फ़िगरेशन फाइल को अपनी एप्लीकेशन मे जोडने के लिए वेबसाइट सलेक्‍ट कीजिए, नया आइटम जोडिये तथा वेब कन्फिगरेशन फाइल जोडियें।

यदिे आप उपर्युक्‍त सूची मे दी हुई कन्फिगरेशन फाइल अपनी ऐप्‍लीकेशन में जोड दें, तो आपको क्‍लासेज का प्रयोग करने के लिए System.Net.Mail नेमस्‍पेस को इम्‍पोर्ट करने की कोई आवश्‍यकता नही है। उदाहरण के लिए, यदि आप अपने प्रोजेक्‍ट मे Web.config फाइल शामिल करें,तो आप निम्‍नलिखित सूची मे दिये गये पेज से <%@import%> डायरैक्टिव हटा सकते हैं।

आपको सभी नेमस्‍पेसेज को इंपोर्ट करने की आवश्‍यकता नहीं है। ASP.NET फ्रेमवर्क मे अधिकतर प्रयोग होने वाली क्‍लासेज का प्रयोग आप मुफ्त (free) मे कर सकते है। ये नेमस्‍पेसेज है :

  • System
  • Collections
  • Collections.Specialized
  • Configuration
  • Text
  • Text.Regular.Expressions
  • Web
  • Web.Caching
  • Web.SessionState
  • Web.Security
  • Web.Profile

असैम्‍बलीज (Assemblies)

एक असैम्‍बली वास्‍तविक .dll फाइल है जो आपकी हाई ड्राइव पर है, जहॉ .Net फ्रेमवर्क की क्‍लासेज संग्रहीत होती है। उदाहरण के लिए,ASP.NET फ्रेमवर्क की सभी क्‍लासेज System.web.dII नामक असैम्‍बली में स्थित हैं। एक असैम्‍बली .Net फ्रेमवर्क की सुरक्षा तथा वर्जन-कन्‍ट्रोल की प्रा‍थमिक इकाई है। क्‍योकि इसका विस्‍तार अनेक फाइलों में होता है, इसलिए इसे अधिकतर “लॅाजिकल” dll भी कहा जाता है

नोट : .Net फ्रेमवर्क (वर्जन 2.0 ) में 51 असेम्‍बलीज हैं। असेम्‍बलीज  दो प्र‍कार की होती है : एक प्राइवेट असैम्‍बली जिसका प्रयोग सिर्फ एक ही एप्लिकेशन करती है।  दूसरी शेयर्ड असैम्‍बली जिसका प्रयोग एक ही सर्वर पर स्थित सभी ऐप्लिकेशन्‍स करती है।

शेयर्ड असैम्‍बलीज ग्‍लोबल असैम्‍बली कैश (GAG) मे स्थित होती है। उदाहरण के लिए, System.Web.dll तथा अन्‍य असैम्‍बलीज जो .Net फ्रेमवर्क के साथ आती है, ग्‍लोबल असैम्‍बली कैश में स्थित है

नोट : भौतिक रूप मे ग्‍लोबल असैम्‍बली कैश कम्‍प्‍यूटर के \Window|Assembly फोल्‍डर में स्थित होती है। प्रत्‍येक असैम्‍बली की ए‍क अलग कॅापी \Window\Microsoft.Net\FrameWork\फोल्‍डर में होती है। असैम्‍बलीज का पहला सैट रन-टाइम पर दूसरा सैट कपाइल-टाइम पर प्रयोग मे आता है।

असैम्‍बली में स्थित क्‍लास को अपनी ऐप्‍लीकेशन में प्रयोग करने से पहले आपको इसका संदर्भ जोड़ना पड़ेगा। डिफॉल्‍ट रूप में ASP.Net ऐप्लिकेशन सभी असैम्‍बलीज का संदर्भ रखती है, जो GAC में दी हुई हैं :

  •  Mscorlib.dll
  •  System.dll
  •  System.Configuration.dll
  •  System.web.dll
  •  System.date.dll
  •  System.Web.Services.dll
  •  Sytem.Xml.dll
  •  System.Drawing.dll
  •  System.EnterpriseServices.dll
  • System.web.Mobile.dll

.Net फ्रेमवर्क में किसी विशेष क्‍लास का प्रयोग करने के लिए आपको दो कार्य होंगे। पहला, आपकी ऐप्लिकेशन को उस असैम्‍बली का संदर्भ प्रयोग करना होगा जिसमें क्‍लास स्थित है। दूसरा, आपकी ऐप्लिकेशन को क्‍लास से जुड़े नेमस्‍पेस को इंपोर्ट करना होगा।

अधिकतर स्थितियों में असैम्‍बली के संदर्भ की आवश्‍यकता नहीं है, क्‍योंकि अधिकतर प्रयोग में आने वाली असैम्‍बलीज स्‍वयं ही संदर्भित होती हैं। परन्‍तु विशेष असैम्‍बली का प्रयोग करने के लिए उसमें संदर्भ डालना होगा। उदाहरण के लिए, ऐक्टिव डायरैक्‍टरी से पारस्‍परिक संबंध के लिए सिस्‍टम में क्‍लासेज का प्रयोग करना होगा। इसके लिए System.directoryservices नेमस्‍पेस का प्रयोग करके system.Directoryservices.dll असैम्‍बली का संदर्भ अपनी ऐप्‍लीकेशन में डालना होगा।
.Net फ्रेमवर्क SDK डॉक्‍यूमेंटेशन की प्रत्‍येक क्‍लास असैम्‍बली तथा नेमस्‍पेस का प्रयोग करती हैं। उदाहरण के लिए, यदि आप डॉक्‍यूमेंटेशन में messageQueue क्‍लास देखें तो आप पायेंगे कि यह क्‍लास System.Messaging नेमस्‍पेस में स्थित system.Messaging.dll असैम्‍बली में है।

यदि आप विजुअल वैब डैवलपर का प्रयोग कर रहे हैं, तो आप एक असैम्‍बली में सदंर्भ निम्‍न प्रकार में डाल सकते हैं : मेन्‍यू ऑप्‍शन वेबसाइट “Add Reference” चुनिए, तथा उस असैम्‍बली के नाम को सिलैक्‍ट कीजिए जिसका संदर्भ डालना है। उदाहरण के लिए, System.Messaging.dll असैम्‍बली में संदर्भ डालने पर निम्‍नलिखित सूची में दी गई वैब कन्फिगरेशन फाइल आपको ऐप्लिकेशन में जोड़ दी जाती है :
<namespaces>
<clear/>
<add namespace = “System”/>
<add namespace = “System.Web.UI.WebControls”/>
<add namespace = “System.Web.UI.WebControls.WebParts”/>
<add namespace = “System.Web.UI.HtmlControls”/>
</namespaces>
यदि आप विजुअल वैब डैवलपर का प्रयोग न करना चाहें, तो आप System.Messaging.dll असैम्‍बली का संदर्भ उपर्युक्‍त सूची में दी गई फाइल को हाथ से बनाकर जोड़ सकते हैं।

CLR (Common Language Runtime)