2012-01-30 9 views
84

Od kiedy wiedziałem o Node.js, zawsze byłem fanem tego. Ale dzisiaj znalazłem około SignalR, który zapewnia alternatywny asynchroniczny - skalowalny - model czasu rzeczywistego dla ASP.NET.Nodejs vs SignalR: dlaczego potrzebujemy javascript po stronie serwera?

O ile mi wiadomo, główną zaletą Node.js w stosunku do SignalR jest dzielenie kodu pomiędzy klientem a serwerem (kolejną zaletą powinno być to, że jest to platforma wieloplatformowa), a główną zaletą SignalR jest znacznie bardziej dojrzały ramy i znacznie lepsze wsparcie narzędziowe (IDE). Zastanawiam się więc: jeśli SignalR jest tutaj, czy potrzebujemy już Node.js w Windowsie? Czy są jakieś zalety Node.js, których nie znam?

+23

Wygląda na to, że istnieje pewne zamieszanie. Node.js jest platformą programistyczną, a SignalR jest biblioteką dla ASP.NET. Lepszym porównaniem będzie node.js + socket.io vs ASP.NET + SignalR. Czy to pytanie powinno zostać zaktualizowane w celu wyjaśnienia? – leggetter

+6

True i false, SignalR jest biblioteką dla .NET. – davidfowl

Odpowiedz

99

SignalR jest realną alternatywą dla Socket.IO i Node.js. Istnieją jednak inne powody, aby używać javascript na serwerze.

  1. Spłaszcza stos. Prawie każda witryna obecnie musi mieć javascript na przeglądarce, a jeśli używasz go również na serwerze, możesz wyciąć jeden język z partii, którą będziesz musiał posiadać.

  2. Wiadomość przechodzi jest bardzo naturalny. JSON wszędzie! Szczególnie w połączeniu z bazą danych dokumentów, która używa JSON, wszystkie przekazywane wiadomości stają się obiektami JSON. Dzięki temu zmniejsza się ilość pośrednictwa w wiadomościach, która musi nastąpić w całym systemie.

  3. To nie jest Microsoft. Osobiście uwielbiam to, co Microsoft zrobił dla społeczności programistów. Tworzą fantastyczne narzędzia i jeden z najlepszych frameworków i języków w okolicy. Mimo to niektórzy ludzie uwielbiają nienawidzić Microsoft.

  4. Koszt. Istnieje wiele dobrych sposobów na uzyskanie narzędzi Microsoft za darmo lub bardzo tanio (Express Edition i Biz Spark). Nadal istnieje wyższy koszt związany z pracą z narzędziami Microsoft. Uważam, że koszt ten jest wart przyrostu wydajności w większości przypadków, ale nie wszyscy się z tym zgadzają.

Oprócz powyższego, nadal istnieje opowiadanie, że nie można przeskalować długich żądań odpytywania w IIS ze względu na model wątków. Ma to trochę prawdy, ale z good code design i niektórymi zmianami serwera, najczęściej można obejść te problemy.

+6

Przeczytałem wpis na blogu Hanselmana http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx, że aplikacja do czatów ASP.NET/SignalR może obsługiwać dziesiątki lub setki tysięcy klientów, co jest naprawdę niesamowite. Nie sięgnąłem głębiej, aby zobaczyć, jak to robią, ale jest blisko tego, jak "skalowalne" Nodejs może zrobić ... – Vimvq1987

+2

Co masz na myśli mówiąc "_flattens the stack_"? –

+7

Jeśli używasz czegoś takiego jak ASP.NET MVC, musisz znać JavaScript, HTML, CSS, C# i Visual Studio. Z JavaScript po stronie serwera możesz zredukować go do JavaScript, HTML, CSS. –

Powiązane problemy