2012-01-30 14 views
84

Da quando conosco Node.js, ne sono sempre stato un fan. Ma oggi ho trovato circa SignalR, che fornisce un modello alternativo asincrono - scalabile - in tempo reale per ASP.NET.Nodejs vs SignalR: perché abbiamo bisogno di javascript lato server?

Per quanto ne so, il vantaggio principale di Node.js su SignalR è la condivisione del codice tra client-server (un altro vantaggio dovrebbe essere che sia multipiattaforma), e il vantaggio principale di SignalR è molto più maturo supporto per framework e strumenti di gran lunga migliori (IDE). Quindi mi chiedo: se SignalR è qui, abbiamo bisogno di Node.js su Windows? Ci sono dei vantaggi di Node.js, non lo so?

+23

Sembra esserci un po 'di confusione qui. Node.js è una piattaforma di sviluppo, mentre SignalR è una libreria per ASP.NET. Un confronto migliore sarebbe node.js + socket.io vs ASP.NET + SignalR. Questa domanda può essere aggiornata per chiarire? – leggetter

+6

Vero e falso, SignalR è una libreria per .NET. – davidfowl

risposta

99

SignalR è un'alternativa valida a Socket.IO e Node.js. Ci sono altri motivi per usare javascript sul server.

  1. Appiattisce la pila. Quasi tutti i siti web in questi giorni devono avere javascript nel browser e, se lo si utilizza anche sul server, è possibile ritagliare una lingua dal batch in cui si dovrà essere esperti.

  2. Messaggio che passa è molto naturale JSON Ovunque! Specialmente combinato con un database di documenti che usa JSON, tutti i messaggi che passano diventano oggetti JSON. Ciò riduce la quantità di intermediazione dei messaggi che deve accadere in tutto il sistema.

  3. Non è Microsoft. Personalmente amo ciò che Microsoft ha fatto per la comunità di sviluppo. Fanno strumenti fantastici e uno dei migliori framework e lingue in circolazione. Detto questo, alcune persone adorano odiare Microsoft.

  4. Costo. Ci sono molti buoni modi per ottenere strumenti Microsoft gratuitamente o molto economici (edizioni Express e Biz Spark). C'è ancora un costo più elevato associato al lavoro con gli strumenti di Microsoft. Credo che questo costo valga i guadagni di produttività nella maggior parte dei casi, ma non tutti sono d'accordo.

In aggiunta a quanto sopra, c'è ancora la storia andando in giro che non si può scalare le richieste di polling lungo su IIS causa il modello di threading. Questo ha un po 'di verità, ma con good code design e alcune modifiche del server, è possibile aggirare questi problemi.

+6

Ho letto il blog di Hanselman http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx che un'applicazione di chat ASP.NET/SignalR può servire decine o centinaia di migliaia di client, il che è davvero sorprendente. Non ho scavato più a fondo per vedere come lo fanno, ma è vicino a come il Nodejs "scalabile" può fare ... – Vimvq1987

+2

Cosa intendi con "_flattens lo stack_"? –

+7

Se si utilizza qualcosa come ASP.NET MVC è necessario conoscere JavaScript, HTML, CSS, C# e Visual Studio. Con JavaScript sul lato server è possibile ridurlo a JavaScript, HTML, CSS. –

Problemi correlati