Less Control on Markups के बाद ASP.NET WebForms की दूसरी जो सबसे बडी कमी है, वह Separation of Concerns की ही कमी है। यानी Separation of Concerns बडे Web Applications को Develop, Maintain, Debug व Deploy करने से सम्बंधित बहुत ही महत्वपूर्ण Programming Concept है, लेकिन ASP.NET WebForms की ये कमी है कि ये इस Concept को किसी भी तरह से Properly Implement नहीं करता।
ASP.NET WebForms Model ने Web Development को काफी Simple व Web Developer को काफी Productive बना दिया था और ऐसा करने के लिए Microsoft ने ASP.NET WebForms Model को UI Focused रखते हुए Develop किया था, जिसके अन्तर्गत Webpage Input Accept करता है, Page को Postback करता है व Page के Output को Web Browser पर Render करने के लिए Return करता है।
इस Model के अन्तर्गत एक Web Developer के रूप में हम Underlying Model को किसी Request को Fulfill करने के लिए Appropriate HTML Markup Generate करने हेतु Instruct करते हैं। इस तकनीक के अन्तर्गत हमें Web Browser द्वारा Send की जाने वाली Request व Web Server द्वारा Perform किए जाने वाले Actions के बीच कोई Direct Connection दिखाई नहीं देता। बल्कि हम केवल Client Webpage को HTTP Request Send करते तथा Server Page Object को Response के रूप में Appropriate HTML Return करते हुए ही देखते हैं।
इस Model में Request की Processing करते हुए Response के रूप में Send किए जाने वाले Row Data को Generate करने वाले Phase व उस Generated Raw Data को Nice-Looking Formatting करने वाले Phase के बीच कोई Clear Separation नहीं होता।
यानी इस Model में हमें इस बात का पता ही नहीं चलता कि किसी List Control में दिखाई देने वाला List Items किस प्रकार से Raw Data के रूप में Underlying Database/File Stream से Retrieve किए गए हैं और उस Raw Data को किस प्रकार से Web Browser में Output के रूप में Render करने के लिए Format किया गया है।
हालांकि यदि हम चाहें तो ASP.NET WebForms Model में भी Separation of Concerns को Map कर सकते हैं व Processing तथा Rendering के बीच Easy to Identify Separation Model को Represent कर सकते हैं। लेकिन ऐसा करने के लिए एक Developer के रूप में हमें काफी ज्यादा Extra काम करना पडेगा और Code-Behind File Create करते समय काफी अलग तरह के Programming Pattern को Follow करना पडेगा, जो कि काफी तकनीकी व Time-Consuming काम होगा।
यदि हम इस प्रक्रिया को थोडा और विस्तृत तरीके से Represent करें, तो किसी Webpage के Processing व Rendering की प्रक्रिया को निम्न चित्रानुसार ज्यादा आसान तरीके से समझ सकते हैं:
जैसाकि उपरोक्त चित्र द्वारा हम समझ सकते हैं कि किसी HTTP Request की Entire Processing, उस Webpage के विभिन्न Server Controls की State की Progressively Updating करते हुए ही पूर्ण होती हैं। इसलिए Request Processing Cycle के अन्त में, विभिन्न Controls की Current State, Output Stream पर Response के रूप में Flush हो जाता है और ये Response Web Browser में Output के रूप में Render हो जाता है। यानी ASP.NET WebForms Model का पूरा Idea इस बात पर आधारित है कि एक Webpage को किस प्रकार से Build किया जाए, न कि इस बात पर कि किसी Action को कैसे Perform किया जाए और Results को कैसे Show किया जाए।
ASP.NET WebForms Model के Release होने से लेकर AJAX तकनीक के चलन में आने तक WebForms के काम करने का ये तरीका बिना किसी परेशानी के Accepted था। लेकिन वर्तमान समय में ASP.NET WebForms पर आधारित Applications के Business Logic की Complexities काफी बढ गई हैं, जिन्हें Handle करने के लिए Unit Testing व Static Analysis की जरूरत पडती है। लेकिन WebForms आधारित Applications पर Unit Testing व Static Analysis को किसी भी तरह से Apply नहीं किया जा सकता, क्योंकि WebForms आधारित Web Applications पूरी तरह से Plain UI पर Focused होते हैं न कि Web Application की Functionality पर।
परिणामस्वरूप एक बार फिर से कुछ समय पहले तक ASP.NET WebForms आधारित Web Applications की जो एक महत्वपूर्ण विशेषता थी, जब पूरा ध्यान Web Application के UI को ध्यान में रखते हुए Statefulness Mode में Development किया जाता था, वर्तमान परिप्रेक्ष्य में वही विशेषता एक कमी बन गई है, क्योंकि पूरा Application UI के Around Develop होने की वजह से Underlying Technologies पर Unit Testing व Static Analysis को Apply नहीं किया जा सकता, जो कि केवल Core Technologies पर ही Apply हो सकता है।
इसीलिए Microsoft ने Modern Web Development व ASP.NET WebForms Development के बीच के अन्तर को पहचाना और ASP.NET MVC नाम का नया Web Development Framework Develop किया, जो वर्तमान समय की जरूरतों के अनुसार नए प्रकार के Web Applications Develop करने में सक्षम है। हालांकि ये नया Model भी पूरी तरह से ASP.NET WebForms के Core Model पर ही आधारित है। इसलिए यदि आप ASP.NET MVC Framework का प्रयोग करते हुए ही Development करना चाहते हैं, तब भी आपको ASP.NET WebForms को तो समझ जरूरी होता है अन्यथा आप ASP.NET MVC Framework को भी ठीक से नहीं समझ सकते।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Core ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Core ASP.NET WebForms in Hindi | Page:647 | Format: PDF