ASP.NET Application Architecture

ASP.NET Application Architecture – Desktop Programming के अन्तर्गत एक Executable File व आपस में Related Supporting Files के एक Collection को Application के नाम से जाना जाता है।

उदाहरण के लिए एक Typical Windows Application में एक Main Executable (EXE) File, कुछ Supporting Components (DLL) Files व कुछ Resource Files जैसे कि Database व Configuration Files होती हैं। लेकिन ASP.NET आधारित Application का Model, Desktop Application की तुलना में काफी अलग होता है।

बिल्कुल ही Fundamental Level पर देखें, तो एक ASP.NET Application बहुत सारे Webpages, Files Handlers, Modules व ऐसे Executable Codes का Combination होता है, जिसे किसी Virtual Directory या उसकी Sub-Directory द्वारा किसी Web Server पर Invoke किया जाता है।

इस Chapter में हम इसी विषय में बेहतर तरीके से समझने की कोशिश करेंगे कि इन दोनों प्रकार के Applications में ये अन्तर क्यों है और एक ASP.NET Application को किस प्रकार से Configure व Deploy किया जाता है। साथ ही हम ये भी जानेंगे कि विभिन्न प्रकार के Components, HTTP Handlers व HTTP Modules को ASP.NET Application के साथ बेहतर तरीके से कैसे Use किया जाता है।

ASP.NET Application Architecture

Desktop Application व ASP.NET Web Application के बीच काफी महत्वपूर्ण अन्तर होता है और ये अन्तर तब और भी अधिक महत्वपूर्ण हो जाता है, जब हम ASP.NET Application के Execution Model को बेहतर तरीके से समझने की कोशिश करते हैं।

किसी Desktop Application की तरह User किसी ASP.NET Application को कभी भी Directly Runugha करता। बल्कि User इस Application को हमेंशा एक Web Browser के माध्‍यम से Run करता है और Application के किसी Specific Page को उसके URL द्वारा HTTP के माध्‍यम से Request करता है, जिसे किसी Web Server द्वारा Receive किया जाता है।

जब हम Visual Studio Use करते हैं, तब Visual Studio स्वयं एक Local Web Server का प्रयोग करते हुए हमारे Webpages की Testing करता है। लेकिन जब हम हमारे ASP.NET Application को Deploy करना चाहते हैं, तब हमें Microsoft के IIS Web Server को उपयोग में लेना होता है क्योंकि ASP.NET Application को Microsoft के IIS Web Server द्वारा ही Best तरीके से Host किया जाता है।

Web Server कोई Separate Application नहीं होता, बल्कि ये केवल किसी ASP.NET Page की Request को ASP.NET Worker Process पर Pass करने का काम करता है। हालांकि ये ASP.NET Worker Process काफी सावधानीपूर्वक इन Requests को Web Server की विभिन्न Virtual Directories के Application Domain में विभाजित करते हुए Pass करता है, ताकि प्रत्येक Request को उपयुक्त तरीके से Process किया जा सके।

वे Webpages जो कि समान Virtual Directory या उसकी Sub-Directory द्वारा Host किए जाते हैं, समान Application Domain में Execute होते हैं। जबकि भिन्न Virtual Directory में Hosted Pages अलग-अलग Application Domains में Execute होते हैं।

Virtual Directory एक ऐसी Directory होती है, जो केवल Web Server द्वारा Expose होती है। जब हम Visual Studio का प्रयोग करते हैं, तब हमारे Web Application की Project Directory ही Virtual Directory की तरह Treat होती है, जबकि IIS Web Server पर Actual Application Host करते समय हमें अलग Virtual Directory Create करना जरूरी होता है, जो कि Web Server पर Create होता है और प्रत्येक Virtual Directory एक अलग Web Application को Hold व Online Represent करता है।

Application Domain

Application Domain वास्तव में एक प्रकार की Boundary होता है, जिसे CLR द्वारा Enforce किया जाता है और ये यही Boundary इस बात को तय करता है कि कोई एक Application किसी दूसरे Application को किसी भी प्रकार से Interrupt न करे। निम्न Characteristics किसी  भी Application Domain Model का Direct Result होते हैं:

  • किसी Single Web Application के सभी Webpages समान In-Memory Resources जैसे कि Global Application Data, Per-User Session Data व Cached Data को Share करते हैं और किसी एक Application से सम्बंधित इन Data को कोई भी दूसरा NET Application Directly Access नहीं कर सकता।
  • इसी प्रकार से किसी Single Web Application के सभी Webpages समान Core Configuration Settings को Share करते हैं। हालांकि हम समान Virtual Directory की किसी Individual Subdirectory की कुछ Settings को Customized कर सकते हैं।
  • उदाहरण के लिए हम किसी Web Application के लिए केवल एक ही Authentication Mechanism को Set कर सकते हैं और इस बात से कोई फर्क नहीं पडता कि उसमें कितनी Sub-Directories Exist हैं। हालांकि प्रत्येक Sub-Directory पर हम Different Authorization Rules को Apply कर सकते हैं और इस बात को तय कर सकते हैं कि कौनसा User Different Pages के किस Group को Access कर सकता है।
  • जब Application Domain पहली बार Create होता है, या Destroy होता है, तो समान Application Domain में Exist सभी Web Applications अपनी Life Cycle में विभिन्न Global Application Events को Raise करते हैं और इन Events के साथ हम हमारी जरूरत के अनुसार Event Handler Methoके को Attach कर सकते है, ताकि इन Event के Trigger होने के Response में किसी Specific Task को Fulfill किया जा सके।

अन्‍य शब्दों में कहें तो Virtual Directory ही किसी भी ASP.NET Application का Basic Grouping Structure होता है जो एक ASP.NET Application को दूसरे ASP.NET Application से अलग करता है। हम किसी ASP.NET Application को एक Single Web Form का प्रयोग करते हुए भी Create कर सकते हैं। जबकि किसी ASP.NET Application में निम्नानुसार अन्‍य प्रकार के Resources भी हो सकते हैं:

WebForms – .aspx Files

ये किसी भी ASP.NET Application के मुख्‍य Parts होते हैं।

Master Pages – .master Files

ये वे Template Files होती हैं, जिन्हें एक बार Create कर लेने के बाद हम इन्हें समान Structure वाले Multiple Pages Create करने के लिए Reuse कर सकते हैं।

Code-Behind Files

इस बात पर निर्भर करते हुए कि हम किस Coding Model को Use कर रहे हैं, हम हमारे Program Logic Codes को एक Separate File में भी Define कर सकते हैं और इस Separate File को Code-Behind File के नाम से जाना जाता है। इस Code File में Use की जाने वाली Programming Language के आधार पर इस File का Extension .vb या .cs होता है।

Configuration File – Web.config File

इस File में Application Level Settings होती हैं, जो Security से लेकर Debugging तक  तथा  State Management से सम्बंधित Configuration Settings को Hold करता है।

Global Configuration File – Global.asax File

इस File में ऐसे Event Handlers होते हैं जो Global Application Level Events के Trigger होने पर Execute होते हैं।

Other Component Files

ये Compiled Assemblies होती हैं जिनमें वे Separate Components होते हैं, जिन्हें या तो हमने स्वयं अपनी जरूरत के अनुसार Develop किया होता है या फिर Useful Functionality प्राप्त करने के लिए Third-Party Tools की तरह Use किया होता है। Components हमें हमारे Application के Business Logic व Data Access Logics को Separate करने व Custom Controls को Create करने से सम्बंधित सुविधाऐं Provide करता है।

Web Services – .asmx Files

ये वे Files होती हैं, जो हमें हमारे Application के महत्वपूर्ण Functions को Network के माध्‍यम से अन्‍य Computers व Platforms पर Share करने की सुविधा Provide करते हैं।

ध्‍यान देने वाली बात ये है कि Web Services को Microsoft द्वारा WCF (Windows Communication Foundation) के नाम से एक नया हिस्सा Create करते हुए Replace कर दिया गया है, जो कि सभी समान Protocols के साथ ही अन्‍य Protocols को भी Support करता है। हम हमारे ASP.NET Application के एक हिस्से के रूप में WCF Services को अपने IIS Web Server पर भी Host कर सकते हैं।

उपरोक्तानुसार Specified विभिन्न File Types के अलावा भी कई और प्रकार की Files जैसे कि Stylesheets, JavaScript File, XML Files आदि होती हैं, जो कि ASP.NET Web Application की Virtual व Directory में Exist हो सकती हैं। इनके अलावा हम ASP.NET Model को HTTP HandlersHTTP Modules नाम के Specialized Components के रूप में Extend भी कर सकते हैं, जिसे किसी भी अन्‍य Application में Plug किया जा सकता है।

Application Warmup and Preloading
Application Domains V/s Application Pools

Core ASP.NET WebForms in Hindi - BccFalna.com: TechTalks in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Core ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

Core ASP.NET WebForms in Hindi | Page:647 | Format: PDF

BUY NOW GET DEMO REVIEWS

MidRangeHub Finance Auto Loans Bank Business Health Insurance Insurance Investment Law Lif Insurance Loan Stocks how to endorse a check chase sapphire travel insurance chase sapphire travel delay when are property taxes due Tower Loans how to sell stocks on cash app Voided Check Examples Personal Finance Books Collateral Loans how to sell stocks on cashapp how do you sell your stocks on cash app how to sell stock on cash app joint account sofi joint account ally joint account capital one joint account best bank for joint account chase joint account cyber insurance coverage silverfort free cyber insurance coverage silverfort monjouro savings card Money6x Real Estate