Nodejs बनाम सिग्नलआर: हमें सर्वर-साइड जावास्क्रिप्ट की आवश्यकता क्यों है?


90

जब से मैं Node.js के बारे में जानता हूं, मैं हमेशा इसका प्रशंसक रहा हूं। लेकिन आज मैंने सिग्नलआर के बारे में पाया , जो ASP.NET के लिए एक वैकल्पिक अतुल्यकालिक - स्केलेबल - रियलटाइम मॉडल प्रदान करता है।

जहां तक ​​मुझे पता है, सिग्नलआर पर Node.js का मुख्य लाभ क्लाइंट-सर्वर के बीच कोड साझा करना है (एक और फायदा यह होना चाहिए कि यह क्रॉस-प्लेटफॉर्म है), और सिग्नलआर का मुख्य लाभ कहीं अधिक परिपक्व रूपरेखा और कहीं बेहतर है उपकरण (आईडीई) समर्थन। इसलिए मुझे आश्चर्य है: अगर सिग्नलआर यहां है, तो क्या हमें विंडोज पर अब नोड.जेएस की आवश्यकता है? क्या मुझे पता नहीं Node.js के कोई फायदे हैं?


27
यहां कुछ भ्रम होने लगता है। Node.js एक विकास मंच है, जबकि SignalR ASP.NET के लिए एक पुस्तकालय है। एक बेहतर तुलना नोड .js + socket.io बनाम ASP.NET + सिग्नलआर होगी। क्या इस प्रश्न को स्पष्ट करने के लिए अद्यतन किया जा सकता है?
किंवदंती

6
सच और गलत, सिग्नलआर .NET के लिए एक पुस्तकालय है।
davidfowl

जवाबों:


107

SignalR Socket.IO और Node.js. के लिए एक व्यवहार्य विकल्प है हालाँकि सर्वर पर जावास्क्रिप्ट का उपयोग करने के अन्य कारण हैं।

  1. यह ढेर को समतल करता है। लगभग इन दिनों किसी भी वेबसाइट को ब्राउज़र पर जावास्क्रिप्ट करना पड़ता है, और यदि आप इसे सर्वर पर भी उपयोग करते हैं, तो आप बैच से एक भाषा काट सकते हैं, जिसमें आपको दक्षता प्राप्त करनी होगी।

  2. संदेश गुजरना बहुत स्वाभाविक है। हर जगह JSON! विशेष रूप से एक दस्तावेज़ डेटाबेस के साथ संयुक्त जो JSON का उपयोग करता है, पास होने वाला सभी संदेश केवल JSON ऑब्जेक्ट बन जाता है। यह पूरे सिस्टम में होने वाले संदेश ब्रोकिंग की मात्रा को कम करता है।

  3. यह Microsoft नहीं है। मुझे व्यक्तिगत रूप से पसंद है कि Microsoft ने विकास समुदाय के लिए क्या किया है। वे शानदार उपकरण बनाते हैं और सबसे अच्छे ढांचे और भाषाओं में से एक है। कहा जा रहा है कि, कुछ लोग माइक्रोसॉफ्ट से नफरत करना पसंद करते हैं।

  4. लागत। Microsoft उपकरण मुफ्त या बहुत सस्ते (एक्सप्रेस संस्करण और बिज़ स्पार्क) प्राप्त करने के कई अच्छे तरीके हैं। Microsoft उपकरणों के साथ काम करने के लिए अभी भी एक उच्च लागत जुड़ी हुई है। मेरा मानना ​​है कि यह लागत अधिकांश उदाहरणों में उत्पादकता लाभ के लायक है, लेकिन हर कोई इससे सहमत नहीं है।

उपरोक्त के अलावा, अभी भी कहानी चल रही है कि आप थ्रेडिंग मॉडल के कारण IIS पर लंबे मतदान अनुरोधों को स्केल नहीं कर सकते। यह इसके लिए कुछ सच्चाई है, लेकिन अच्छे कोड डिजाइन और कुछ सर्वर के साथ, आप ज्यादातर इन समस्याओं के आसपास हो सकते हैं।


6
मैंने हंसेलमैन के ब्लॉग प्रविष्टि hanselman.com/blog/… को पढ़ा है कि ASP.NET/SignalR चैट एप्लिकेशन दसियों या सैकड़ों हजारों ग्राहकों की सेवा कर सकता है, जो वास्तव में आश्चर्यजनक है। मैंने यह देखने के लिए गहराई से खुदाई नहीं की कि वे ऐसा कैसे करते हैं, लेकिन यह करीब है कि "स्केलेबल" नोडोज़ कैसे कर सकते हैं ...
क्वान माई

7
यदि आप ASP.NET MVC जैसी किसी चीज़ का उपयोग कर रहे हैं, तो आपको जावास्क्रिप्ट, एचटीएमएल, सीएसएस, सी # और विजुअल स्टूडियो को जानना होगा। सर्वर की तरफ जावास्क्रिप्ट के साथ आप इसे जावास्क्रिप्ट, HTML, सीएसएस में कम कर सकते हैं।
डैनियल लिडस्ट्रॉम

4
asp.net और सामान्य रूप से .net वास्तव में केवल एक एमएस नहीं है। वैकल्पिक .net रनटाइम के लिए IDEs और मोनो के लिए शार्पडेवलप और मोनोडेवलप की जाँच करें। इससे अंक 3 और 4 निकलते हैं। इसके अलावा, मैं एक भाषा के प्रतिमान में विश्वास नहीं करता। जब तक आप अभी शुरू नहीं कर रहे हैं तब तक कई भाषाओं को सीखना मुश्किल नहीं है। 2 के लिए, JSON से .net ऑब्जेक्ट बनाना वास्तव में उतना कठिन नहीं है। इसके अलावा, एक लंबे मतदान और रीयलटाइम संचार प्रतिस्थापन के लिए सिग्नलआर की जांच करें
bbqchickenrobot

7
@ क्रूफ़्रे आप कह रहे थे? asp.net/open-source आप OWIN का उपयोग करके सिग्नलआर को होस्ट कर सकते हैं।
तीमुथियुस Strimple

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