एऍसपी.नेट
ASP.NET एक वेब एप्लीकेशन फ्रेमवर्क है जिसका विकास एवं विपणन माइक्रोसॉफ्ट द्वारा प्रोगामर को डायनामिक वेब साइट, वेब एप्लीकेशन एवं वेब सेवायें निर्मित करने की अनुमति हेतु किया गया है। .NET फ्रेमवर्क के संस्करण 1.0 के साथ इसे पहली बार जनवरी 2002 में जारी किया गया था एवं यह माइक्रोसॉफ्ट की एक्टिव सर्वर पेजिज़ (ASP) प्रौद्योगिकी का उत्तराधिकारी है। ASP.NET का निर्माण कॉमन लैग्वेज रनटाइम (CLR) पर किया गया है जिससे प्रोगामरों को कोई भी सहायक .NET भाषा का प्रयोग करते हुए ASP.NET कोड लिखने की सुविधा होती है। ASP.NET SOAP एक्सटेंशन फ्रेमवर्क ASP.NET कंपोनेंट को SOAP संदेशों को प्रक्रियारत करने की सुविधा प्रदान करता है।
इंटरनैट सूचना सेवायें 4.0 के 1997 में जारी होने के उपरांत माइक्रोसॉफ्ट ने एक नए वेब एप्लीकेशन मॉडल हेतु संभावनाओं के अनुसंधान पर कार्य प्रारंभ किया जो कि ASP के संबंध में सामान्य शिकायतों, विशेषकर प्रस्तुत एवं सामग्री के प्रथक्करण के संबंध में, का निराकरण कर सके एवं "क्लीन" कोड लिखने में सक्षम हो। मार्क ऐंडर्स, प्रबंधक IIS टीम एवं ड्यूक विश्वविद्यालय से स्नातक स्कॉट गुथरी, जिन्होंने 1997 में माइक्रोसॉफ्ट में कार्यभार ग्रहण किया, को इस मॉडल के निर्धारण की जिम्मेदारी सौंपी गई। ऐंडर्स एवं गुथरी द्वारा दो माह के भीतर प्रारंभिक डिजाइन विकसित की गयी एवं गुथरी ने वर्ष 1997 में क्रिसमस के अवकाश के दौरान प्रारंभिक प्रोटोटाइप को कोडबद्ध किया। प्रारंभिक प्रोटोटाइप को "XSP" कहा गया। वर्ष 2007 के एक साक्षात्कार में गुथरी ने बताया कि "लोग हमेशा यह पूछेंगे कि 'X' का क्या मतलब है। उस समय इसका वास्तव में कोई मतलब नहीं था। XML उससे प्रारंभ हुआ ; XSLT उससे प्रारंभ हुआ। प्रत्येक अच्छी चीज़ X से प्रारंभ होती हुई प्रतीत हुई इसीलिये हमने स्पष्टतः इसका यह नाम रखा." XSP का प्रारंभिक प्रोटोटाइप जावा(Java) का प्रयोग करते हुये बनाया गया था, (8) लेकिन जल्द ही कॉमन लैग्वेज रनटाइम (CLR) के शीर्ष पर नए प्लेटफार्म का निर्माण तय किया गया क्योंकि इसने ऑब्जेक्ट ओरिएंटेड प्रोगामिंग वातावरण, कचरा एकत्रण एवं अन्य विशेषताओं की सुविधा प्रदान की, जो कि वांछनीय विशेषतायें मानी गयीं जिसे माइक्रोसॉफ्ट का कंपोनेंट ऑब्जेक्ट मॉडल प्लेटफॉर्म सपोर्ट नहीं करता. गुथरी ने इस निर्णय को एक "बड़ा जोखिम" करार दिया क्योंकि उनके नये वेब विकास प्लेटफॉर्म की सफलता CLR की सफलता पर निर्भर होगी जो कि XSP की तरह विकास की आंरभिक अवस्था में है, यहाँ तक कि XSP टीम माइक्रोसॉफ्ट में पहली ऐसी टीम थी जिसने CLR को लक्ष्य किया था।
कॉमन लैग्वेज रनटाइम की गति के साथ, XSP को C# (आंतरिक रूप से "प्रोजेक्ट कूल" के रूप में विख्यात लेकिन जनता से गुप्त रखा गया) में पुनः कार्यान्वित किया गया एवं इसका नाम परिवर्तित कर ASP+ रखा गया क्योंकि इस बिंदु तक एक्टिव सर्वर पेजिज़ के उत्तराधिकारी के रूप में नए प्लेटफॉर्म को देखा गया एवं ASP विकसितकर्ताओं हेतु आसान माइग्रेशन मार्ग उपलब्ध कराने का इरादा था।
फीनिक्स, एरिजोना में 02 मई 2000 को आयोजित ASP कनेक्शन सम्मेलन में मार्क ऐंडर्स ने पहली बार ASP+ का प्रदर्शन किया। विस्तृत जनता के समक्ष प्रदर्शन एवं ASP+ का आरंभिक बीटा रिलीज़ (एवं शेष .NET फ्रेमवर्क) 11 जुलाई 2000 को ऑरलैंडो, प्लोरिडा में आयोजित 2000 प्रोफेशनल डैब्लपर्स सम्मेलन में किया गया। बिल गेट्स की मुख्य प्रस्तुति के दौरान, फुजित्सू ने ASP+ को COBOL के एक संयुग्म के रूप में प्रयोग का प्रदर्शन किया एवं माइक्रोसॉफ्ट के नये विजुअल बेसिक .NET एवं C# लैग्वेज कई अन्य लैग्वेज के साथ इसके सपोर्ट की उद्घोषणा की गयी, इसके अलावा एक्टिव स्टेट द्वारा सृजित इंटरऑपरेबिलिटी टूल्स के रूप में पायथन एवं पर्ल सपोर्ट की उद्घोषणा की गयी।
वर्ष 2000 के उत्तरार्ध में ".NET" ब्रांड का एक बार निश्चय हो जाने के पश्चात ASP+ का नाम बदलकर ASP.NET रखने का निर्णय लिया गया। उस वर्ष "द MSDN शो" में मार्क ऐंडर्स ने यह बताया कि ".NET प्रयास कई कारकों के बारे में है, यह सॉफ्टवेयर को एक सेवा के रूप में प्रदान करने के बारे में है, यह XML एवं वेब सेवाओं के बारे में है एवं यह इंटरनेट में इसकी क्षमता अनुसार वृद्धि करने के बारे में है।.. हम इसका नाम .NET फ्रेमवर्क बनाने वाले अन्य प्लेटफॉर्म अंशों के साथ लाना चाहते हैं।"
चार वर्षों के विकास एवं 2000 व 2001 में बीटा रिलीज की श्रेणी के उपरांत, ASP.NET 1.0 को 05 जनवरी 2002 को .NET फ्रेमवर्क के संस्करण 1.0 के एक भाग के रूप में जारी किया गया। रिलीज़ होने के पहले ही, ASP.NET के बारे में दर्जनों किताबें लिखी गयीं एवं माइक्रोसॉफ्ट ने इसे बड़े पैमाने पर वेब सेवाओं हेतु अपने प्लेटफॉर्म के रूप में प्रोत्साहित किया। गुथरी ASP.NET हेतु उत्पाद यूनिट प्रबंधक बने एवं विकास जारी रहा तथा 24 अप्रैल 2003 को विंडोज़ (Windows) सर्वर 2003 के एक भाग के रूप में संस्करण 1.1 रिलीज हुआ। इस रिलीज़ में मोबाइल उपकरणों हेतु ASP.NET के सपोर्ट में सुधार पर ध्यान केन्द्रित किया गया।
.NET पेज, जिन्हें विधिवत रूप से "वेब फॉर्म्स " के रूप में जाना जाता है, अनुप्रयोग विकास हेतु मुख्य निर्माण ब्लॉक हैं। फाइलों में वेब फॉर्म्स ".aspx " एक्सटेंशन के साथ उपस्थित रहते हैं; ये फाइलें विशेष रूप से स्थितिज (X) HTML मार्कअप के साथ सर्वर साइड वेब कंट्रोल एवं प्रयोक्ता कंट्रोल को पारिभाषित करने वाले मार्कअप रखती हैं जिसमें डेब्लपर्स वेब पेज हेतु समस्त आवश्यक स्थितिज एवं गतिज सामग्री रखते हैं। इसके अतिरिक्त डायनामिक कोड, जो कि सर्वर पर चलाता है, को एक ब्लॉक codice_1 के भीतर एक पेज में रखा जा सकता है जो कि PHP, JSP तथा ASP जैसी अन्य वेब विकास प्रौद्योगिकियों के समान है, लेकिन डाटा बाइन्डिंग के उद्देश्य के अलावा इस तरीके को सामान्यतः हतोत्साहित किया जाता है क्योंकि पेज प्रदर्शन के समय इसमें अधिक कॉल्स की आवश्यकता होती है।
ध्यान दें कि यह नमूना कोड-बिहाइंड के विरोध में कोड "इनलाइन" का उपयोग करता है। माइक्रोसॉफ्ट बिहाइंड मॉडल का प्रयोग करते हुये डायनामिक प्रोगाम कोड के साथ कार्य अनुशंसित करता है जो कि इस कोड को एक अलग फाइल या विशेष रूप से निर्धारित स्क्रिप्ट टैग में रखता है। कोड बिहाइंड फाइलों का नाम विशेष रूप से "MyPage.aspx.cs" या "MyPage.aspx.vb" जैसा होता है जबकि पेज फाइल "MyPage.aspx" होती है (पेज फाइल (ASPX) जैसा ही फाइल नाम लेकिन पेज लैंग्वेज को दर्शाते हुये अंतिम एक्सटेंशन के साथ). यह तरीका माइक्रोसॉफ्ट विजुअल स्टूडियो एवं अन्य IDEs में स्वचालित है। प्रोगामिंग के इस तरीके का प्रयोग करते हुये डेब्लपर दस्तावेज के प्रक्रियागत अध्ययन के स्थान पर विभिन्न घटनाओं जैसे 'पेज लोड हो रहा है' या 'एक कंट्रोल पर क्लिक किया जा रहा है' आदि के उत्तर हेतु कोड लिखता है।
ASP.NET का कोड-बिहाइंड मॉडल परंपरागत ASP से अलग है जिसमें यह डेब्लपर को प्रस्तुति तथा सामग्री के पृथक्करण को ध्यान में रखते हुए अनुप्रयोगों के निर्माण के लिये प्रोत्साहित करता है। सिद्धांत रूप में, यह एक वेब डिजाइनर को, उदाहरण के लिए, इसे चलाने वाले प्रोग्रामिंग कोड में व्यवधान हेतु डिजाइन मार्कअप पर कम क्षमता के साथ ध्यान केन्द्रित करने की अनुमति देगा। यह मॉडल व्यू-कंट्रोलर फ्रेमवर्क में दृश्य से कंट्रोलर के पृथक्करण के समान है।
वेब सर्वर पर होस्ट किये जाते है तथा स्टेट-लेस HTTP प्रोटोकॉल पर देखे जाते है। इसलिये, यदि एप्लीकेशन स्टेट-फुल अर्न्तक्रिया का प्रयोग करता है, तो इसे स्वंय ही स्टेट प्रबन्धन को कार्यान्वित करना होगा। ASP.NET अनुप्रयोगों में स्टेट प्रबन्धन के लिये ASP.NET विभिन्न कार्यकलाप प्रदान करता है। सिद्धांततः, माइक्रोसॉफ्ट "स्टेट" को अधिकतर GUI स्टेट मानता है, बड़ी समस्या उस समय पैदा होगी जब कोई एप्लीकेशन फिनिट स्टेट मशीन जैसे "डाटा ट्रेक" पर नजर रखने की आवश्यकता समझता है जो कि अनुरोध (आलसी मूल्यांकन) के दौरान अल्पकालिक स्टेट है अथवा इसे प्रारंभ करने में वक्त लगता है।
एप्लीकेशन स्टेट उपभोक्ता-परिभाषित विभिन्नताओ का संग्रह है जो कि एक ASP.NET एप्लीकेशन के द्वारा शेअर किया जाता है। जिस समय एप्लीकेशन के प्रथम अवसर पर लोडिंग के समय codice_2 की घटना फायर होती है, उस समय यह सैट तथा इनिशियलाइज होती हैं तथा अंतिम दृष्टान्त रहने तक उपलब्ध होती है। codice_3 स्टेट विभिन्नतओं को एप्लीकेशन संग्रह का प्रयोग करते हुए देखा जा सकता है जो कि एप्लीकेशन स्टेट विभिन्नताओ के लिये आवरण प्रदान करता है। एप्लीकेशन स्टेट विभिन्नताओं को नाम से पहचाना जाता है।
सेशन स्टेट प्रयोक्ता-परिभाषित सेशन विभिन्नताऐं होती है जो कि प्रयोक्ता सेशन दौरान मौजूद रहती हैं। यह विभिन्नताऐं उपभोक्ता सेशन के विभिन्न अवसरों के लिये विशिष्ट होती है, तथा सेशन codice_4 संग्रह का प्रयोग करते हुए देखी जा सकती हैं। सेशन विभिन्नताओं को निष्क्रियता के निर्धारित समय के पश्चात स्वयं ही नष्ट हो जाने के लिये सेट किया जा सकता है, यद्यपि सेशन समाप्त नहीं हुआ हो। ग्राहक सिरे पर, प्रयोक्ता सेशन को या तो कुकीज से अथवा URL में ही सेशन आय डी (Id) की एन्कोडिंग के द्वारा पहचाना जाता है।
ASP.NET, सेशन विभिन्नताओं के लिये पर्सिसटेन्स के तीन मोड को सहायता करता है।
व्यू स्टेट से तात्पर्य पेज-स्तर के स्टेट प्रबंधन तंत्र से है, जिसका प्रयोग वेबफॉर्म कंट्रोल्स एवं विड्जैट्स की अवस्था को बनाये रखने के लिए ASP.NET अनुप्रयोगों द्वारा उत्सर्जित HTML पेजों द्वारा किया जाता है। कंट्रोल्स की स्थिति को कोडबद्ध किया जाता है एवं codice_5 नाम से प्रचलित अदृश्य फील्ड में प्रत्येक फॉर्म प्रस्तुति पर सर्वर को भेजा जाता है। सर्वर, वैरिएबिल को वापस भेजता है ताकि जब भी पेज को पुनः प्रस्तुत करते हैं, कंट्रोल उनकी अंतिम अवस्था पर प्रस्तुत होते हैं। सर्वर के पक्ष में, अनुप्रयोग व्यूस्टेट को परिवर्तित कर सकता है, यदि प्रोसेसिंग के परिणामस्वरूप कंट्रोल की अवस्था में अद्यतनीकरण हो। सर्वर पर स्वतंत्र या अकेले कंट्रोलों की अवस्था को डीकोडेड किया जाता है एवं codice_6 कलेक्शन का प्रयोग करते हुये ASP.NET पेजों पर प्रयोग हेतु उपलब्ध हैं। इसके लिए मुख्य उद्देश्य पोस्टबैक्स से परे फॉर्म सूचना का संरक्षण है। अतः जब एक प्रयोक्ता फॉर्म को भरता है एवं कोई गलत मूल्य प्रविष्ट कर देता है तो इसमें सुधार के लिए प्रयोक्ता को वापस करते समय फॉर्म स्वतः भर जाता है। व्यूस्टेट बिना किसी चूक के (वाय डिफाल्ट) ऑन होता है एवं पेज पर प्रत्येक कंट्रोल के बाद यह डाटा को सामान्यतः श्रेणीबद्ध कर देता है, इस बात को दृष्टिगत किये बिना कि इसका वास्तविक प्रयोग पोस्टबैक के दौरान हुआ था। इसके व्यवहार में सुधार किया जा सकता है (और किया भी जाना चाहिये), हालाकि, व्यूस्टेट प्रति कंट्रोल, प्रति पेज या सर्वर-वाइड आधार पर डिसऐबिल किया जा सकता है।
डेब्लपर्स को पेज या कंट्रोल के व्यूस्टेट में संवेदनशील या व्यक्तिगत सूचना भंडारित करते समय सावधान रहने की आवश्यकता है क्योंकि व्यूस्टेट डाटा वाले बेस 64 स्ट्रिंग को वेब पर उपलब्ध किसी भी एक टूल या किसी भी जेनरिक बेस 64 डिकोडर द्वारा आसानी से अश्रेणीबद्ध किया जा सकता है। बिना किसी चूक के (वाय डिफाल्ट), codice_5 मूल्य को इन्क्रिप्ट नहीं करता, हालाकि, निश्चित स्तर की सुरक्षा के रखरखाव की अनुमति हेतु सर्वर-वाइड (एवं सर्वर विशेष) आधार पर इन्क्रिप्शन को इनेबिल किया जा सकता है।(31)
ASP.NET एक "कैचे" लक्ष्य प्रदान करता है जिसे प्रयोग के दौरान शेयर किया जाता है तथा उसका विभिन्न लक्ष्यों का भंडारण करने के लिये भी प्रयोग किया जा सकता है। "कैचे" लक्ष्य में केवल निर्दिष्ट समय की मात्रा के लिये डाटा निहित होता है जो कि समय के गुजरने के साथ ही अपने आप समाप्त हो जाता है।
ASP.NET द्वारा सपोर्ट किये जाने वाले स्टेट प्रबंधन के अन्य तरीकों में कुकीज़, कैचिंग एवं क्वैरी स्ट्रिंग का प्रयोग शामिल है।
जब प्रथम बार रिलीज़ किया जाता है तब ASP.NET को टैम्पलेट इंजन की कमी होती है। क्योंकि .NET का ढ़ांचा लक्ष्य उन्मुख होता है तथा विरासत को अनुमति प्रदान करता है, जिसे कई डेब्लपर्स "system.Web.UI.Page" से प्राप्त किये हुये नयी आधार श्रेणी को पारिभाषित करेंगे, लिखने की विधि जो HTML को प्रतिपादित करती है तथा बाद में इस नई श्रेणी से प्राप्त किये गये पृष्ठों को अपने एप्लीकेशन में बनाऐंगे. जबकि इससे आम तत्वों का साइट पर पुनः प्रयोग किया जा सकेगा, इससे जटिलता में वृद्धि होती है तथा मार्कअप के साथ स्रोत कोड मिल जाता है। इससे भी अधिक, इस विधि को एप्लीकेशन को शुरु करके केवल देख कर ही जांचा जा सकता है, न कि उसे डिजाइन करते समय. अन्य डेब्लपर्स ने उसी नेवीगेशन तथा प्रत्येक पृष्ठ के अन्य तत्वों के कार्यान्वयन से बचने के लिये इनक्लूड फाइल तथा अन्य तरीकों को प्रयोग किया है।
ASP.NET ने "मास्टर पेजेस" का धारणा का परिचय दिया है जो कि टेम्पलेट आधारित पृष्ठ विकास की अनुमति देता है। एक वेब एप्लीकेशन में एक या एक से अधिक मास्टर पेजेस हो सकते हैं जोकि ASP.NET 3.5 से शुरु होकर एक साथ रखे जा सकते हैं। मास्टर टेम्पलेट में "कन्टेन्ट प्लेस होल्डर्स" के नाम से प्लेस होल्डर कंट्रोल होते हैं जो यह प्रदर्शित करते हैं कि गतिशील सामग्री कहां जाती है, साथ ही साथ HTML तथा जावा-स्क्रिप्ट(Javascript) चाइल्ड पेजेस के दौरान प्रयोग किया जाता है।
चाइल्ड पेजेस उन कन्टेन्ट प्लेस होल्डर कंट्रोल्स का प्रयोग करते हैं जिसे मास्टर पेज के प्लेस होल्डर से प्रतिचित्रित किया जाना चाहिये जोकि कन्टेन्ट पेज में निहित हैं। बचे हुये पृष्ठ को मास्टर पेज के शेयर्ड भागों से पारिभाषित किया जाता है, जैसेकि वर्ड प्रोसेसर का मेल-मर्ज होता है। कन्टेन्ट पेज के सभी मार्कअप तथा सर्वर नियंत्रक कन्टेन्ट प्लेस होल्डर नियंत्रक में ही प्लेस किये जाने चाहिये।
जब कन्टेन्ट पेज के लिये कोई आग्रह किया जाता है तब ASP.NET कन्टेन्ट पेज के आउटपुट को मास्टर पेज के आउटपुट के साथ मिलाता है तथा उपभोक्ता को आउटपुट भेजता है।
मास्टर पेज कन्टेन्ट पेज से पूरी तरह सुगम्य रहता है। इसका आशय यह है कि कन्टेन्ट पेज अभी भी हैडर्स में परिवर्तन कर सकता है, शीर्षक को बदल सकता है, कैचिंग आदि को कॉन्फिगर कर सकता है। यदि मास्टर पेज सार्वजनिक विशेषताओं अथवा विधियों को एक्सपोज़ करता है (जैसे कि कॉपीराइट नोटिस की सैटिंग करने के लिये) तो कन्टेन्ट पेज भी इसका प्रयोग कर सकता है।
ASP.NET के विभिन्न संस्करणों के साथ सहभागी अन्य फाइल विस्तारों (एक्स्टेंशनों) में शामिल हैं:
साधारणतः ASP.NET निर्देशिका ढांचा डेवलपर्स को प्राथमिकता के द्वारा निर्धारित होता है। कुछे एक आरक्षित निर्देशिका नामों के अलावा, साइट में निर्देशिकाओं को किसी भी संख्या तक बढ़ाया जा सकता है। ढांचे को विशिष्ट रूप से प्रत्यक्षतः URL में दिखाया जा सकता है। यद्यपि ASP.NET प्रोसेसिंग के दौरान किसी भी बिन्दु पर अनुदेश को रोकने का उपाय प्रदान करता है, डेव्लर को केन्द्रीय एप्लीकेशन अथवा फ्रन्ट नियंत्रक के माध्यम से अनुरोध को पूरा करने के लिये बाध्य नहीं किया जाता.
विशेष निर्देशिका नाम (ASP.NET 2.0 से) है:
ASP.NET, वेब सर्वर पर एक या अधिक DLL फाइलों के लिये सर्वर-साइड कोड के संकलन के द्वारा अन्य स्क्रिप्ट-आधारित प्रौद्योगिकियों (क्लासिक ए एस पी मिलाकर) के ऊपर निष्पादन लाभों को उद्देशित करता है। यह संकलन प्रथम बार पृष्ठ के अनुरोध करते ही (इसका आशय है कि डेवलपर को पृष्ठों के लिये अलग संकलन कदम उठाने की आवश्यकता नहीं है) स्वयं ही घटित होता है। यह फीचर संकलित बायनरी के निष्पादन लाभों के साथ स्क्रिप्टिंग भाषाओं के द्वारा आसान विकास प्रदान करता है। हालांकि, संकलन, वेब प्रयोक्ता के लिए ध्यान देने योग्य परन्तु संक्षिप्त देरी पैदा कर सकता है, जब वेब सर्वर से नवीनतम संकलित पृष्ठ का प्रथम बार अनुरोध किया हो, परन्तु तब तक फिर से नहीं जब तक अनुरोध किये पृष्ठ को आगे अपडेट नहीं किया जाता.
ASPX तथा अन्य स्रोत फाइलें इन्टरनेट सूचना सेवा सर्वर (अथवा अन्य अनुकूल ASP.NET सर्वर्स; नीचे अन्य कार्यान्वयन देखें) पर वर्चुअल होस्ट में प्लेस की जाती है। प्रथम बार क्लाइन्ट पृष्ठ के लिये अनुरोध करता है, नेट ढ़ांचा फाइल को नेट असेम्बली में पेअर तथा संकलित करता है तथा प्रतिक्रिया भेजता है; अगले अनुरोध DLL फाइलों से सर्व किये जाते हैं। डिफाल्ट से ही, ASP.NET प्रथम अनुरोध पर 1000 फाइलों के बैच में पूरी साइट को संकलित करेगा। यदि संकलन की देरी से समस्याऐं आ रही हैं तो, बैच का आकार अथवा संकलन योजना को ट्विक्ड (tweaked) किया जा सकता है।
डेवलपर्स, संस्थापन के पूर्व अपनी 'कोड बिहाइन्ड' फाइलें, एम एस विजुअल (MS Visual) का प्रयोग करते हुए पूर्व संकलित करने के लिये चुन सकते हैं, जिससे उत्पादन पर्यावरण में जस्ट-इन-टाइम संकलन के लिये आवश्यकता को दूर किया जा सके। यह वेब सर्वर पर स्रोत कोड होने की आवश्यकता को दूर करता है।
माइक्रोसॉफ्ट ने ASP.NET में प्लग करने के लिये कुछ विस्तार ढ़ांचा जारी किया है तथा उसकी कार्यशीलता में विस्तार किया है। उनमें से कुछ हैं:
ASP.NET, विन्डोज (Windows) प्रयोक्ता इन्टरफेस के समान "कन्ट्रोल" से संकलित किये गये पृष्ठों का निर्माण करने के लिये क्षमता प्रदान करके विन्डोज (Windows) एप्लीकेशन विकास से वेब विकास के लिये डेव्लपर्स सन्क्रमण को आसान बनाने का प्रयास करता है। "बटन" अथवा "लेबल" जैसे वेब कन्ट्रोल वैसे ही कार्य करते हैं जैसे उसका विन्डोज (Windows) प्रतिरूप: कोड अपनी विशेषताऐं सौंप सकता है तथा उसकी घटना की प्रतिक्रिया व्यक्त कर सकता है। कन्ट्रोल को जानकारी होती है कि उसे क्या करना है; जबकि विन्डोज (Windows) कन्ट्रोल स्क्रीन पर अपने आप को ड्रा करता है, वेब कन्ट्रोल एच टी एम एल HTML तथा जावा-स्क्रिप्ट(Javascript) का भाग निर्माण करता है जो कि एण्ड-यूजर के ब्राउजर को भेजे गये परिणाम पृष्ठ के भाग को निर्माण करता है।
ASP.NET प्रोग्रामर को ASP तथा PHP जैसे परम्परागत वेब-स्क्रिप्टिंग पर्यावरण के बजाय घटना वाहित GUI मॉडल का प्रयोग करते हुए एप्लीकेशन्स का विकास करने के लिये प्रोत्साहित करता है। फ्रेमवर्क, जावा-स्क्रिप्ट ((Javascript)) जैसी वर्तमान प्रौद्योगिकियों को स्वाभाविक स्टेटलेस वेब पर्यावरण को दृढ़ स्टेट (अन्तर-अनुरोध) में लाने के लिये आंतरिक घटकों जैसे - "viewstate" के साथ जोड़ने का प्रयास करता है।
ASP क्लासिक से तुलना करने पर अन्य असमानताऐं निम्नवत हैं:
IIS 6.0 पर तथा उससे नीचे, ए एस पी फ्रेमवर्क के विभिन्न संस्करणों का प्रयोग करते हुए लिखे गये पृष्ठ थर्ड-पार्टी लाइब्रेरीज के उपयोग के बगैर सेशन स्टेट को शेअर नहीं कर सकते. यह आलोचना ASP.NET तथा साथ साथ IIS-7 को रन करने वाले ASP एप्लीकेशन पर लागू नहीं होती. IIS-7 के साथ मॉड्यूल एकीकृत पाइप लाइन में रन कर सकती है जो मॉड्यूल को किसी भी अनुरोध को कार्यान्वित करने के लिये कोई भी भाषा में लिखने की अनुमति देता है।
ASP.NET 2.0 वेब फॉर्म मार्कअप का निर्माण करता है जो डब्ल्यु थ्री सी (W3C) वैधता पास करती है परंतु यह विवादास्पद है कि क्या यह सुगम्यता में वृद्धि करता है, जो कि सांकेतिक XHTML पेज + CSS प्रतिनिधित्व का एक लाभ है। कई कन्ट्रोल जैसे कि "लॉगिंग" कन्ट्रोल तथा "विजार्ड" कन्ट्रोल, डिफाल्ट से ही प्रारूप के लिये HTML टेबलज का प्रयोग करते हैं। माइक्रोसॉफ्ट ने ASP.NET 2.0 css कन्ट्रोल एडप्टर को जारी करके इस समस्या का समाधान किया है जो एक फ्री एड-ऑन है जो कि अनुवर्ती सुगम्य XHTML+ CSS मार्कअप के निर्माण के साथ साथ ASP.NET 4.0 में लॉगिन कन्ट्रोल में एक विशेषता जोड़ता है जो उसे टेबल मोड के बजाय डिव मोड पर रन करने में सक्षम बनाता है।
पृष्ठों की पुनः स्थिति तथा ब्राउजर हिस्ट्री बदलने जैसे ASP.NET वेब फॉर्म फीचर केवल इंटरनेट एक्सप्लोरर में ही उपलब्ध हैं।
माइक्रोसॉफ्ट, वेब सेवाओं तथा फलस्वरूप प्राथमिक एप्लीकेशन सर्वर सॉल्युशन के साथ IIS / ASP.NET को स्थापित करता है। जटिल बिजनेस एप्लीकेशन्स जो कि "आउट ऑफ द बॉक्स" माइक्रोसॉफ्ट आग्रह का प्रयोग करते हैं, उन्हें कार्यान्वित करते समय जटिल वैचारिक कमियां दृष्टिगोचर हुईं. ASP.NET में सॉलिड स्टेट प्रबंधन की कमी है ASP.NET वर्कर्स प्रक्रिया के स्वयं ही पुनः शुरू होने के कारण डेव्लपर्स को, कस्टम स्टेट हैंडलिंग मॉड्यूल्स जो कि कुछ बाहरी प्रोसेस में स्टेट स्टोर करना चाहिये, को हैंडकोड करने की आवश्यकता है। इसको आसान उदाहरण से समझाया जा सकता है। कल्पना कीजिये एक ASP.NET वेब साइट जो कि सर्वर कंपोनेंट पर विश्वास करती है, उसे अपने स्टेट को सुरक्षित रखना चाहिये तथा स्टेट जटिल अलगोरिथम - जैसे कि नक्शे के ऊपर सुपर इम्पोजिंग रूट जियोमेट्री, के परिणामस्वरूप प्राप्त किया गया था। एक मार्ग ने अगले ग्राहक अनुरोधों को संकलित तथा मल्टीपल करने के लिये बहुत से CPU चक्र लिये हैं, वह मेपटाइल्स को प्रदर्शित करते समय निष्कर्ष देखेगा.
अगला उदाहरण - जब स्टेट लीगेसी COM लक्ष्य में, जो कि वेब/ सर्वर स्टेट सर्वर के मध्य मार्शल नहीं किया जा सकता, संक्षिप्त किया जाता है, एकमात्र संभव मोड (इन प्रोक्) है जो कि एप्लीकेशन के पुनः शुरू होने के कारण अविश्वनीय होता है।
ASP.NET अनुप्रयोगों के विकास के लिए कई उपलब्ध सॉफ्टवेयर संकुल मौजूद हैं:
जब ASP.NET के साथ विकास कर रहे हो, तब मानक वेबफार्म्स विकास मॉडल का प्रयोग आवश्यक नहीं है। प्लेट-फार्म हेतु डिजाइन किये गये उल्लेखनीय फ्रेमवर्कों में शामिल हैं:
मोनो प्रोजेक्ट ASP.NET 1.1 एवं अधिकतर ASP.NET 2.0 को सपोर्ट करता है। ASP.NET को मोनो के साथ इन तीन में से किसी एक विकल्प का प्रयोग करते हुये चलाया जा सकता है: mod_mono मॉड्यूल का प्रयोग करते हुए अपाचे होस्टिंग, तीव्र CGI होस्टिंग एवं XSP.