मैं जानना चाहूंगा कि cshtml का चयन करना बेहतर क्या है, क्यों या कब और क्यों, एस्पिरेट टेक्नोलॉजीज चुनना बेहतर है या क्यों? इन दो तकनीकों का क्या उद्देश्य है?
धन्यवाद,
मैं जानना चाहूंगा कि cshtml का चयन करना बेहतर क्या है, क्यों या कब और क्यों, एस्पिरेट टेक्नोलॉजीज चुनना बेहतर है या क्यों? इन दो तकनीकों का क्या उद्देश्य है?
धन्यवाद,
जवाबों:
जैसा कि अन्य लोगों ने उत्तर दिया है, .cshtml
(या .vbhtml
यदि आपका स्वाद है) एमवीसी इंजन को लोड करने के लिए एक हैंडलर-मैपिंग प्रदान करता है। यह .aspx
एक्सटेंशन केवल aspnet_isapi.dll को लोड करता है जो संकलन करता है और वेब प्रपत्रों की सेवा करता है। हैंडलर मैपिंग में अंतर केवल एक ही सर्वर पर दोनों को सह-अस्तित्व में रखने की अनुमति देने का एक तरीका है जो MVC अनुप्रयोगों और WebForms अनुप्रयोगों दोनों को एक सामान्य रूट के तहत रहने की अनुमति देता है।
इससे http://www.mydomain.com/MyMVCApplication वैध हो सकता है और एक मानक वेब फॉर्म के रूप में मान्य होने के लिए http://www.mydomain.com/MyWebFormsApplication के साथ MVC नियमों के साथ सेवा की जाती है ।
संपादित करें:
प्रौद्योगिकियों के अंतर के रूप में, MVC (रेजर) टेम्प्लेटिंग फ्रेमवर्क को वापस करने का इरादा है। टेम्प्लेटेड विचारों के एक अधिक विश्वसनीय "वेब-आधारित" प्लेटफ़ॉर्म पर नेट पृष्ठों को मॉडल (व्यापार / डेटा ऑब्जेक्ट) के बीच कोड तर्क को अलग करने के लिए; दृश्य (उपयोगकर्ता क्या देखता है) और नियंत्रक (दोनों के बीच संबंध)। WebForms मॉडल (aspx) Microsoft द्वारा जटिल जावास्क्रिप्ट जावास्क्रिप्ट का उपयोग करने का एक प्रयास था, जो कि एक WinForms अनुप्रयोग के समान घटनाओं और एक पृष्ठ जीवनचक्र के समान एक अधिक स्टेटफुल एप्लिकेशन का अनुकरण करने के लिए है जो पृष्ठ से पृष्ठ पर अपने स्वयं के राज्य को बनाए रखने में सक्षम होगा।
एक या दूसरे का उपयोग करने का विकल्प हमेशा एक विवादास्पद होने वाला है क्योंकि दोनों प्रणालियों के लिए और उनके खिलाफ तर्क हैं। मैं एमवीसी वास्तुकला में सादगी पसंद करता हूं (हालांकि राउटिंग कुछ भी सरल है) और रेजर सिंटैक्स की आसानी। मुझे लगता है कि WebForms आर्किटेक्चर एक प्रभावी वेब प्लेटफॉर्म बनने के लिए बहुत भारी है। कहा जा रहा है, ऐसे कई उदाहरण हैं जहां WebForms रूपरेखा एक समृद्ध घटना संरचना के साथ एक बहुत ही सफल और उपयोगी मॉडल प्रदान करती है जिसे अच्छी तरह से परिभाषित किया गया है। यह सब आवेदन की आवश्यकताओं और इसे बनाने वालों की प्राथमिकताओं के लिए उबलता है।
रेजर ASP.NET MVC के लिए एक दृश्य इंजन है , और एक टेम्पलेट इंजन भी है । रेजर कोड और ASP.NET इनलाइन कोड (मार्कअप के साथ मिश्रित कोड) दोनों पहले संकलित हो जाते हैं और निष्पादित होने से पहले एक अस्थायी विधानसभा में बदल जाते हैं। इस प्रकार, C # और VB.NET की तरह दोनों ही IL को संकलित करते हैं जो उन्हें विनिमेय बनाता है, रेजर और इनलाइन कोड दोनों परस्पर विनिमय योग्य हैं।
इसलिए, यह शैली और रुचि की बात है। मैं ASP.NET इनलाइन कोड के बजाय रेजर के साथ अधिक सहज हूं, अर्थात, मैं .aspx पृष्ठों के लिए रेजर (cshtt) पृष्ठों को पसंद करता हूं।
कल्पना करें कि आप एक Human
कक्षा प्राप्त करना चाहते हैं , और इसे प्रस्तुत करना चाहते हैं। में cshtml फ़ाइलें आप लिखते हैं:
<div>Name is @Model.Name</div>
जबकि aspx फ़ाइलों में आप लिखते हैं:
<div>Name is <%= Human.Name %></div>
जैसा कि आप देख सकते हैं, @
रेजर का चिह्न मिश्रण कोड और मार्कअप को बहुत आसान बनाता है।
Model
दृढ़ता से टाइप किए गए विचारों के लिए उपयोग किया जाता है, जिसमें आप model
कीवर्ड का उपयोग करके शीर्ष पर अपने प्रकार को परिभाषित करते हैं ।
जबकि रेज़र ( .cshtml
/ .vbhtml
) और WebForms ( .aspx
/ .ascx
), (रेज़र का अधिक संक्षिप्त और आधुनिक होना दोनों) के बीच वाक्यविन्यास निश्चित रूप से भिन्न है , किसी ने भी उल्लेख नहीं किया है कि दोनों का उपयोग View Engines / Templating Engines, पारंपरिक ASP.NET के रूप में किया जा सकता है वेब फ़ॉर्म नियंत्रण किसी भी .aspx या .ascx फ़ाइलों पर उपयोग किया जा सकता है, (यहां तक कि MVC वास्तुकला के साथ सामंजस्य में)।
यह उन स्थितियों में प्रासंगिक है जहां किसी समस्या के लंबे समय तक समाधान स्थापित किए गए हैं और प्लग-योग्य घटक (जैसे कि एक बड़ी फ़ाइल अपलोडिंग नियंत्रण) में पैक किए गए हैं और आप इसे एमवीसी साइट में उपयोग करना चाहते हैं। रेजर के साथ, आप ऐसा नहीं कर सकते। हालाँकि, आप एक ही बैकएंड-प्रोसेसिंग के सभी को निष्पादित कर सकते हैं जो आप एक पारंपरिक ASP.NET आर्किटेक्चर के साथ वेब फॉर्म दृश्य के साथ उपयोग करेंगे।
इसके अलावा, ASP.NET वेब फॉर्म व्यू में कोड-बिहाइंड फाइल्स हो सकती हैं, जो लॉजिक को एक अलग फाइल में एम्बेड करने की अनुमति देती है, जिसे व्यू के साथ संकलित किया जाता है। जबकि सॉफ्टवेयर डेवलपमेंट कम्युनिटी को कड़े युग्मित आर्किटेक्चर और स्मार्ट क्लाइंट पैटर्न को खराब अभ्यास के रूप में देखा जा रहा है , यह चीजों को करने का मुख्य तरीका हुआ करता था और अभी भी .aspx / .ascx फाइलों के साथ बहुत संभव है। जानबूझकर रेजर, ऐसा कोई गुण नहीं है।
Cshtml फाइलें रेजर द्वारा उपयोग की गई हैं और जैसा कि इस प्रश्न के उत्तर के रूप में कहा गया है , उनका मुख्य लाभ यह है कि उन्हें यूनिट परीक्षणों के साथ प्रदान किया जा सकता है। इस अन्य विषय के विभिन्न उत्तर कई अन्य दिलचस्प बिंदुओं को सामने लाएंगे।