Difference between ASP.NET and MVC: ASP.NET MVC Application को Handle करने के लिए जो Runtime Environment Develop किया गया है, वह मोटे तौर पर ASP.NET WebForms के Runtime Environment के समान ही है, लेकिन MVC में Page Request Cycle WebForms की तुलना में ज्यादा Simple व Direct है।
साथ ही Page Life Cycle जो कि किसी भी ASP.NET WebForms Model का बहुत ही महत्वपूर्ण हिस्सा होता है, ASP.NET MVC के अन्तर्गत केवल एक Optional Implementation मात्र रह गया है। WebForms व MVC दोनों के Runtime Stack को हम निम्नानुसार Compare करते हुए ज्यादा बेहतर तरीके से समझ सकते हैं:
जैसाकि उपरोक्त चित्र में हम देख सकते हैं कि ASP.NET MVC का Runtime Stack, WebForms की तुलना में काफी Simple है और दोनों के बीच जो मुख्य अन्तर दिखाई दे रहा है, वह MVC के अन्तर्गत Page Life Cycle Exist न होने की वजह से ही है। क्योंकि Page Life Cycle व इसके Around Develop किया गया Statefulness का Simulation Create करने के लिए ही WebForms के अन्तर्गत इस Extra Layer को Add किया गया था। जबकि MVC पूरी तरह से Web के Stateless Architecture पर ही आधारित है, इसलिए WebForms के इस Extra Layer की MVC पर जरूरत नहीं है। परिणामस्वरूप MVC Model, WebForms की तुलना में ज्यादा Simple हो गया है।
हालांकि इस Extra Layer की वजह से Web Developer का Development Related काम काफी हद तक आसान हो गया था, जबकि MVC में ये Extra Layer न होने की वजह से MVC Model पर आधारित Web Applications के कुछ Side Effects भी हैं। जिसके अन्तर्गत सबसे पहले Side Effect के रूप में हमें State Management को पूरी तरह से अपने स्तर पर Define करना होता है। क्योंकि State Management का काम WebForms में उस Extra Layer द्वारा Manage कर लिया जाता था, जो कि MVC Model में Exist नहीं है।
हालांकि State Management की जरूरत को पूरा करने के लिए हम WebForms के Session या Cache Feature को Use कर सकते हैं अथवा हम हमारे स्वयं के Create किए गए WebForms के ViewState जैसे Infrastructure को भी State Management के लिए Use कर सकते हैं। यानी हम हमारी जरूरत के अनुसार अपने MVC आधारित Web Application में WebForms के लिए Develop किए गए Features को भी Use करते हुए किसी Specific प्रकार की जरूरत को पूरा कर सकते हैं।
अन्य शब्दों में कहें तो MVC व WebForms के बीच जो अन्तर है, वो वास्तव में अलग तरह के Architectural Infrastructure का ही अन्तर है, जो ASP.NET की समान ASP.NET Classes यानी समान Technologies का प्रयोग करते हुए दो अलग तरह के व दो अलग तरीके से Web Applications Develop करने की Capability Provide करता है। जबकि MVC Model में WebForms की तुलना में यदि Overheads कम हैं, तो Web Developer के लिए Pre-Defined Features भी कम हैं।
अत: ASP.NET MVC हमें हमारे Web Application Development के लिए एक Clear Separation of Concerns, एक Clean Runtime State, HTML व अन्य Markup/Scripting Languages पर पूर्ण Control युक्त वातावरण, आसानी से Extend की जा सकने वाली Extensibility व एक बेहतर Working Environment Provide करता है, जिसमें Test-Driven Development (TDD) करना सम्भव होता है।
जैसाकि MVC व WebForms दोनों Models पर आधारित Web Applications समान Process Space में बिना एक दूसरे को किसी भी प्रकार से Disturb किए हुए एक साथ Exist हो सकते हैं। हालांकि एक MVC Application को Run करने के लिए हमें Runtime Environment को Configure करने की जरूरत पडती है।
यानी हमें एक Routing Module को Install करना होता है, जो कि आने वाली प्रत्येक Incoming Request को Catch करता है और फिर इस बात का निर्णय लेता है कि किसी Particular Request को किस प्रकार से Process करना है। इस Routing Module में एक या अधिक URL Patterns को Specify किया जाता है, जो कि Matching Pattern वाले Request को Fulfill करते हुए किसी Specific URL को Processing के लिए Activate करता है यानी Request को किसी Specific URL पर Redirect करता है। जबकि WebForms Model में ऐसा कोई Routing Module सामान्यत: नहीं होता, हालांकि यदि हम चाहें तो किसी Specific प्रकार की जरूरत को पूरा करने हेतु WebForms के लिए भी Routing Module को Define कर सकते हैं।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Core ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Core ASP.NET WebForms in Hindi | Page:647 | Format: PDF