ASP.NET कोर 2.0 रेजर बनाम कोणीय/प्रतिक्रिया/आदि




angular reactjs (3)

सर्वर पक्ष में एपीआई के साथ कोणीय / प्रतिक्रिया का उपयोग करके:

  • आप सर्वर साइड में HTML बनाने की प्रक्रिया को समाप्त करते हैं और आप सीपीयू को बचाते हैं
  • एपीआई छोटे पेलोड (जैसन) और रेजर का उत्पादन करता है (html) आकार में बहुत बड़ा, निरंतर पूर्ण पृष्ठ रीलोड और पोस्टबैक राउंड ट्रिप होगा। इसलिए एपीआई और स्पा बैंडविड्थ को बचाते हैं
  • एपीआई और स्पा में अलग-अलग संस्करण, स्केलिंग और तैनाती परिदृश्य हो सकते हैं
  • आपी का उपयोग करके आप मोबाइल ऐप का भी समर्थन कर सकते हैं और यदि आप रेज़र द्वारा शुरू करते हैं तो आपको भविष्य में एपीआई की आवश्यकता हो सकती है

लेकिन कोणीय / प्रतिक्रिया का उपयोग करके आपको ग्राहकों के बारे में चिंता करनी चाहिए।

  • क्लाइंट को जावास्क्रिप्ट सक्षम करना चाहिए
  • क्लाइंट के पास आधुनिक ब्राउज़र होना चाहिए
  • क्लाइंट के पास पर्याप्त शक्तिशाली हार्डवेयर होना चाहिए
  • एसईओ

मेरी टीम और मुझे एक एंटरप्राइज़ स्तर वेब एप्लिकेशन विकसित करने के लिए धन प्राप्त हुआ है (यह क्या करता है, इसके विवरण में नहीं जाएगा)। एप्लिकेशन में कई अलग-अलग वेब पेज होंगे लेकिन उनमें से दो पृष्ठ अधिक केंद्रित और बहुत भारी-भारी होंगे जैसे कि उपयोगकर्ता की बहुत सारी बातचीत में, ऐसे मोडल जो बड़े पैमाने पर डेटा, वेबसोकेट कनेक्शन, चैट आदि प्रदर्शित करते हैं।

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

मैं "नया" रेजर बनाम कोणीय / प्रतिक्रिया और इसी तरह के कुछ विशेषज्ञ राय प्राप्त करना चाहता था। मैं विशेष रूप से प्रदर्शन से अधिक चिंतित हूं। कोर 2.0 रेजर क्लाइंट साइड रेंडरिंग फ्रेमवर्क को कैसे पकड़ता है? क्या मतभेद नगण्य हैं? हमारा ऐप संभावित 1,000,000 उपयोगकर्ताओं (लगभग 100,000 समवर्ती) को लक्षित कर रहा है।

अग्रिम में धन्यवाद!


हमने Azure SQL का उपयोग करते हुए एक कोणीय मोर्चे के अंत और एक ASP.NET कोर एपीआई बैकएंड के साथ जाना समाप्त कर दिया। हमने कोर रेजर का परीक्षण किया और, हालांकि विरासत रेजर से बेहतर, कोणीय अंत में हमारे लिए बहुत तेज था। जहाँ तक उपयोगकर्ता अनुभव जाता है, प्रदर्शन के मामले में कोणीय (या प्रतिक्रिया) कहीं बेहतर है। एंगुलर के मॉडल-बाइंडिंग पहलुओं को हमने सर्वर-साइड रेंडरिंग का विशाल लाभ पाया। रेजर का उपयोग करना (या सर्वर साइड रेंडरिंग सामान्य रूप से) करता है, हालांकि, डेटा को जाने तक बेहतर समग्र अखंडता के लिए खुद को उधार देता है और यह फ्रंट-एंड से बैक-एंड तक डेटा के बेहतर संक्रमण के लिए बनाता है। फ्रंट-एंड फ्रेमवर्क और एपीआई के बीच एक वास्तविक डिस्कनेक्ट है। सर्वर को पारित किए गए सभी डेटा को टाइप किए गए ऑब्जेक्ट में डालना होगा - इसका मतलब है कि आपको दो अलग-अलग POCO मॉडल सेट का प्रबंधन करना होगा। यदि सर्वर ऑब्जेक्ट और फ्रंट-एंड ऑब्जेक्ट्स संरेखित नहीं करते हैं तो यह समस्याएँ पैदा कर सकता है। फिलहाल, Entity Framework Core बहुत परिपक्व नहीं है, इसलिए हमारे पास ऑब्जेक्ट्स को अपडेट करने, ऑब्जेक्ट्स को क्वेरी करने, जिसमें चाइल्ड ऑब्जेक्ट्स आदि शामिल हैं, के साथ समस्याएँ हैं।

कुल मिलाकर, इस सेटअप ने हमारे लिए अब तक शानदार काम किया है! मुझे लगता है कि यदि आप इसके साथ अधिक सहज होते हैं तो रिएक्ट एंगुलर के समान प्रतिस्थापन होगा। मुझे एंगुलर सीखना था, जो एक बहुत ही आसान संक्रमण था, और मैं इसे अब प्यार करता हूँ!


मेरे पास बेंचमार्क नहीं हैं। लेकिन, मेरे पास JQuery, रेजर, .NET MVC (C #), AJAX चलाने वाली कई परियोजनाएं हैं। उस पैमाने पर नहीं जो आप निपटा रहे हैं।

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

मैं Linq2SQL का भी उपयोग करता हूं। मैंने हर चीज के लिए मॉडल बनाने की गलती की और फिर मुझे एहसास हुआ कि मैं मॉडल के रूप में अपने प्रश्नों से निर्धारित परिणाम को वापस कर सकता हूं। ओह।

यदि आप .NET MVC जाते हैं और प्रदर्शन के बारे में चिंतित हैं, तो ये चीजें हैं जो मैं भाग गया:

HTML के बड़े ब्लॉक बनाने वाले आंशिक विचार वापस न करें! सब कुछ कम से कम करना सुनिश्चित करें। सभी सफेद स्थान से छुटकारा पाएं। छोटी आईडी नामों का उपयोग करें। Html बनाने के लिए समय निकालें जो जितना संभव हो उतना हल्का हो। JSON लौटाएं और क्लाइंट के पास कुछ काम करें।

अपने सीएसएस को कैसे विकसित करें, इस पर सावधान रहें। इनलाइन शैलियों का एक गुच्छा का उपयोग न करें, CSS फाइलों में शामिल करने के लिए समय निकालें जिन्हें आप बाद में कम कर सकते हैं।

वही आपके क्लाइंट पक्ष JS के लिए जाता है। जेएस को आंशिक विचारों के अंदर लाना लुभावना है। चीजों को व्यवस्थित रखें।

IE पर भरोसा करना भयानक है। खासकर अगर बहुत सारी छवियां हैं। पाठ्यक्रम की गुणवत्ता को खोए बिना, यथासंभव चित्रों को संपीड़ित करना सुनिश्चित करें।





razor