2012-04-17 16 views
6

के साथ सेर्वरसाइड एमवीसी का संयोजन मैं अपने सभी सर्वरसाइड तर्क के लिए .NET MVC का उपयोग कर रहा हूं और प्रारंभिक पृष्ठों की सेवा कर रहा हूं, लेकिन मेरा आवेदन क्लाइंट-साइड पर बहुत भारी है इसलिए मैंने बैकबोन.जेएस को अपनाया है बहुत उपयोगी हो।बैकबोन.जेएस

मुझे यकीन है कि मेरे सिस्टम को दोनों प्रौद्योगिकियों को शामिल करने के लिए आर्किटेक्ट कैसे करें। जिस तरह से मैं इसे देख रहा दो विकल्प

  1. स्क्रैप सर्वर साइड पर MVC से 'वी' है, pageload पर ग्राहक के लिए JSON डेटा लौट सकते हैं और रीढ़ की हड्डी clientside टेम्पलेट का उपयोग जीयूआई से निर्माण करने के लिए बेस जेएसओएन/बैकबोन मॉडल।

  2. .NET MVC में पूरी तरह से प्रस्तुत सर्वर से प्रारंभिक पृष्ठ लौटें। उन डेटा को भी वापस लौटाएं जिनका उपयोग उन्हें प्रस्तुत करने के लिए किया गया था और collection.reset({silent: true}) को डेटा को देखने के लिए लिंक करने के लिए विधि को कॉल करें। क्या मैं सोच रहा हूं कि यह मुझे बाद में दृश्यों को जोड़ने/निकालने/बदलने के लिए हैंडलर का उपयोग करने में परिवर्तन करने की अनुमति देता है?

1 मुसीबतों मुझे मैं सर्वर साइड MVC के किसी भी भाग जाने दे से डर लगता है के रूप में, अपने जहाँ मेरे कोर कौशल निहित है।

2 मुझे चिंतित करता है क्योंकि मुझे चिंता है कि मैं क्लाइंट सर्वर पर दो अलग-अलग प्रतिपादन विधियों के साथ जोखिम और काम शुरू कर सकता हूं।

बैकबोन.जेएस 1 या 2 या किसी अन्य तरीके से सर्वर-साइड एमवीसी को गठबंधन करने का सही तरीका क्या है?

+1

हम सफलतापूर्वक एएसपीनेट एमवीसी के साथ आवश्यकता, रीढ़ की हड्डी, और हैंडलबार्स के साथ उपयोग कर रहे हैं। जब हमने रीढ़ की हड्डी का उपयोग करना शुरू किया, तो हम पूरी तरह से हमारे सर्वर पृष्ठों से गुजर नहीं सकते थे, इसलिए हम उस प्रारंभिक हिट का उपयोग लेआउट डिफ़ॉल्ट एचटीएमएल में करते हैं और हम कुछ मॉडलों या संग्रहों को बूटस्ट्रैप करने के लिए दृढ़ता से टाइप किए गए दृश्यों का उपयोग करते हैं। हमारा जावास्क्रिप्ट लेआउट मोटे तौर पर हमारे सर्वर साइड व्यू के लेआउट को प्रतिबिंबित करता है, हमारे पास प्रत्येक अनुभाग के लिए फ़ोल्डर्स हैं: अनुबंध, उत्पाद, उपयोगकर्ता। प्रत्येक फ़ोल्डर में प्रत्येक खंड के लिए मॉडल, दृश्य और टेम्पलेट होते हैं। यदि आपके पास अधिक विशिष्ट प्रश्न या चिंताएं हैं तो मुझे बताएं। – MrGrigg

+0

यह भी देखें: http://stackoverflow.com/a/7711294/48082 – Cheeso

उत्तर

4
  1. आप वास्तव में V खत्म नहीं कर रहे हैं, तो आप सिर्फ बदल रहे हैं यह HTML से JSON को प्रतिनिधित्व है। आप परेशान हैं क्योंकि आप सर्वर साइड स्टफ के साथ अधिक सहज महसूस करते हैं, और यह वास्तव में एक वैध चिंता नहीं है ... आप जो भी करने की ज़रूरत है, उसे पूरा कर लेंगे और जब आप जाते हैं तो जावास्क्रिप्ट पैटर्न सीखें/बनाएं।

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

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

+1

पूरी तरह से सहमत हैं, बिंदु ** ** ** आप अभी भी 'V' रखते हैं। यह भी सहमति है कि हमें अपने बैकबोन एप्लिकेशन में किसी भी सर्वर-साइड भाषा सहायता के त्याग को गले लगाने की ज़रूरत है, वैसे ही हमें इसे एक आईफोन एप्लिकेशन में करना चाहिए जो हमारे सर्वर-साइड एप्लिकेशन लेयर के साथ इंटरैक्ट करता है। – fguillen

1

मुझे नहीं पता कि स्वीकार्य तरीका क्या है, लेकिन मुझे सर्वर पक्ष से वी को गठबंधन करने और फिर बैकबोन (आदि) को बुनाई करने में समस्याग्रस्त पाया गया है। बहुत नियंत्रित परिस्थितियों में यह काम कर सकता है, लेकिन यदि आपका ऐप क्लाइंट साइड पर बेहद भारी होने जा रहा है, मेरा सुझाव सर्वर पक्ष पर प्रतिपादन के बारे में भूलना होगा और जेएसओएन वापस लौटना होगा और बैकबोन को किसी प्रकार के टेम्पलेटिंग (मूंछ, इत्यादि) के माध्यम से अपनी सामग्री के प्रतिपादन को संभालने देना होगा।

हां, आपके पास बैकबोन घटनाओं पर पूर्ण नियंत्रण है, इसलिए आप जो चाहते हैं उसे करने के लिए उनके पास एक संभाल होगा।

मैं आपको सर्वर के पक्ष में अपने कौशल सेट का हिस्सा छोड़ने के बारे में सुनता हूं। मैं वही तरीका था, लेकिन अगर आपका प्रोजेक्ट कॉल करता है, तो मुझे लगता है कि आपको इसके लिए सर्वर साइड रेंडरिंग देना आसान लगेगा।

शुभकामनाएं!

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