2012-07-08 14 views
22

मुझे लगता है कि माइक्रोसॉफ्ट के पास रेजर सिंटैक्स के साथ एएसपी.Net को बढ़ाने का कारण होना चाहिए।Asp.Net Webforms बनाम Asp.Net WebSite (Razor) बनाम Asp.Net MVC

पर दृश्य स्टूडियो के नए वेबसाइट प्रोजेक्ट संवाद बनाएं, ASP.Net (रेजर) बनाने के लिए एक और विकल्प है। पहली बार मैं अवधि उस्तरा भर में आया था जब मैं Asp.Net MVC पर एक किताब पढ़ी, मुझे नहीं पता था यह ASP.Net

के लिए मौजूद है

enter image description here

मुझे पता है कि उस्तरा वाक्य रचना है के लिए, एमवीसी 3 में पेश किया गया। इस सवाल पूछने से पहले, मैंने एएसपी.Net (रेजर) के लिए एक टेस्ट प्रोजेक्ट बनाने का फैसला किया और देखें कि यह सामान्य एएसपी.Net वेबफॉर्म और एएसपी.नेट एमवीसी से अलग कैसे है। मैंने एमवीसी में हमारे जैसे मॉडल/व्यू/कंट्रोलर फ़ोल्डरों की खोज नहीं की है।

मुझे पता चला कि मास्टर पेज को अलग ढंग से निर्दिष्ट किया जाता है और मास्टर पेज क्लीनर है, कोई और अधिक <asp:ContentPlaceHolder />

लेकिन मेरे प्रश्न हैं:

  • मैं, यह .cshtml का उपयोग करता है नोटिस वहाँ कोई और अधिक codebehinds कर रहे हैं?
  • एएसपी.Net (रेजर) और एएसपी.NET एमवीसी
  • के बीच समानताएं और अंतर एएसपी.NET एमवीसी जैसे कार्य करने के लिए बढ़ाया जा सकता है। नियंत्रक जोड़ना? देखें/मॉडल, कस्टम रूटिंग मुझे लगता है?
  • हमारे पास एएसपी.NET एमवीसी क्यों मौजूद है? क्या यह एएसपी.NET एमवीसी में जाने की अनिच्छा को प्रोत्साहित नहीं करेगा?
  • और आप ASP.Net MVC पर ASP.Net + Razor क्यों चुनेंगे?

अद्यतन:ASP.NET Web Pages in particular was designed यह लोग हैं, जो पहले से ही HTML की जानकारी अपने पृष्ठों के लिए सर्वर प्रसंस्करण जोड़ने के लिए आसान बनाने के लिए। यह छात्रों, शौकियों, सामान्य रूप से लोगों के लिए एक अच्छा विकल्प है जो प्रोग्रामिंग के लिए नए हैं। यह भी डेवलपर्स जो non-ASP.NET वेब प्रौद्योगिकियों

अद्यतनASP.NET Web Pages ASP.NET वेब पेज डेवलपर्स जो एक सरल वेब विकास कहानी चाहते को लक्षित करता है, पीएचपी की तर्ज पर साथ अनुभव है के लिए एक अच्छा विकल्प हो सकता है। वेब पेज मॉडल में, आप HTML पृष्ठ बनाते हैं और फिर क्रमशः पृष्ठ पर सर्वर-आधारित कोड जोड़ते हैं ताकि गतिशील रूप से यह नियंत्रित किया जा सके कि मार्कअप कैसे प्रदान किया जाता है। वेब पेज विशेष रूप से एक हल्के ढांचे के लिए डिज़ाइन किया गया है, और यह HTML लोगों को जानने वाले लोगों के लिए एएसपी.NET में सबसे आसान प्रविष्टि बिंदु है लेकिन में व्यापक प्रोग्रामिंग अनुभव नहीं हो सकता है - उदाहरण के लिए, छात्र या शौकिया। वेब डेवलपर्स के लिए यह एक अच्छा तरीका भी है जो एएसपी.NET का उपयोग शुरू करने के लिए PHP या समान ढांचे को जानते हैं।

Asp.Net Web Pages

कृपया, मैं अपने तकनीकी राय की जरूरत है। धन्यवाद।

उत्तर

16

यह एक अच्छा सवाल है। सबसे पहले, रेजर की विशेषता है।

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

रेजर वी। वेब फॉर्म साइडबार: एएसपी.नेट वेब फॉर्म में आपको पहचानना होगा कि आप '<%' के साथ सर्वर कोड लिखना शुरू करना चाहते हैं और फिर जब आप सर्वर कोड लिख रहे थे तो आपको यह पहचानने की आवश्यकता थी कि ' %> '। मुझे एएसपी.नेट वेब फॉर्म पसंद हैं, लेकिन यह गुंजाइश है। रेजर के साथ आप पहचानते हैं कि आप '@' के साथ सर्वर कोड लिखना शुरू करना चाहते हैं और फिर अगली बार जब आप एक सर्वर टैग लिखना शुरू करते हैं ('<' से शुरू होता है) तो यह "आंकड़े" होता है कि आप सर्वर कोड के साथ किए जाते हैं। कुछ सर्वर कोड के साथ एचटीएमएल लिखने के लिए यह एक और संक्षिप्त तरीका है।

एएसपी.नेट वेब पेज सरल वेब अनुप्रयोग बनाने के लिए एक ढांचा है। एएसपी.नेट एमवीसी मॉडल-व्यू-कंट्रोलर (एमवीसी) पैटर्न का उपयोग कर वेब फॉर्म या रेजर इंजन के साथ वेब अनुप्रयोग बनाने के लिए एक ढांचा है। एएसपी.नेट वेब फॉर्म वेब फॉर्म रेंडर इंजन का उपयोग कर वेब अनुप्रयोग बनाने के लिए एक ढांचा है।

आखिरकार लक्ष्य बनाया जा रहा है कि आवेदन के परिष्कार के आधार पर विकल्प प्रदान करना है। अपने आवेदन के लिए सही विकल्प बनाने में सहायता के साथ प्रत्येक को समझना।

अतिरिक्त लिंक:

+1

आपकी व्याख्या अच्छी थी। आपने अपना मुद्दा बनाया लेकिन यह पर्याप्त नहीं है। ASP.Net (Razor) _ में सर्वर नियंत्रण/UserControls का उपयोग करने के बारे में क्या? एएसपी.Net (रेजर) परियोजनाएं लगभग खाली एएसपी.NET एमवीसी परियोजना की तरह दिखती हैं। आप इसे एएसपी.NET एमवीसी में कितनी जल्दी बदल सकते हैं? - तकनीकी – codingbiz

+2

एमवीसी में समानांतर उपयोगकर्ता नियंत्रण के आंशिक दृश्य हैं। आप मेरी राय में एक से दूसरे में परिवर्तित/संक्रमण नहीं करेंगे। बस पुनर्निर्माण करें। हालांकि आप दृश्य साझा कर सकते हैं। वेब प्रोग्रामिंग के लिए दो भाग हैं, यह निर्धारित करना कि आप पृष्ठ पर क्या दिखाएंगे (सी #) और वास्तव में इसे पृष्ठ पर प्रस्तुत करते हैं। मैं आपको एक ही पोस्ट में सभी 3 के बारे में सबकुछ सिखा नहीं सकता। अफसोस के साथ कहना पड़ रहा है। Http://asp.net/mvc/mvc3 –

+0

पर अधिक जानकारी क्यों हम मार्कअप के साथ सर्वर-साइड कोड मिश्रण करना चाहते हैं, यह एक रखरखाव दुःस्वप्न होना चाहिए? – IrishChieftain

3

वहाँ डिफ़ॉल्ट रूप से कोड-behinds नहीं हैं, लेकिन आप आसानी से अपने उस्तरा फ़ाइल अपने कस्टम वर्ग से विरासत बना सकते हैं:

@inherits Index 

और फिर

public class Index : WebViewPage { } 

(अधिक यहाँ जानकारी: http://www.compiledthoughts.com/2011/01/aspnet-mvc3-creating-razor-view-engine.html)

यह वेब करने के पुराने तरीके से अधिक है, और अधिक पसंद है। एमवीसी के साथ अंतर यह है कि एमवीसी एक विशाल ढांचा प्रदान करता है जो वास्तविक दुनिया अनुप्रयोगों का समर्थन करता है (रूटिंग, नियंत्रक और क्रियाओं का उपयोग करके, न केवल "मार्कअप में कोड")।

मुझे लगता है कि चीजें हैं जो वास्तव में आसान है बनाने के लिए मौजूद है, लेकिन मैं वास्तव में नहीं पता ...

अंत में, मैं हमेशा asp.net MVC के रेजर से चुना जाएगा।

आशा है कि यह मदद करता है

+0

उपयोगी सामग्री के लिए मैंने आपके उत्तर (+1) से कुछ ज्ञान उठाया – codingbiz

+1

वोट क्यों नीचे? – ivowiblo

0
  1. कोई "कोड-behinds" MVC, अवधि में कर रहे हैं। आपके पास नियंत्रक हैं, जो दोनों रेजर और गैर-रेजर के लिए मौजूद हैं।
  2. वे मार्कअप के केवल दो अलग-अलग प्रकार हैं। (अगला उत्तर देखें)
  3. यह एमवीसी की जगह नहीं है, यह सिर्फ एक और विकल्प है। पारंपरिक मार्कअप बहुत verbose है। रेजर वाक्यविन्यास संक्षेप में है।
+1

आपके पास उसी रणनीति के बाद कोड-पीछे हो सकता है WebForms। "अवधि" – ivowiblo

+0

उन्होंने यह भी कहा कि यह नियंत्रक प्रदान नहीं करता है, इसलिए वह Asp.Net MVC (रेजर) परियोजनाओं के बारे में बात नहीं कर रहा है। – ivowiblo

+0

http://www.compiledthoughts.com/2011/01/aspnet-mvc3-creating-razor-view-engine.html –

16

MVC पैटर्न में, एम मॉडल है, सी नियंत्रक है, और वी देखें है। इसलिए, काफी स्वाभाविक रूप से, एएसपी.नेट एमवीसी मॉडल में, देखें इंजन की अवधारणा है। रेजर बस उपलब्ध व्यू इंजनों में से एक है। दूसरा बॉक्स ऑफ़-द-बॉक्स प्रदान किया गया है "पुराना" वेबफॉर्म एक है (आप अपना स्वयं का व्यू इंजन भी लिख सकते हैं)। तो रेजर के पास कोड-पीछे की धारणा नहीं है जो वेबफॉर्म के भीतर इंजन सीमाओं को देखते हैं।

तो यह सब कुछ कहता है। रेजर एमवीसी के दृश्य भाग को संभालता है (यदि आप वेबफॉर्म के बजाय इसका उपयोग करना चुनते हैं)। एम या सी

व्यक्तिगत रूप से, मैं निश्चित रूप से रेजर व्यू इंजन के लिए जाता हूं यदि आप एएसपी.नेट एमवीसी पैटर्न चुनते हैं, या एमवीसी के बिना सादे वेबफॉर्म का उपयोग करते हैं, क्योंकि रेजर को कम होने के लिए डिज़ाइन किया गया है वर्बोज़, वेबफॉर्म की तुलना में उपयोग करने के लिए अधिक सरल है। यह भी हाल ही में हालिया है ... यह आसान है :-)

एक साइड नोट के रूप में, रेजर पार्सर को के बाहर एएसपी.नेट एमवीसी के बाहर भी इस्तेमाल किया जा सकता है। यह एक असेंबली में लागू किया गया है जो एमवीसी और न ही वेब असेंबली पर भरोसा करता है। यहां इस बारे में अधिक के लिए देखें: http://www.west-wind.com/weblog/posts/2010/Dec/27/Hosting-the-Razor-Engine-for-Templating-in-NonWeb-Applications

1

ठीक है, आपके पास दो विकल्प:

  1. उपयोग WebForms: का उपयोग आउट-ऑफ-बॉक्स, सर्वर साइड नियंत्रण (मिश्रित मार्कअप और व्यापार कोड का उपयोग करने के लिए तैयार) और मास्टर पेज और खाल का उपयोग करें, लेकिन इन सुविधाओं में शामिल कुछ जटिलता का सामना करें! :)

  2. एमवीसी का प्रयोग करें: या अलग डिज़ाइन मॉडल का उपयोग करें जो आपको एक अधिक संगठित कोडबेस देता है। आप पहले डिज़ाइन प्रोटोटाइप बना सकते हैं, या पहले एक व्यावसायिक कोड बना सकते हैं, फिर दूसरे पहलू का निर्माण कर सकते हैं, काफी आसान है। यहां तक ​​कि आप डिजाइनर को अपने काम पर अधिक नियंत्रण दे सकते हैं, जिससे उसे वह सब कुछ करने की क्षमता मिलती है जिसे वह चाहता है। -> यह मेरी पसंदीदा पसंद है क्योंकि यह मुझे मेरे कोड पर अधिक नियंत्रण देता है, जिससे मेरा कोड अधिक संक्षिप्त और साफ हो जाता है। बुरा यह है नहीं, लेकिन थोड़ा वर्बोज़

  3. है:

आप MVC पैटर्न का चयन किया है, तो आप एक और विकल्प ... देखें इंजन

  1. पुरानी MVC देखें इंजन के साथ सामना कर रहे हैं रेजर इंजन: यह वही काम करता है जो # 1 करता है, आप कभी इसका उपयोग क्यों नहीं करना चाहते हैं ?! यह एमवीसी पैटर्न के कुछ भी नहीं बदलता है। यह भी अधिक संक्षिप्त और आसान है, आपके पास एमवीसी की शक्ति और रेजर इंजन की सादगी दोनों है। रेजर एक स्मार्ट इन-मार्कअप सिंटैक्स है, जो आपको "<%" लिखने के बजाय अपने व्यवसाय पर ध्यान केंद्रित करने में मदद करता है! रेज़र सिंटैक्स का उपयोग करके आपको केवल एक लाभ प्रदान किया जाता है, एमवीसी की पूरी शक्ति आपकी उंगलियों पर है!

आप केवल रेज़र (सी # या वीबी) वाक्यविन्यास के साथ सरल एएसपीनेट वेब पेज भी लिख सकते हैं।(बस php की तरह)

  • मेरी निजी पसंद एमवीसी + रेजर, सबसे अच्छा संयोजन होगा!
0

वेबफॉर्म, एमवीसी, रेजर, वेबपृष्ठों और माइक्रोसॉफ्ट से आने वाले बहुत सारे भ्रम से बाहर निकलने के लिए, मैं html -> जावास्क्रिप्ट -> वेबपीआई पसंद करता हूं।