URL Routing in ASP.NET

URL Routing in ASP.NET - Hindi

URL Routing in ASP.NET – पूरा ASP.NET Platform मूलत: Physical Pages के लिए आने वाली Requests को Serve करने के Concept को ध्‍यान में रखते हुए Develop किया गया है। उदाहरण के लिए निम्न URL को देखिए:

   https://www.bccfalna.com/post.aspx?id=1234

जैसाकि इस URL द्वारा हम समझ सकते हैं कि किसी भी ASP.NET Application में Use होने वाला URL वास्तव में दो हिस्सों का बना होता है, पहले हिस्से के अन्तर्गत किसी Particular Webpage का Physical Path होता है, जिसमें Page पर Apply किए जाने वाले Program Logics होते हैं  तथा  Query String के रूप में कुछ Data होता है, जिन्हें उस Program Logics वाले Page को Supply किया जाना होता है।

उपरोक्त URL में post.aspx वह Physical Page है, जिसमें उन Program Logic को लिखा गया है, जो Response के रूप में Return किए जाने वाले Data को Retrieve करके Display करने का काम करते हैं। जबकि Query String के रूप में id नाम का एक Parameter Pass किया गया है, जिसके आधार पर post.aspx Page उस Post के Data को Retrieve करके Response के रूप में Send करने के लिए Assemble करता है, जिसका मान 1234 है।

किसी Web Application के Page Controller Pattern का काम करने का यही Core तरीका है, जिसमें Incoming Request किसी एक Page को Target करता है, जिसका Program Logic व Graphical Layout Disk पर Saved रहता है। ये तरीका पिछले कुछ सालों तक बहुत Use किया गया है और अभी भी काफी Use किया जा रहा है। इस तरीके के अन्तर्गत एक बार में हमें केवल एक ही Page को ही Maintain करना होता है।

इस तरीके की एक ही मुख्‍य कमी है कि इस तरीके में URL को देख कर User उस Page के Content के मुख्‍य उद्देश्‍य का पता लगाने में सक्षम नहीं होता। साथ ही इस प्रकार के Query String वाले URLs को Search Engines भी ज्यादा महत्व नहीं देते, इसलिए इस प्रकार के URL वाले Pages के लिए SEO करना भी तुलनात्मक रूप से मुश्किल होता है, जिसकी वजह से Search Engines इस प्रकार के URLs को SERP (Search Engine Result Pages) पर Top Ranking भी Provide नहीं करते।

इसलिए एक Expressive URL SEO के लिहाज से काफी उपयोगी होता है, ताकि Search Engines इस प्रकार के Pages को अपने SERP पर उन विभिन्न Keywords के लिए Top-Ranking Provide कर सकें जो कि उस Page के Content को बेहतर तरीके से Describe करने में सक्षम हों।

इस Issues को Handle करने के लिए हमें हमारे Web Application के URLs को ज्यादा Readable व SEO Friendly बनाना जरूरी होता है। लेकिन हम SEO Friendly URL Create करने के लिए और एक Physical Webpage Create करना नहीं चाहते, इसलिए हम इसी URL को SEO Friendly URL में Transform करने के लिए .NET Framework में Add किए गए Routing Feature को Use कर सकते हैं, जो कि Physical Webpages को नहीं बल्कि Virtual Path के आधार पर Dynamically Generate होने वाले Webpages को Display करने में सक्षम होते हैं।

URL Routing Engine

User के सामने हमेंशा SEO Friendly URLs Expose करने के लिए ASP.NET URL Rewriting नाम के Feature को Support करता है। Core Level पर URL Rewriting के अन्तर्गत एक HTTP Module या Global.asax Event Handler होता है, जो आने वाली Request के साथ Hook हो जाता है, उस URL को Parse करता है और HTTP Runtime Environment को Related लेकिन किसी Different URL को Serve करने के लिए Instruct करता है।

हालांकि URL Rewriting एक Powerful Feature है, लेकिन इसकी भी कुछ कमियां हैं। इस वजह से Microsoft ने ASP.NET में एक नया API Introduce किया है, जो यद्धपि इसी URL Rewriting Functionality पर ही आधारित है लेकिन एक Developer के रूप में हमें ज्यादा बेहतर Programmability के साथ ही URL Routing Engine के रूप में और अधिक बेहतर Features Provide करता है।

इस API को मूल रूप से ASP.NET MVC के लिए Develop किया गया था, जहां URL Routing हमें हमारे Web Application के Layout यानी Sitemap को Organize करने के लिए पूर्ण स्वतंत्रता Provide करता है।

इस तरीके में URL हमारे Web Application के लिए एक प्रकार से Command की तरह हो जाता है, जिसे User Web Browser के माध्‍यम से Request के रूप में Fire करता है। जबकि हमारा Web Application केवल एक Entity मात्र होता है, जो इस Command की Parsing व Validating करता है। यानी URL Engine एक System-Provided Component होता है, जो हमारे URL का Validation करता है।

URL Routing Engine एक ऐसा API है, जिसे न केवल ASP.NET MVC के लिए Use कर सकते हैं, बल्कि हम इसे ASP.NET WebForms के लिए भी समान प्रकार से Use करते हुए SEO Friendly URL Create कर सकते हैं। वास्तव में URL Routing Engine को ASP.NET MVC Framework से Remove करके General ASP.NET system.web Assembly में Include कर दिया गया है, जो कि ASP.NET के Core Platform का हिस्सा है। यानी URL Routing Engine वास्तव में ASP.NET आधारित Web Applications का एक Core Component है।

ASP.NET MVCASP.Net WebForms दोनों में URL Routing केवल एक ही स्थिति में भिन्न है कि हम Request के Final Destination को किस प्रकार से Express करते हैं। जहां ASP.NET में हम Controller-Action Pair को Use करते हैं जबकि ASP.NET WebForms में हम ASPX Path को Use करते हैं।

Original URL Rewriting API

URL Rewriting हमें मूलत: दो तरीकों से मदद करता है। ये हमारे लिए post.aspx जैसे किसी Generic Frontend Page को Use करना सम्भव बनाता है जो Incoming Request को किसी ऐसे Specific URL पर Redirect करता है, जिसका URL, Database या अन्‍य Container से Read किया जाता है। साथ ही ये हमें URLs को ज्यादा आसानी से Manage किए जा सकने वाले आसान व कम Sensitive User-Friendly URLs के साथ Programmatically Map करने की सुविधा भी देता है।

सरल शब्दों में कहें तो URL Rewriting हमें किसी URL को किसी Physical Webpage से Decouple करने की सुविधा Provide करता है। जिसकी वजह से जिस URL को हम Use कर रहे होते हैं, जरूरी नहीं होता कि उस URL से Associated कोई Physical Web Resource Exist हो, बल्कि हम उस URL के लिए Resource को Dynamically Generate करके Serve कर सकते हैं।

URL Rewriting API की एक कमी ये है कि Target URL के लिए API Change होने पर भी Postbacks हमेंशा Rewritten URL पर ही Redirect होता है। उदाहरण के लिए यदि हम post.aspx?id=1234 को 1234.aspx पर Redirect करें, तो जो भी Postback 1234.aspx से आने वाला Postback हमेंशा 1234.aspx पर ही Redirect होगा, Original URL पर नहीं।

URL Rewriting API के काम करने का ये तरीका हमारे Web Application के लिए Problem भी हो सकता है, लेकिन ये तरीका इस बात की Guarantee जरूर होता है, कि हमारे Web Application के किसी भी Page Behavior को ये तरीका Break नहीं करता।

यद्धपि इस API को Use करने पर Original URL पूरी तरह से Same URL से Replace हो जाता है व Original URL एक Frontend की तरह Use होने लगता है। लेकिन ये तरीका एक नई समस्या भी पैदा करने लगता है, जहां URL Rewriting Logic मूलत: Mono-Directional हो जाता है क्योंकि ये हमें किसी Original URL से किसी Rewritten URL पर जाने व फिर से Original URL पर आने की सुविधा नहीं देता।

Buy this eBook to read more about …

  • URL Patterns and Routes
  • WebFormsRouting
  • Defining Routes for Specific Pages
  • Programming Access to Route Values
  • Preventing Routing for Defined URLs
  • .NET Components

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