ASP.NET को 2001 में जब Launch किया गया था, तब से लेकर आज तक ये काफी विकसित व Mature हो चुका है तथा Microsoft द्वारा इसकी Performance को भी काफी Improve किया जा चुका है। जबकि ASP.NET Web Forms Programming Model को भी काफी Use किया जा चुका है हालांकि अब Web Applications Develop करने के लिए ASP.NET MVC नाम का नया Programming Model ज्यादा Use किया जाने लगा है।
ASP.NET Web Forms व ASP.NET MVC दोनों ही वास्तव में ASP.NET Core Platform पर Depend हैं। इसलिए हम चाहे MVC Model को Use करते हुए अपना Web Application Develop करें, चाहे Web Forms Model Use करते हुए, दोनों ही परिस्थितियों में हमें ASP.NET के Core Framework को अच्छी तरह से समझना जरूरी है क्योंकि ये दोनों ही Programming Models पूरी तरह से ASP.NET Core Platform पर ही आधारित हैं।
हालांकि हम Web Forms व Core Platform को अलग करते हुए समझने की कोशिश कर रहे हैं, लेकिन Core Platform को Web Forms से अलग करते हुए समझना काफी मुश्किल है, क्योंकि ASP.NET Core Platform को मूल रूप से Web Forms को Support करने के लिए ही Design किया गया था। इसलिए हालांकि जब हम केवल ASP.NET Core Functionalities को ही Use कर रहे होते हैं, तब भी हम किसी न किसी स्तर पर Web Forms Characteristics को भी Use कर रहे होते हैं। इसीलिए ASP.NET MVC Model को समझने के लिए भी हमें ASP.NET Web Forms को समझने की जरूरत पडती है, क्योंकि Web Forms के साथ ही ASP.NET का Core Platform भी Combined है। जिस पर ASP.NET MVC आधारित है।
ASP.NET Core Platform
जैसे-जैसे ASP.NET के एक Versions Launch होते गए हैं, ASP.NET के Core Platform का भी विकास होता गया है, जिसके अन्तर्गत Error Handling से सम्बंधित Standardized Error Handling Mechanism, Browser Requests को Fulfill करने के लिए जरूरी Page Architecture, Stateless HTTP Protocol आधारित State Management Feature, Web Services के लिए XML व JSON Support तथा URL Manage करने से सम्बंधित Features आदि सम्मिलित हैं।
ASP.NET Core Platform को हम .NET Framework का Core Platform भी कह सकते हैं क्योंकि वास्तव में ASP.NET के लिए जिन Core Classes या BCL (Base Class Library) द्वारा इन Core Features की सुविधा Provide की जाती है, उन्हीं Core Classes द्वारा Console Mode Application या Windows Forms Mode GUI Applications के लिए भी Core Features Provide किए जाते हैं।
हालांकि इन विभिन्न प्रकार के Applications में Core Classes को उपयोग में लेने के लिए Use किए जाने वाले Programming Syntaxes, Programming Languages व Application के आधार पर अलग-अलग होते हैं, लेकिन Core Features Provide करने वाली Core Classes यानी .NET Framework के Namespaces समान ही होते हैं।
इसलिए .NET Framework द्वारा Provide किए जाने वाले Core Features को Use करना सीखना न केवल ASP.NET Web Forms या ASP.NET MVC आधारित Web Applications Develop करने के लिए जरूरी है, बल्कि Windows Forms Application, Windows Console Application या अन्य प्रकार की Windows Services Create करने के लिए भी समान रूप से जरूरी हैं।
ASP.NET MVC vs Web Forms
Web Forms वास्तव में User Interface Controls का एक समूह होता है, जिसे Core ASP.NET Platform के Top पर बनाया गया है। इन Controls को इस तरह से Build किया गया है कि इन Controls को हम ठीक उसी तरह से Drag-and-Drop तकनीक का प्रयोग करते हुए अपने Web Applications के Forms Design व Code कर सकते हैं, जिस तरह से किसी Visual Basic आधारित Desktop Application के Forms को Design व Code किया जाता था।
हालांकि जब से Microsoft ने ASP.NET MVC Model Launch किया है, तब से ASP.NET Web Forms को उतना महत्व नहीं दिया जा रहा है, जितना पहले दिया जाता था। लेकिन फिर भी क्योंकि ASP.NET MVC के Launch होने से पहले तक लाखों की संख्या में ASP.NET Web Forms आधारित Web Applications Develop किए जा चुके हैं। इसलिए Microsoft ने ASP.NET Web Forms को भी पूरी तरह से Deprecate नहीं किया है और आगे आने वाले कुछ और सालों तक अभी ASP.NET Web Forms Market में Available रहेंगे, क्योंकि ASP.NET Web Forms व ASP.NET MVC, दोनों Programming Models समान ASP.NET Core Platform पर आधारित होने के बावजूद दो अलग तरह की जरूरतों को एक दूसरे की तुलना में ज्यादा बेहतर तरीके से पूरा करते हैं।
उदाहरण के लिए जब हमें Fast Development की जरूरत होती है, तब हम ASP.NET MVC को Use नहीं कर सकते लेकिन जब हमें Large Scale Web Application Develop करने की जरूरत होती है, तब हम ASP.NET Web Forms को Use नहीं कर सकते क्योंकि ASP.NET Web Forms को Manage व Maintain करना, ASP.NET MVC की तुलना में ज्यादा जटिल होता है।
ASP.NET Web Forms किसी Web Forms को Design करने से सम्बंधित Design Philosophy की Details को Hide कर देता है। यानी हमें हमारा Web Form Design करने के लिए HTML Markup व CSS Codes के बारे में जानना जरूरी नहीं होता, क्योंकि ASP.NET स्वयं ही हमारे लिए Web Form Generate करने हेतु Appropriate HTML/CSS Codes Generate कर देता है। इसलिए एक और जहां हम HTML/CSS Codes को Manually लिखने से बच जाते हैं, वहीं दूसरी ओर HTML/CSS पर से हमारा Control भी समाप्त हो जाता है।
हालांकि Desktop आधारित Applications में State Management जैसी कोई समस्या नहीं होती, क्योंकि एक Application को सामान्यत: केवल एक ही User Use कर रहा होता है। लेकिन Web Applications हमेंशा HTTP Protocol आधारित Distributed Applications होते हैं जो कि Stateless होते हैं। इसलिए Web Server व Web Browser के बीच एक दूसरे को Uniquely Identify करने के लिए जरूरी होता है कि उनके बीच State Management जैसी किसी व्यवस्था को Define किया जाए और ASP.NET Web Forms यही करता है।
यानी जब हम ASP.NET Web Forms Use करते हैं, तब Web Server व Web Browser एक दूसरे के बारे में तथा एक दूसरे के Data के बारे में Application Start करने से लेकर Application को Close करने तक सबकुछ जानते हैं और Client व Server एक दूसरे के बारे में इसलिए सबकुछ जानते हैं, क्योंकि इनके बीच Unique Identity से सम्बंधित सारा Data हर Request/Response Cycle में बार-बार Transfer होता है, जो कि एक Common रूप से बार-बार Web Browser व Server के बीच आने-जाने वाला Common Data होता है।
इस State Management Data से Webpage की Size भी बढती है जिसकी वजह से Client व Server के बीच Network पर ज्यादा Data Flow होता है, जो कि ASP.NET Web Forms Application की Performance को प्रभावित भी करता है, जबकि ASP.NET MVC Model में State Management Related कोई Data Flow नहीं होता, इसलिए MVC आधारित ASP.NET Web Applications की Performance ज्यादा बेहतर होती है, लेकिन ASP.NET MVC आधारित Applications को Exactly उसी तरह से Visually Design व Program नहीं किया जा सकता, जिस तरह से ASP.NET Web Applications को किया जाता है। परिणामस्वरूप ASP.NET MVC Applications को Develop करने में ज्यादा समय लगता है।
ASP.NET Web Forms Applications की एक और परेशानी ये होती है कि यदि हम ASP.NET Web Forms का प्रयोग किसी Large Scale Web Application को Develop करने के लिए करते हैं, तो जैसे-जैसे हमारा Application बडा होता जाता है, उसे Manage, Maintain व Extend करना मुश्किल होता जाता है। इसलिए Large Scale Applications को सामान्यत: ASP.NET MVC आधारित Model पर ही Develop किया जाना चाहिए।
हालांकि ASP.NET Web Forms की उपरोक्तानुसार Discussed की कुछ परेशानियों हैं, लेकिन फिर भी ASP.NET Web Forms सीखने व उपयोग में लेने में बहुत आसान होने की वजह से छोटे स्तर के Web Applications को Develop करने के लिए अभी भी काफी उपयोग में लिया जाता है और भविष्य में भी लिया जाता रहेगा। साथ ही किसी भी Web Application की ज्यादातर Common जरूरतों को पूरा करने से सम्बंधित ज्यादातर Functionalities को ASP.NET Web Forms के लिए पहले से ही Develop किया जा चुका है, इसलिए छोटे स्तर के Applications के Fast Development के लिए ASP.NET Web Forms को आज भी First Option के रूप में Use किया जाता है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Core ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Core ASP.NET WebForms in Hindi | Page:647 | Format: PDF