नोड- js और c # के लिए उपयोग के मामले


10

मैं ASP.NET वर्क (C #, MVC) में से काफी कुछ करता हूं, लेकिन इसमें से अधिकांश विशिष्ट वेब डेवलपमेंट है। मैं CRUD रिपॉजिटरी का उपयोग करके रेस्टफुल आर्किटेक्चर करता हूं। मेरे अधिकांश ग्राहकों के पास उनके अनुप्रयोगों के लिए बहुत सारी उन्नत आवश्यकताएं नहीं हैं।

अब मैं नोड पर देख रहा हूं। जेएस और यह प्रदर्शन के निहितार्थ हैं (मैं गति का आदी हूं), लेकिन मैंने इसमें बहुत कुछ नहीं किया है।

मैं सोच रहा हूँ अगर

  • नोड। वास्तविक रूप से C # और ASP.NET MVC में मेरे विशिष्ट वेब विकास को बदल सकते हैं (मौजूदा ऐप्स को फिर से लिखना नहीं, लेकिन जब नए पर काम कर रहे हों)
  • नोड.js मौजूदा आर्किटेक्चर में कुछ async अच्छाई जोड़कर ASP.NET MVC ऐप को पूरक कर सकते हैं।

क्या C # और node.js के लिए / उपयोग के मामले हैं?

संपादित करें

मैं ASP.NET MVC से प्यार करता हूं और जहां यह जा रहा है, उससे सुपर उत्साहित हूं। बस यह देखने की कोशिश कर रहा है कि क्या विशेष उपयोग के मामले हैं जो पक्ष


हां, मुझे एहसास है कि जब रूबी, या PHP सहित यह एक बड़ी बातचीत हो सकती है, लेकिन इस विशेष प्रश्न के लिए, मुझे उन दोनों में से किसी में भी दिलचस्पी नहीं है ... यह सिर्फ मेरे लिए है।
च्वाइस फ्लोरेल

उत्तर है, नोड का प्रयास करें। इसके बारे में पढ़ें। देखिये आपको अच्छा लगेगा।
रेयनोस

जवाबों:


11

अब मैं नोड पर देख रहा हूं। जेएस और यह प्रदर्शन के निहितार्थ हैं (मैं गति का आदी हूं), लेकिन मैंने इसमें बहुत कुछ नहीं किया है।

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

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

क्या C # और node.js के लिए / उपयोग के मामले हैं?

ज़रूर, यदि आप एक दुकान में हैं जो नियमित रूप से C # में कोड लिखते हैं, तो आपको MVC का उपयोग करना चाहिए (यह WebForms की तुलना में बहुत बेहतर है, और इसे वेबपेज कहा जाता है)। आप टूलींग प्रशिक्षण के लिए बहुत समय नहीं गंवाने जा रहे हैं, और यह कुछ ऐसा है जिसे आपके वर्कफ़्लोज़ को पहले से ही संभालना चाहिए।

जो आप ऊपर इंगित नहीं करते हैं वह प्रत्येक को चुनने का कारण है। आपने दो वर्तमान बाजार विकल्प दिए हैं, एक अभी भी अल्फा चरणों में है, दूसरा इसके प्लेटफॉर्म रिलीज के पूरे तीसरे वर्ष पर है। मैं वर्तमान परीक्षण मॉडल इलेक्ट्रिक कारों की तुलना होंडा संकर के साथ नहीं करना चाहता हूं जो पहले से ही बाजार में हैं। वे दो अलग-अलग लीगों में हैं।

अब, यहाँ आपके लिए नोड से दूर रहने का एक कारण है। यदि आप नाममात्र C # दुकान हैं।

आप वर्तमान में अतुल्यकालिक ईवेंट i / o में काम नहीं करते हैं, आप वर्तमान में एक प्रक्रियात्मक प्रारूप में काम करते हैं।

यह आपके लिए क्या करने जा रहा है, इसके लिए एंटीथिसिस है।

हालाँकि, यदि आप अक्सर C # में async कोड लिख रहे हैं, और आप इसे एक ईवेंटेड शैली में बहुत अधिक उपयोग करते हैं, तो हाँ, नोड.जेएस आपके लिए दृढ़ता से विचार करने के लिए है।

यहाँ आप क्या देंगे:

  • IIS - यह वास्तव में बहुत से लोगों के लिए महत्वपूर्ण है। देशी ए / डी एकीकरण जैसी चीजें पहले से ही की जाती हैं, और सुंदर बग-मुक्त हैं। वास्तव में नोड.जेएस अब आईआईएस के साथ अच्छी तरह से एकीकृत है।
  • रेजर टेंपलेटिंग - यदि आपने कोई गंभीर सी # एमवीसी किया है, तो आप रेजर का उपयोग और प्यार कर रहे हैं और आप कितनी जल्दी चीजों को काट सकते हैं। नोड में समान टेम्प्लेट हैं, और मैं निश्चित रूप से नोड नॉक नहीं कर रहा हूं, लेकिन संपूर्ण टूलकिन पहले से ही सी # में मौजूद है, और बहुत सारे वर्तमान में नोड दुनिया में बनाया जा रहा है। ध्यान दें: इस टूलींग का एक बहुत अब नहीं बल्कि परिपक्व है _
  • dlls का संकलन-समय निर्माण - node.js आमतौर पर मक्खी पर संकलित किया जाता है, यह कहना है, स्टार्टअप पर सभी रास्तों की जांच नहीं की जाती है। नोड में वास्तव में बुरा कोड होना पूरी तरह से संभव है जो किसी के खिलाफ कभी भी छूता नहीं है, चेक करता है, या परीक्षण करता है।
  • वर्तमान में सभी उपकरण जो वीएस में निर्मित हैं, जिनका आप दैनिक उपयोग करते हैं - जावास्क्रिप्ट के लिए बस इतना वीएस समर्थन नहीं है। आंशिक रूप से क्योंकि जावास्क्रिप्ट में सब कुछ इतना गतिशील है। NB: Microsoft स्पष्ट रूप से जावास्क्रिप्ट _ के लिए टूलिंग समर्थन पर काम कर रहा है

यहाँ आप क्या हासिल करेंगे:

  • आपके द्वारा विकसित की जाने वाली हर चीज एक ही भाषा में होगी, मान लें कि आप क्लाइंट साइड स्क्रिप्टिंग के साथ-साथ सर्वरसाइड भी करते हैं। (या आप सर्वर पर जावास्क्रिप्ट पर भी विचार क्यों करेंगे)

इसलिए, जब से मैं पूरी तरह से यहां नोड को कोसने लगा हूं, मुझे यह बताना चाहिए कि नोड घर पर मेरी खेल भाषा है, मुझे यह पसंद है, और मैं कभी-कभी स्टैकओवरफ्लो चैट सर्वर (कमरा 642) पर लोगों को इसे डिबग करने में मदद करता हूं। मैं देख रहा हूं कि भविष्य में इसकी बड़ी और शानदार क्षमता है।

मैं सिर्फ यह कह रहा हूं कि बच्चे को बाहर मत फेंको और आश्चर्य करो कि स्नान का पानी गंदा क्यों है।

आपने एक कारण नहीं दिया है कि आपको अपने वर्षों के अनुभव को क्यों छोड़ना चाहिए और कुछ नया शुरू करना चाहिए। या तो खराब उपकरण हैं? हर्गिज नहीं। दोनों महान हैं और विकास को एक हवा देते हैं।

क्या नोड C # की जगह ले सकता है? हाँ, बिलकुल। तो PHP या जावा या रूबी कर सकते हैं। आप उन लोगों के बारे में नहीं पूछ रहे हैं।

यहां बताया गया है कि जब आप C # के बजाय नोड.जेएस प्रोग्राम करने के लिए तैयार होते हैं, तो आप कैसे जानते हैं:

  • आप अन्य लोगों की मदद करने के लिए एक पुस्तक लिखने पर विचार कर रहे हैं जो C # और आदि से पहले लिखे गए उबाऊ पुराने कार्यक्रमों के बजाय "जावास्क्रिप्ट प्राप्त करें"।
  • आपको समकालिक (अवरुद्ध) I / O से अपने ऐप्स को वास्तविक कार्य करने से रोकने में समस्याएँ आई हैं।
  • आप डिफ़ॉल्ट MVC के अलावा C # में किसी भी लाइब्रेरी का उपयोग नहीं कर रहे हैं और वह केवल रूटिंग के लिए है, और आपको पूरा यकीन है कि आप एक बेहतर रूटिंग इंजन कर सकते हैं, और आप धातु के करीब सब कुछ कोड कर रहे हैं जितना आप कर सकते हैं।
  • आपके द्वारा डिज़ाइन की जाने वाली प्रत्येक डेटा ऑब्जेक्ट को एक जोरदार टाइप की गई वस्तु के बजाय हैश के रूप में देखते हैं।

1
मेरी सलाह, नोड में तीन या चार जटिल वेबसाइट लिखें। छोटे से शुरू करो, फिर बड़े हो जाओ।
jcolebrand

1
मैं कॉलेज / विश्वविद्यालय में नहीं हूं। मैं लगभग 8 वर्षों से एकल विकसित कर रहा हूं और अपने लिए काफी अच्छा कर रहा हूं। मैं किसी अन्य कंपनी की तुलना में अपने दम पर बेहतर $ $ $ बना सकता हूं।
चॉसे फ्लोरेल

2
C # सभी कोड रास्तों के समय की जाँच करता है। यह तब तक नहीं फेंकेगा जब तक कि खराब डेटा इसे उड़ा न दे। कोड केवल खराब कोड के कारण बिल्ड को बंद नहीं करेगा। या मैं एक पुराने संस्करण का उपयोग कर रहा था और वह बदल गया है।
jcolebrand

1
@ रयोनोस: रेजर कुछ थर्ड-पार्टी ओपन सोर्स प्रोजेक्ट नहीं है, यह ASP.NET MVC 3 के लिए आधिकारिक रूप से विकसित-बाय-माइक्रोसॉफ्ट व्यू इंजन है
कार्सॉन 63000 20

1
इस लेखन के समय Node.js को IIS द्वारा समर्थित नहीं किया गया था, यह अब है।
jcolebrand 16

5

यदि आपका बस CRUD रिपॉजिटरी का उपयोग करके आराम करने वाला आर्किटेक्चर है , तो मौजूदा एप्लिकेशन को नोड.जेएस पर पोर्ट करने का कोई अच्छा कारण नहीं है।

यदि आपका लेखन एक नया एप्लिकेशन है जो REST और CRUD करता है तो शुरू से नोड.जेएस का उपयोग करने के अच्छे कारण हो सकते हैं।

यह वास्तव में प्रति आवेदन निर्भर है।

उदाहरण के लिए व्यक्तिगत रूप से मैं REST / CRUD अनुप्रयोगों को पूरी तरह से node.js में लिखूंगा क्योंकि यह व्यक्तिगत प्राथमिकता है। नोड को विकसित करने के लिए बहुत अच्छा है, ASP.NET MVC मेरे लिए एक कष्टप्रद प्रतिबंधात्मक ढांचा था।

फैसला: दोनों उपकरण काम करवाते हैं। यदि .NET या नोड के पक्ष में कोई विशिष्ट आवश्यकताएं नहीं हैं, तो आप जो चाहें उपयोग करें। अर्थात यह व्यक्तिगत प्राथमिकता है।

हालाँकि मैं दोनों प्लेटफार्मों के कुछ obvouis लाभों को सूचीबद्ध कर सकता हूं

ASP.NET

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

Node.js

  • आपके संपूर्ण वेब स्टैक के लिए एकल भाषा (यदि आपके द्वारा noSQL डेटाबेस का उपयोग किया जाता है जो कि उनके "क्वेरीज़" जैसे कि काउच / मोंगो का उपयोग करते हैं)।
  • सॉकेट.आईओ जैसे टूल का उपयोग करके सॉफ्ट रीयल-टाइम वेब एप्लिकेशन के लिए बढ़िया
  • नेटवर्किंग गोंद के लिए बढ़िया जब आपका सभी सर्वर विभिन्न विभिन्न प्रकारों के दूरस्थ दूरस्थ बिंदुओं पर बात करता है।
  • केवल आपको बॉक्स से नंगे न्यूनतम सुविधाएँ प्रदान करता है। इसका मतलब है कि आप अपने इच्छित तरीके से अपने आवेदन का निर्माण कर सकते हैं।
  • छोटे यूनिक्स शैली के उपकरणों का संग्रह जो एक काम और एक चीज़ को अच्छी तरह से करता है जो मिश्रण और मैच के लिए आसान है
  • npm : पैकेज प्रबंधन सही किया
  • समृद्ध ओपन सोर्स समुदाय

हां, मौजूदा ऐप्स को पोर्ट नहीं करना है। भविष्य में आने वाले ऐप्स के बारे में सोचकर।
चेस फ्लोरल

5
@ रेयानोस को यह अस्वीकरण जोड़ना चाहिए कि वह एक Node.js इंजीलवादी है और कभी भी MVC3 / 4 पर आधारित वेबसाइट नहीं बनाई। (मुझे लगता है कि यह उत्तर में प्रतिबिंबित करता है)।
मैट एश
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.