Nodejs vs SignalR: Warum brauchen wir serverseitiges Javascript?


90

Seit ich über Node.js Bescheid weiß, war ich immer ein Fan davon. Aber heute habe ich etwas über SignalR herausgefunden , das ein alternatives asynchrones - skalierbares - Echtzeitmodell für ASP.NET bietet.

Soweit ich weiß, besteht der Hauptvorteil von Node.js gegenüber SignalR darin, Code zwischen Client und Server zu teilen (ein weiterer Vorteil sollte sein, dass es plattformübergreifend ist), und der Hauptvorteil von SignalR ist ein viel ausgereifteres Framework und weitaus besser Unterstützung für Tools (IDE). Ich frage mich also: Wenn SignalR hier ist, brauchen wir Node.js unter Windows nicht mehr? Gibt es irgendwelche Vorteile von Node.js, die ich nicht kenne?


26
Hier scheint es einige Verwirrung zu geben. Node.js ist eine Entwicklungsplattform, während SignalR eine Bibliothek für ASP.NET ist. Ein besserer Vergleich wäre node.js + socket.io vs ASP.NET + SignalR. Könnte diese Frage zur Klärung aktualisiert werden?
Leggetter

6
Richtig und falsch, SignalR ist eine Bibliothek für .NET.
Davidfowl

Antworten:


107

SignalR ist eine praktikable Alternative zu Socket.IO und Node.js. Es gibt jedoch auch andere Gründe, Javascript auf dem Server zu verwenden.

  1. Es glättet den Stapel. Fast jede Website muss heutzutage über Javascript im Browser verfügen. Wenn Sie es auch auf dem Server verwenden, können Sie eine Sprache aus dem Stapel herausschneiden, den Sie beherrschen müssen.

  2. Das Weiterleiten von Nachrichten ist sehr natürlich. JSON überall! Insbesondere in Kombination mit einer Dokumentendatenbank, die JSON verwendet, werden alle Nachrichtenübergaben nur zu JSON-Objekten. Dies reduziert den Umfang der Nachrichtenvermittlung, die im gesamten System stattfinden muss.

  3. Es ist nicht Microsoft. Ich persönlich liebe, was Microsoft für die Entwicklergemeinde getan hat. Sie machen fantastische Werkzeuge und eines der besten Frameworks und Sprachen, die es gibt. Davon abgesehen lieben es manche Leute, Microsoft zu hassen.

  4. Kosten. Es gibt viele gute Möglichkeiten, Microsoft-Tools kostenlos oder sehr günstig zu erhalten (Express-Editionen und Biz Spark). Die Arbeit mit Microsoft-Tools ist immer noch mit höheren Kosten verbunden. Ich glaube, diese Kosten sind in den meisten Fällen die Produktivitätssteigerungen wert, aber nicht alle sind sich einig.

Darüber hinaus gibt es immer noch die Geschichte, dass Sie aufgrund des Threading-Modells keine langen Abfrageanforderungen auf IIS skalieren können. Dies hat etwas Wahres, aber mit einem guten Code-Design und einigen Server-Optimierungen können Sie diese Probleme meistens umgehen.


6
Ich habe Hanselmans Blogeintrag hanselman.com/blog/… gelesen, dass eine ASP.NET / SignalR-Chat-Anwendung Zehntausende oder Hunderttausende von Kunden bedienen kann, was wirklich erstaunlich ist. Ich habe nicht tiefer gegraben, um zu sehen, wie sie das machen, aber es ist nah dran, wie "skalierbar" Nodejs das können ...
Quan Mai

7
Wenn Sie ASP.NET MVC verwenden, müssen Sie JavaScript, HTML, CSS, C # und Visual Studio kennen. Mit JavaScript auf der Serverseite können Sie es auf JavaScript, HTML, CSS reduzieren.
Daniel Lidström

4
asp.net und .net im Allgemeinen sind eigentlich keine MS-Sache. Schauen Sie sich Sharpdevelop und Monodevelop für IDEs und Mono für eine alternative .net-Laufzeit an. Dies entfernt die Punkte 3 und 4. Ich glaube auch nicht an das Ein-Sprachen-Paradigma. Es ist nicht schwer, mehrere Sprachen zu lernen, wenn Sie nicht gerade erst anfangen. Was 2 betrifft, ist das Erstellen eines .net-Objekts aus JSON wirklich nicht so schwierig. Schauen Sie sich auch SignalR an, um einen langen Ersatz für Abfragen und Kommunikation in Echtzeit zu erhalten
bbqchickenrobot

7
@ Ruffrey Du hast gesagt? asp.net/open-source Sie können SignalR auch mit OWIN selbst hosten.
Timothy Strimple

4
@cbmeeks Verschiedene Tools für verschiedene Jobs. Ich garantiere Ihnen, dass Walmart hinter den Kulissen ein ziemlich ernstes (und teures) Datenbank-Setup hat, aber das hat sie nicht daran gehindert, ihre mobile Website mit Node.js zu optimieren. Sie werden wahrscheinlich feststellen, dass dies für alle großen Unternehmen gilt, die Node.js erfolgreich bereitstellen. Ich bezweifle, dass viele von ihnen etwas in Mongo gespeichert haben.
Timothy Strimple
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.