Microsoft ने ASP.NET 1.0 को पूरी तरह से एक बिल्कुल नए Web Application Development Framework की तरह Design किया था। इसलिए हालांकि ASP.NET का प्रयोग करते हुए बनाया गया Web Application पूरी तरह से HTML/CSS आधारित Web Application ही होता था, लेकिन इन Applications को ठीक उस तरह से Design किया जाता था, जिस तरह से Visual Basic Programming Language का प्रयोग करते हुए Drag-and-Drop तकनीक द्वारा Desktop Applications के Forms Design किए जाते थे।
यानी ASP.NET Applications, ASP या PHP Based Classic Web Applications की तुलना में काफी अलग तरीके से Develop किए जाते थे और वही Development Trend आज भी जारी है हालांकि Development से सम्बंधित कई चीजें काफी बदल गई हैं। ASP.NET व इससे पहले की अन्य Web Development Technologies के बीच जो मूल अन्तर थे, उन्हें हम निम्नानुसार Describe कर सकते हैं:
- ASP.NET पूरी तरह से Object Oriented Programming Model पर आधारित है, जिसमें Event Driven, Control-Based Architecture Included है, जो Code Encapsulation व Code Reusing की सुविधा Provide करता है।
- ASP.NET हमें ये सुविधा देता है कि किसी भी .NET Supporting Programming Language का प्रयोग करते हुए Sever Side Codes लिख सकते हैं जो कि Dynamic Content Generate करने का काम करते हैं। जबकि .NET Supported Programming Language के रूप में C# व VB.NET को सर्वाधिक उपयोग में लिया जाता है।
- ASP.NET Framework का प्रयोग करते हुए हम Web Services भी Create कर सकते हैं, जो कि ऐसे Codes होते हैं, जिन्हें हम Cross-Platform व Cross-Machine तरीके से Reuse कर सकते हैं।
- ASP.NET एक High Performing Web Application Development Framework Provide करता है। क्योंकि ASP.NET Pages व Components तभी Compile होते हैं, जब उनके लिए User द्वारा किसी Client Software जैसे कि Web Browser द्वारा Request किया जाता है और क्योंकि ASP.NET Pages Compile होते हैं, इसलिए इनकी Performance किसी भी Interpreter Based Server Side Scripting Language द्वारा Dynamically Generate होने वाले Webpages की तुलना में ज्यादा बेहतर होती है।
ASP.NET द्वारा Provided उपरोक्त Benefits के अलावा हमें और भी कई Benefits प्राप्त होते हैं, जिनके अन्तर्गत हम State Management, Practical Data Binding, Dynamic Graphics व Robust Security Model प्राप्त करते हैं। चलिए, ASP.NET की कुछ और Characteristics के बारे में जानने की कोशिश करते हैं:
ASP.NET is Part of .NET Framework
.NET Framework वास्तव में विभिन्न प्रकार की Functionalities प्राप्त करने के लिए इस तरह से Design किया गया है कि एक Functionalities किसी दूसरी Functionality को Disturb नहीं करते, जबकि विभिन्न Functionalities को Combined रूप से Use करते हुए हम किसी Specific प्रकार की Requirement को पूरा कर सकते हैं।
उदाहरण के लिए ADO.NET व ASP.NET दोनों ही .NET Framework के हिस्से हैं लेकिन यदि हम चाहें, तो बिना ASP.NET Framework Part को Use किए हुए पूरी तरह से ADO.NET Based Application Design कर सकते हैं। इसी तरह से हम बिना ADO.NET Framework Part को Use किए हुए पूरी तरह से ASP.NET Based Web Application भी Design कर सकते हैं।
जबकि एक पूरी तरह से Database आधारित Dynamic Web Application Develop करने के लिए हम .NET Framework द्वारा Provide की जाने वाली ASP.NET व ADO.NET दोनों Functionality को आपस में Mixed Form में Use करते हुए भी उपयोग में ले सकते हैं।
यानी .NET Framework वास्तव में Object Oriented Concept के आधार पर Defined विभिन्न प्रकार के Types (Classes, Structures, Interfaces, Indexers, Getters, Setters) व अन्य Core Programming Constructs का Collection है, जिन्हें Namespaces के रूप में Group किया गया है।
इसलिए हमें .NET Framework की जिन Functionalities को उपयोग में लेते हुए अपना Application Develop करना होता है, केवल उन्हीं Functionalities से सम्बंधित Namespaces को हमें हमारे .NET Application में Use करना होता है।
साथ ही इन Namespaces को इस तरह से Design किया गया है, कि हम जिन Namespaces को किसी Console Mode Application में Use करते हुए जिन Functionalities को प्राप्त करते हैं, ठीक उन्हीं सुविधाओं को प्राप्त करने के लिए हम समान रूप से उन्हीं Namespaces को ASP.NET आधारित Web Application अथवा Web Services में अथवा किसी Windows Forms आधारित Desktop Applications में भी उपयोग में ले सकते हैं।
ASP.NET is Compiled, Not Interpreted
ASP.NET Applications की दूसरी मुख्य विशेषता ये है कि ये इकलौता ऐसा Framework है, जो Compile होता है। जबकि अन्य सभी Server Side Technologies वास्तव में Interpreter Based Technologies हैं। यहां तक कि JSP Pages वास्तव में Java Programming Language के आधार पर Develop किए जाते हैं, लेकिन Java भी एक ऐसी ही Programming Language है, जिसके Program Native Machine के आधार पर Binary Codes में Convert नहीं होते बल्कि Bytecode .class Files में Convert होते हैं और बाद में JRE द्वारा Interpreter होते हैं।
यानी वर्तमान समय में केवल ASP.NET ही एक ऐसा Web Application Development Model है, जो वास्तव में एक Compiler Based Programming Language पर आधारित Model है, जबकि अन्य सभी Web Application Development Model किसी न किसी तरह से Interpreter Based हैं।
Compiler Based Web Application Model का मतलब ये है कि जब एक बार JSP Page Compile हो जाता है, तो वह पूरी तरह से Current Machine व Operating System के आधार पर Native Codes में Convert हो जाता है।
परिणामस्वरूप जब फिर से किसी अन्य End User द्वारा समान ASP.NET Page के लिए किसी Web Browser जैसे Client Software के माध्यम से Request Perform किया जाता है, तो ASP.NET Page फिर से Compile नहीं होता, जबकि Interpreter Based Scripting Language पर आधारित Web Applications, में हर User Request के लिए पूरा Page फिर से Interpreter होता है।
इसलिए ASP.NET एक Compiler Based Web Application Development Model होने की वजह से इसकी Performance किसी भी अन्य Web Application Development Model की तुलना में ज्यादा बेहतर होती है।
ASP.NET Applications हमेंशा इसलिए Compile होते हैं, क्योंकि सामान्यत: इन्हें C# या VB.NET Programming Language का प्रयोग करते हुए Code किया जाता है और ये Programming Languages बिना Compile हुए Execute नहीं होते।
ASP.NET Applications वास्तव में Compilation के दो Stages से गुजरते हैं। पहले Stage के अन्तर्गत हम जो C#/VB.NET Code लिखते हैं, वे एक Intermediate Code में Convert होते हैं, जिसे MSIL या IL Code के नाम से जाना जाता है, ठीक उसी तरह से जिस तरह से Java Programs को Compile करने पर वे Codes एक .class Bytecode में Convert होते हैं।
MSIL Code ही .NET Programming Languages को Platform Independent Language के रूप में Establish करता है क्योंकि सभी .NET Supported Programming Languages समान MSIL Generate करते हैं, इसलिए किसी एक Programming Language में Develop किया गया Software बडी ही आसानी से किसी दूसरी Programming Language में Convert किया जा सकता है। इसी तरह से एक ही Application को दो अलग Programming Languages का प्रयोग करते हुए व समान .NET Framework Library को Use करते हुए Develop किया जा सकता है।
यानी हमें समान .NET Library को Use करने के लिए अलग से नई Programming Language सीखने की जरूरत नहीं है, क्योंकि 50 से ज्यादा Programming Languages को .NET Supported Programming Language के रूप में Implement किया जा चुका है, जिनमें PHP, PERL, Python, C, C++, Java आदि सभी Programming Languages शामिल हैं।
जब End User द्वारा Web Browser के माध्यम से किसी ASP.NET Page का Request किया जाता है, तो Compilation के पहले Phase में Requested Webpage MSIL Code में Convert होता है, जो कि Precompiled Code कहलाता है। इस IL Compiled Code को Assembly के नाम से जाना जाता है।
जबकि Compilation का दूसरा Stage उस समय Perform होता है, जब MSIL Form में Generated ASP.NET Page, Actually Execute होता है क्योंकि इस Stage में MSIL Code, Current Machine व Operating System के आधार पर Actual Native Codes में Convert होता है। Compilation की इस Stage को JIT यानी Just-In-Time Compilation के नाम से जाना जाता है।
Compilation की ये दोनों Stages केवल ASP.NET आधारित Web Applications पर ही Apply नहीं होता बल्कि .NET आधारित हर प्रकार के Application में इसी प्रकार से दो Stages में Compilation Perform होता है।
.NET Compilation को दो Stages में Divide करने की वजह से ही हमें Most Convenience व Best Portability Provide करता है। इससे पहले कि Compiler Low Level Machine Codes Create करे, उसके लिए ये जानना जरूरी होता है कि Current Application किस Operating System व Hardware Architecture (32bit or 64bit) पर Run हो रहा है और क्योंकि .NET Applications का Compilation दो Stages में होता है, इसलिए हम किसी एक Architecture के लिए Generate होने वाले MSIL को किसी दूसरे Architecture पर Run कर सकते हैं।
यानी जरूरी नहीं है कि Compilation के दोनों Stages समान Architecture पर ही Perform हों। .NET Application के Compilation की इस व्यवस्था को हम निम्न चित्रानुसार ज्यादा बेहतर तरीके से Represent कर सकते हैं:
निश्चित रूप से हम समझ सकते हैं कि जब भी End User किसी Webpage के लिए Request करता है, हर बार उस Webpage को JIT Compilation करते हुए Native Codes Generate करने की जरूरत नहीं होती है और इस बात को ASP.NET Application भी समझता है इसलिए ASP.NET किसी Webpage या Web Service को हर बार Request करने पर JIT Compile नहीं करता बल्कि यदि पहले से Compiled Code Exist हो, तो जब तक Source Code को फिर से Modify नहीं किया जाता, तब तक पहली बार Compile करने पर Generate होने वाली JIT Code File को ही ASP.NET Platform Reuse करता है।
जब हमारा ASP.NET Page Compile होता है, तो उस Compiled Page की Machine Code File हमारे Computer System के “C:\Windows\Microsoft.NET\Framework\[version]\Temporary ASP.NET Files” Path पर Store होती है जबकि [version] हमारे Computer System या Server System पर Installed .NET Framework का Version Number होता है।
ASP.NET is Multilanguage
ASP.NET Web Application Develop करते समय हम Particular किसी एक Development Language पर निर्भर नहीं होते, बल्कि हम .NET Supported किसी भी Programming Language को उपयोग में लेते हुए ASP.NET Web Application Develop कर सकते हैं और हम ऐसा इसलिए कर सकते हैं, क्योंकि सभी .NET Supported Programming Languages वास्तव में Compilation के First Stage में समान IL Code Generate करते हैं। इसलिए हम एक ही Web Application में अलग-अलग Programming Language आधारित Webpages Create कर सकते हैं।
परिणामस्वरूप MSIL Codes Compilation के दूसरे Stage में CLR पर Managed तरीके से Execute होते हैं, इसलिए .NET Applications को सामान्यत: Managed Applications भी कहा जाता है, क्योंकि CLR का Managed Environment केवल एक ही Programming Language को समझता है, जिसे MSIL या IL Language के नाम से जाना जाता है।
ASP.NET Runs in CLR
ASP.NET Web Applications पूरी तरह से CLR के अन्दर Run होते हैं। यानी ASP.NET Applications वास्तव में CLR का हिस्सा बनते हैं फिर CLR ASP.NET Applications को CLR Part की तरह Execute करता है। जबकि Java Applications वास्तव में JRE के Top पर Run होते हैं जो ASP.NET व JSP Pages के Run होने के तरीके का एक मुख्य अन्तर भी है।
सम्पूर्ण .NET Framework के अन्तर्गत Namespaces, Applications व Classes Included होती हैं, जिन्हें Managed Code के रूप में Refer किया जाता है। इसलिए .NET Application की पूर्ण Working को समझने के लिए हमें CLR को अच्छी तरह से समझना जरूरी होता है, जिसके अन्तर्गत हमें Automatic Memory Management व Garbage Collection, Type Safety, Extensible Metadata, Structured Error Handling व Multithreading तकनीक को समझना जरूरी होता है। यदि आपको .NET के इन Core Features के बारे में ज्यादा जानकारी नहीं है, तो आपको “C#.NET in Hindi” पुस्तक पढनी चाहिए, जिसमें .NET Related इन विभिन्न Concepts को बेहतर तरीके से Discuss किया गया है।
ASP.NET is Object Oriented
ASP.NET एक पूर्ण Object Oriented Programming Model पर आधारित Web Development Framework है। इसलिए न केवल हम हमारे ASP.NET Webpage पर Object Oriented तरीके से उपलब्ध .NET Framework के विभिन्न Objects को Use कर सकते हैं, बल्कि हम Object Oriented तरीके से एक Types भी Define कर सकते हैं, जिन्हें ASP.NET Page के अन्य हिस्सों में अथवा अन्य Web Applications में फिर से Reuse किया जा सकता है।
Object Oriented Model का एक सबसे बेहतर Example, “ASP.NET Web Forms” Development Model द्वारा Provided Server-Based Controls हैं। जहां एक ASP.NET Developer के रूप में हम Programmatically Control Objects को Manipulate कर सकते हैं तथा Webpageके Contents को Dynamically Generate कर सकते हैं, जिन्हें Render करने के लिए Generate होने वाले Low Level HTML Codes Automatically Create होते हैं।
यानी एक ASP.NET Web Forms Developer के रूप में हमें हमारे Webpages पर दिखाई देने वाले Web Forms को Design करने के लिए Manually HTML Codes लिखने की जरूरत नहीं होती, क्योंकि ASP.NET के Object Oriented तकनीक का प्रयोग करते हुए ASP.NET Engine स्वयं ही Appropriate HTML Codes Generate कर देता है। इस तरह से ASP.NET हमें कई Server Side Controls Provide करता है, जिनका प्रयोग करते हुए हमें Low-Level HTML व HTTP Programming को जानने, समझने में लेने की जरूरत नहीं होती।
ASP.NET is for Multi-Device and Multi-Browser
किसी भी Web Developer के लिए ये एक बहुत ही जटिल स्थिति होती है कि उसका Web Application सभी Modern Web Browsers पर समान रूप से Render हो, क्योंकि अलग-अलग Web Browsers को अलग-अलग HTML-CSS व JavaScript Parsing Engines का प्रयोग करते हुए अलग-अलग Standards के आधार पर Develop किया जाता है। इसलिए सभी Web Browser समान Webpage को भी अलग-अलग तरह से Render करते हैं।
जबकि ASP.NET इस समस्या को काफी Intelligent तरीके से Handle करता है। जिसके अन्तर्गत हालांकि हम ASP.NET द्वारा Provided Web Browser Capabilities को Identify करने से सम्बंधित Functionalities को Use कर सकते हैं, फिर भी ASP.NET हमें किसी भी प्रकार की Web Browser Related Incompatibility Issues से बचने के लिए Server Side Controls को Use करने की सुविधा Provide करता है।
क्योंकि जब हम ASP.NET के Server Side Components को Use करते हैं, तो ASP.NET Engine स्वयं ही अपने स्तर पर Client के Web Browser की Capabilities का पता लगा लेता है और उस User के Web Browser की Capabilities के आधार पर Best Appropriate HTML Generate करता है। परिणामस्वरूप Dynamically Generate होने वाला ASP.NET Webpage पूरी तरह से Web Browser Compatible रहता है।
इसके अलावा ASP.NET का Validation Control स्वयं अपने स्तर पर JavaScript व DHTML का प्रयोग करते हुए बिना Current Webpageको Reload किए हुए Data Validate करने की सुविधा Provide करता है।
परिणामस्वरूप यदि Data Appropriate Business Rules को Follow नहीं करता, तो Generate होने वाला Error Message Dynamically Generate होकर Web Browser में Render हो जाता है, जिसके लिए Webpage को फिर से Reload करने की जरूरत नहीं होती।
हालांकि ये Features Optional होते हैं और यदि हम चाहें तो स्वयं अपने स्तर पर Data Validation जैसा कार्य कर सकते हैं, लेकिन फिर भी ये Control इस बात को Demonstrate करता है कि ये Controls कितने Intelligent हैं और ज्यादातर Client Requirements को किस प्रकार से बिना हमारी जानकारी के Internally Invisibly Perform करते रहते हैं, जिनके लिए हमें Extra Codes लिखने की भी जरूरत नहीं होती।
ASP.NET is Easy to Deploy and Configure
किसी Web Application के Development के दौरान सबसे Typical काम उस Completed Application को Production Server पर Deploy करना ही होता है। क्योंकि एक Developer के रूप में हमनें न केवल अपने Completed Project को बल्कि साथ ही Webpage Files, Resources, Components, Database आदि को Transfer करना होता है, बल्कि साथ ही हमें विभिन्न Components व Application के विभिन्न Parts को आपस में Normal तरीके से काम करने के लिए उपयुक्त रूप से Re-Configure भी करना पडता है।
.NET Framework को किसी भी Computer System पर Install क्यों न किया गया हो, सभी पर समान Core Classes Exist रहती हैं। परिणामस्वरूप ASP.NET Applications को Deploy करना तुलनात्मक रूप से ज्यादा आसान होता है।
क्योंकि जिस Computer System या Server पर हमें .NET Application को Deploy करना होता है, उस Computer System पर यदि .NET Platform Installed हो, तो हमें हमारे Application में किसी विशेष प्रकार का Configuration करने की जरूरत नहीं होती। बल्कि इस प्रकार के Applications की सभी Files को एक Computer System पर Copy कर देने मात्र से उस एक System पर भी हमारा Application Normal तरीके से Run होने लगता है।
इसी तरह से .NET Applications के Components को Distribute करना भी इतना ही आसान होता है और हमें केवल अपने Component Assembly को उस Computer Target Computer System पर Copy ही करना होता है, जिस पर हम हमारे Components को Use करना चाहते हैं। हालांकि उस Target Computer System पर .NET Framework का पहले से Installed होना जरूरी होता है, तभी हमारे Component की Assembly को उपयोग में लिया जा सकता है।
Component Assembly को नई Target Machine पर Copy कर देने मात्र से ही हमारा Component नई Machine पर इसलिए काम करने लगता है क्योंकि Component से सम्बंधित सारे Configuration की Information, Component की Assembly में Exist Metadata File में पहले से उपलब्ध रहती है।
इसके साथ ही ASP.NET Application के Configuration से सम्बंधित Security Information आदि को Manage करना भी काफी आसान होता है, जिसके अन्तर्गत हमें एक ASP.NET Application में Web.configनामकी एक File में ही अपने Application से सम्बंधित सारे Configurations को Specify करना होता है और इस File को हमें उसी Folder में Stored रखना होता है, जहां हमारे ASP.NET Application के अन्य सभी Webpages Stored होते हैं और क्योंकि Web.config File कभी भी Lock नहीं होती, इसलिए हम इसे अपनी जरूरत के अनुसार कभी भी Update कर सकते हैं। (Characteristics and Features of ASP.NET)
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Core ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Core ASP.NET WebForms in Hindi | Page:647 | Format: PDF