2009-05-12 8 views
13

एसओ पर के बारे में बहुत सारे प्रश्न हैं ASP.Net MVC में इंजन और "डिफ़ॉल्ट" के बजाय "कस्टम" का उपयोग करने के बारे में देखें। मेरे लिए एक शौक प्रोग्रामर के रूप में, "व्यू इंजन" शब्द नया है, और मैं समझने में सक्षम नहीं हूं कि इसका क्या अर्थ है। तो, मेरे प्रश्न हैं:एएसपी.NET एमवीसी व्यू इंजन क्या है?

  1. व्यू इंजन क्या है?

  2. व्यू इंजन क्या करता है, और एमवीसी पैटर्न में कौन सी भूमिका निभाती है? (निकटता से संबंधित 1 ...)

  3. डिफ़ॉल्ट व्यू इंजन की मुख्य विशेषताएं/गुण क्या हैं जो प्रोग्रामर एक अलग दृश्य इंजन पर स्विच करके बदलना/टालना चाहते हैं?

  4. सामान्य अन्य व्यू इंजनों के मुख्य लाभ क्या हैं जो डेवलपर मानक के मुकाबले अलग-अलग उपयोग करने का विकल्प चुनते हैं? (मैंने "स्पार्क व्यू इंजन" नाम को कई बार देखा है, और मैं शर्त लगाता हूं कि अन्य भी हैं)।

  5. जब (किस परिदृश्य में) मैं अपना खुद का व्यू इंजन विकसित करना चाहता हूं?

वहां, मुझे लगता है कि मैं बस इतना पूछना चाहता हूं (अभी के लिए)। मुझे इंजन देखें 101! =)

+0

यदि यह समुदाय विकी होना चाहिए, तो कृपया मुझे बताएं। –

+0

मुझे ऐसा नहीं लगता है – TStamper

उत्तर

5

"व्यू इंजन" दृश्य के प्रतिपादन को एचटीएमएल, एक्सएमएल या जो भी सामग्री प्रकार को उत्सर्जित करने के लिए बनाया गया है, को संभालता है। "एमवीसी" के भीतर, यह व्यू (वी) का एक पहलू होगा।

अलग-अलग दृश्य इंजनों में प्रतिपादन प्रबंधित करने के लिए विभिन्न वाक्यविन्यास आदि हैं। एक और दृश्य इंजन का उपयोग करने का निर्णय सबसे अधिक संभावना/प्रोग्रामर विशिष्ट है। कुछ मामलों में वे डिफ़ॉल्ट दृश्य इंजन की वास्तविक या कथित सीमा देख सकते हैं; अन्य मामलों में यह केवल एक अलग डिजाइन लक्ष्य या फोकस हो सकता है।

जहां तक ​​स्पार्क जाता है, उनका ध्यान डिफ़ॉल्ट दृश्य इंजन की तुलना में अधिक तेज़ होना है और एएसपी.NET स्क्रिप्ट ब्लॉक में छोड़ने के बजाय जितना संभव हो HTML- सिंटैक्स में रहना है।

अंतिम उपयोगकर्ता के रूप में, केवल एक बार जब आप अपना स्वयं का व्यू इंजन बनाना चाहते हैं तो शायद कभी नहीं। ;) यह हल्का ढंग से लेने का कोई काम नहीं है, और आप संभवतः एक मौजूदा व्यू इंजन में मौजूद होने वाली पुन: कार्यान्वयन कार्यक्षमता को समाप्त कर देंगे।

संपादित

ठीक है। तो व्यू.एएसपीएक्स फाइल व्यू इंजन का हिस्सा हैं, या व्यू इंजन कक्षाओं का एक सेट है जो चुनने में मदद करता है जो View.aspx (या अन्य प्रकार के प्रतिक्रिया) को प्रस्तुत किया जाना चाहिए? कैसे यह काम करता है?

एमवीसी पैटर्न आपको बताता है कि आपका मॉडल, दृश्य और नियंत्रक अलग-अलग "चीजें" होगा। एएसपी.नेट एमवीसी में, डिफॉल्ट व्यू इंजन मौजूदा एएसपी.नेट फ्रेमवर्क का उपयोग करता है, जिसमें मास्टर पेज, एएसपीएक्स फाइल इत्यादि शामिल हैं। स्पार्क कुछ समान करता है, लेकिन यह एक अलग इंजन है, इसलिए यह बिल्कुल वही काम नहीं करता है। तो सामान्य अर्थ में दृश्य फ़ाइलें इंजन-विशिष्ट नहीं हैं, लेकिन विशिष्ट फ़ाइलें, डिस्क पर उनके लेआउट और उनकी सामग्री व्यू-इंजन विशिष्ट हैं।

+0

ठीक है। तो View Engine का View.aspx फ़ाइलें भाग हैं, या व्यू इंजन क्लास का एक सेट है जो कौन सी View.aspx (या अन्य प्रकार की प्रतिक्रिया) चुनने में मदद करता है जिसे प्रस्तुत किया जाना चाहिए? यह कैसे काम करता है? –

1

व्यू इंजन (उदा। स्पार्क) को पूरी तरह से बदलने की इच्छा रखने के अलावा, आप डिफॉल्ट व्यू इंजन के व्यवहार में थोड़ा बदलाव करने के लिए अपना स्वयं का व्यू इंजन भी बना सकते हैं। आप ऐसा नया व्यू इंजन बनाकर कर सकते हैं जो डिफ़ॉल्ट इंजन से विरासत में मिलता है और कुछ व्यवहार को ओवरराइड करता है।

एक आम उदाहरण tweaking है जहां व्यू इंजन .aspx फ़ाइलों के लिए हार्ड ड्राइव पर दिखता है। उदाहरण के लिए, हो सकता है कि आप एक व्यू इंजन बनाना चाहें जो स्वचालित रूप से स्विच करता है जो view.aspx फ़ाइल का उपयोग मोबाइल डिवाइस पर है या नहीं।

इस के वास्तव में अच्छे उदाहरण कार्यान्वयन के लिए Mobile Web Sites with ASP.NET MVC and the Mobile Browser Definition File देखें।

अद्यतन:

स्कॉट सिर्फ एक updated ViewEngine implementation महत्वपूर्ण सुधार बनाम ऊपर लिंक प्रारंभिक कार्यान्वयन है कि पोस्ट किया।

संबंधित मुद्दे