Vì tôi đã biết về Node.js, tôi luôn là fan của nó. Nhưng hôm nay tôi tìm thấy khoảng SignalR, cung cấp một mô hình thời gian thực không đồng bộ - có thể mở rộng - thay thế cho ASP.NET. Theo như tôi biết, lợi thế chính của Node.js trên SignalR là chia sẻ mã giữa client-server (một ưu điểm khác là nó là đa nền tảng), và ưu điểm chính của SignalR là trưởng thành hơn nhiều và hỗ trợ công cụ tốt hơn (IDE). Vì vậy, tôi tự hỏi: nếu SignalR là ở đây, chúng ta cần Node.js trên Windows nữa? Có lợi thế nào của Node.js mà tôi không biết?Nodejs vs SignalR: tại sao chúng ta cần javascript phía máy chủ?
Trả lời
SignalR là một giải pháp thay thế khả thi cho Socket.IO và Node.js. Có những lý do khác để sử dụng javascript trên máy chủ tuy nhiên.
Nó làm phẳng ngăn xếp. Hầu như bất kỳ trang web nào trong những ngày này đều phải có javascript trên trình duyệt và nếu bạn sử dụng nó trên máy chủ, bạn có thể cắt một ngôn ngữ ra khỏi lô mà bạn sẽ phải thành thạo.
rất tự nhiên. JSON mọi nơi! Đặc biệt là kết hợp với một cơ sở dữ liệu tài liệu sử dụng JSON, tất cả các thông điệp đi qua chỉ trở thành các đối tượng JSON. Điều này làm giảm số lượng thông điệp môi giới đã xảy ra trong toàn bộ hệ thống.
Đó không phải là Microsoft. Cá nhân tôi yêu thích những gì Microsoft đã làm cho cộng đồng phát triển. Họ tạo ra những công cụ tuyệt vời và một trong những khuôn khổ và ngôn ngữ tốt nhất xung quanh. Điều đó đang được nói, một số người chỉ thích ghét Microsoft.
Chi phí. Có rất nhiều cách hay để tải các công cụ của Microsoft miễn phí hoặc rất rẻ (phiên bản Express và Biz Spark). Vẫn còn chi phí cao hơn khi làm việc với các công cụ của Microsoft. Tôi tin rằng chi phí này có giá trị tăng năng suất trong hầu hết các trường hợp, nhưng không phải ai cũng đồng ý.
Ngoài phần trên, vẫn còn câu chuyện xung quanh bạn không thể mở rộng yêu cầu bỏ phiếu dài trên IIS do mô hình luồng. Điều này có một số sự thật với nó, nhưng với good code design, và một số tinh chỉnh máy chủ, bạn chủ yếu có thể nhận được xung quanh những vấn đề này.
Tôi đọc bài blog của Hanselman http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx rằng một ứng dụng trò chuyện ASP.NET/SignalR có thể phục vụ hàng chục hoặc hàng trăm nghìn khách hàng, điều này thực sự tuyệt vời. Tôi đã không tìm hiểu sâu hơn về cách họ làm điều đó, nhưng nó gần gũi với cách mà "Nodej có thể mở rộng" có thể làm ... – Vimvq1987
Ý bạn là "_flattens the stack_" là gì? –
Nếu bạn đang sử dụng một cái gì đó như ASP.NET MVC bạn cần biết JavaScript, HTML, CSS, C# và Visual Studio. Với JavaScript ở phía máy chủ, bạn có thể giảm JavaScript, HTML, CSS. –
- 1. flexbox vs bảng, tại sao chúng ta cần flexbox?
- 2. Tại sao chúng ta cần sợi
- 3. Tại sao chúng ta cần strdup()?
- 4. Tại sao chúng ta cần ng-click?
- 5. Máy chủ bên Javascript: Tại sao?
- 6. Thực hiện phía máy chủ Web Sockets cho NodeJS
- 7. Tại sao chúng ta cần các Dịch vụ Web RESTful?
- 8. Tại sao chúng ta cần giao diện trong Java?
- 9. Tại sao chúng ta cần phương pháp ContinueWith?
- 10. Tại sao chúng ta cần ssh không mật khẩu Hadoop?
- 11. Tại sao chúng ta cần funcall trong Lisp?
- 12. Tại sao chúng ta cần toán tử === đặc biệt này?
- 13. Tại sao chúng ta cần các nhà thầu tĩnh?
- 14. Tại sao chúng ta cần Properties trong C#
- 15. PHP: Tại sao chúng ta cần hàm so sánh chuỗi?
- 16. Tại sao chúng ta cần sử dụng cơ số?
- 17. lý do tại sao chúng ta cần Hadoop cho hypertable
- 18. Tại sao chúng ta cần đặt khoảng trống trước% c?
- 19. Tại sao chúng ta cần toán tử "delete []"?
- 20. Tại sao chúng ta cần một thẻ fieldset?
- 21. Tại sao chúng ta có bao đóng trong JavaScript?
- 22. MVC: tại sao chúng ta cần "điều khiển", hoặc khi nào chúng ta nên sử dụng mẫu này?
- 23. tại sao chúng ta không nên sử dụng ++ trong javascript?
- 24. Bật ghi nhật ký phía máy chủ trong SignalR
- 25. Máy chủ javascript phía máy chủ tốt nhất
- 26. Tại sao chúng ta cần "var self = this" trong các lớp trong Javascript?
- 27. Tại sao chúng ta tái cấu trúc?
- 28. Tại sao chính xác là hiển thị HTML phía máy chủ nhanh hơn phía máy khách?
- 29. Hiển thị HTML + Javascript phía máy chủ
- 30. Tại sao chúng ta sử dụng Response.ClearHeaders()?
Dường như có sự nhầm lẫn nào đó ở đây. Node.js là một nền tảng phát triển trong khi SignalR là một thư viện cho ASP.NET. Một so sánh tốt hơn sẽ là node.js + socket.io vs ASP.NET + SignalR. Câu hỏi này có thể được cập nhật để làm rõ không? – leggetter
Đúng và sai, SignalR là thư viện dành cho .NET. – davidfowl