Nodejs vs SignalR: pourquoi avons-nous besoin de javascript côté serveur?

90

Depuis que je connais Node.js, j'en ai toujours été fan. Mais aujourd'hui, j'ai découvert SignalR , qui fournit un modèle en temps réel asynchrone - évolutif - alternatif pour ASP.NET.

Autant que je sache, le principal avantage de Node.js par rapport à SignalR est le partage de code entre client-serveur (un autre avantage devrait être qu'il est multiplateforme), et le principal avantage de SignalR est un cadre beaucoup plus mature et bien meilleur support de l'outil (IDE). Alors je me demande: si SignalR est là, avons-nous besoin de Node.js sous Windows? Y a-t-il des avantages de Node.js que je ne connais pas?

Quan Mai
la source
27
Il semble y avoir une certaine confusion ici. Node.js est une plate-forme de développement tandis que SignalR est une bibliothèque pour ASP.NET. Une meilleure comparaison serait node.js + socket.io vs ASP.NET + SignalR. Cette question pourrait-elle être mise à jour pour clarifier?
leggetter
6
Vrai et faux, SignalR est une bibliothèque pour .NET.
davidfowl

Réponses:

107

SignalR est une alternative viable à Socket.IO et Node.js. Il existe cependant d'autres raisons d'utiliser javascript sur le serveur.

  1. Cela aplatit la pile. De nos jours, presque tous les sites Web doivent avoir javascript sur le navigateur, et si vous l'utilisez également sur le serveur, vous pouvez supprimer une langue du lot dans laquelle vous devrez maîtriser.

  2. La transmission de messages est très naturelle. JSON partout! Particulièrement combiné avec une base de données de documents qui utilise JSON, tout message passant devient juste des objets JSON. Cela réduit la quantité de courtage de messages qui doit se produire dans tout le système.

  3. Ce n'est pas Microsoft. J'aime personnellement ce que Microsoft a fait pour la communauté des développeurs. Ils créent des outils fantastiques et l'un des meilleurs frameworks et langages disponibles. Cela étant dit, certaines personnes adorent détester Microsoft.

  4. Coût. Il existe de nombreuses bonnes façons d'obtenir des outils Microsoft gratuitement ou à très bas prix (éditions Express et Biz Spark). Il y a toujours un coût plus élevé associé à l'utilisation des outils Microsoft. Je pense que ce coût vaut les gains de productivité dans la plupart des cas, mais tout le monde n'est pas d'accord.

En plus de ce qui précède, il existe toujours une histoire selon laquelle vous ne pouvez pas mettre à l'échelle de longues demandes d'interrogation sur IIS en raison du modèle de thread. Cela a une part de vérité, mais avec une bonne conception de code et quelques ajustements de serveur, vous pouvez principalement contourner ces problèmes.

Timothy Strimple
la source
6
J'ai lu l'entrée de blog de Hanselman hanselman.com/blog/ ... qu'une application de chat ASP.NET/SignalR peut servir des dizaines ou des centaines de milliers de clients, ce qui est vraiment incroyable. Je n'ai pas creusé plus profondément pour voir comment ils font cela, mais c'est proche de la façon dont les Nodejs "évolutifs" peuvent faire ...
Quan Mai
7
Si vous utilisez quelque chose comme ASP.NET MVC, vous devez connaître JavaScript, HTML, CSS, C # et Visual Studio. Avec JavaScript côté serveur, vous pouvez le réduire en JavaScript, HTML, CSS.
Daniel Lidström le
4
asp.net et .net en général ne sont pas seulement une chose MS. Découvrez sharpdevelop et monodevelop pour les IDE et mono pour un autre runtime .net. Cela supprime les points 3 et 4. De plus, je ne crois pas au paradigme d'une langue. Il n'est pas difficile d'apprendre plusieurs langues à moins que vous ne soyez débutant. Quant à 2, créer un objet .net à partir de JSON n'est vraiment pas si difficile. Consultez également SignalR pour un long sondage et un remplacement de la communication en temps réel
bbqchickenrobot
7
@ruffrey Vous disiez? asp.net/open-source Vous pouvez également héberger automatiquement SignalR en utilisant OWIN.
Timothy Strimple
4
@cbmeeks Différents outils pour différents emplois. Je vous garantis que Walmart a une configuration de base de données assez sérieuse (et coûteuse) dans les coulisses, mais cela ne les a pas empêchés d'optimiser leur site Web mobile avec Node.js. Vous constaterez probablement que c'est vrai pour toutes les grandes entreprises qui déploient avec succès Node.js. Je doute que beaucoup d'entre eux aient quelque chose de stocké à Mongo.
Timothy Strimple