Các trường hợp sử dụng cho node.js và c #


10

Tôi làm khá nhiều công việc ASP.NET (C #, MVC), nhưng hầu hết trong số đó là phát triển web điển hình. Tôi làm kiến ​​trúc Restful bằng cách sử dụng kho CRUD. Hầu hết các khách hàng của tôi không có nhiều yêu cầu nâng cao trong các ứng dụng của họ.

Bây giờ tôi đang xem xét node.js và nó có ý nghĩa về hiệu suất (tôi nghiện tốc độ), nhưng tôi chưa hiểu sâu về nó lắm.

Tôi đang tự hỏi nếu

  • node.js thực tế có thể thay thế sự phát triển web điển hình của tôi trong C # và ASP.NET MVC (không viết lại các ứng dụng hiện có, nhưng khi làm việc trên các ứng dụng mới)
  • node.js có thể bổ sung cho một ứng dụng ASP.NET MVC bằng cách thêm một số tính tốt không đồng bộ vào kiến ​​trúc hiện có.

Có trường hợp sử dụng cho / chống lại C # và node.js không?

Biên tập

Tôi yêu ASP.NET MVC và cực kỳ phấn khích với nơi nó sẽ đến. Chỉ cần thử xem có trường hợp sử dụng đặc biệt nào có lợi cho


Vâng, tôi nhận ra đây có thể là một cuộc trò chuyện lớn hơn khi bao gồm cả Ruby hoặc PHP, nhưng đối với câu hỏi cụ thể này, tôi không quan tâm đến một trong số ... đó chỉ là tôi.
Đuổi theo Florell

Câu trả lời là, hãy thử nút. Đọc lên về nó. Xem bạn có thích nó không.
Raynos

Câu trả lời:


11

Bây giờ tôi đang xem xét node.js và nó có ý nghĩa về hiệu suất (tôi nghiện tốc độ), nhưng tôi chưa hiểu sâu về nó lắm.

Hồ sơ, hồ sơ, hồ sơ. Đó là cách duy nhất để biết rằng việc tăng tốc của bạn đang có ảnh hưởng thích hợp. Bạn có thể đoán rằng nó đủ nhanh. Nhưng hầu hết mọi người thích tối ưu hóa sớm. Điều đó tệ hơn là chơi với chính mình trong một cuộc hẹn hò.

Tôi tự hỏi liệu node.js có thể thay thế hoàn toàn sự phát triển web điển hình của tôi trong C # và ASP.NET MVC hay không, liệu nó có tốt hơn khi bổ sung cho C # và ASP.NET MVC hay không, nếu có một số thứ chỉ nên "để yên một mình ".

Có trường hợp sử dụng cho / chống lại C # và node.js không?

Chắc chắn, nếu bạn đang ở trong một cửa hàng thường xuyên viết mã bằng C #, thì bạn nên sử dụng MVC (nó tốt hơn rất nhiều so với WebForms và được gọi là WebPages). Bạn sẽ không mất nhiều thời gian cho công cụ đào tạo, và đó là điều mà quy trình công việc của bạn nên xử lý.

Những gì bạn dường như không chỉ ra ở trên là lý do để chọn từng. Bạn đã đưa ra hai tùy chọn thị trường hiện tại, một vẫn ở giai đoạn Alpha, một là vào năm thứ ba phát hành nền tảng đầy đủ. Tôi sẽ không muốn so sánh các mẫu xe điện thử nghiệm hiện tại với các mẫu xe hybrid của Honda đã có mặt trên thị trường. Họ ở hai giải đấu khác nhau.

Bây giờ, đây là một lý do để bạn tránh xa node.js, nếu bạn trên danh nghĩa là một cửa hàng C #.

Bạn hiện không làm việc trong i / o sự kiện không đồng bộ, bạn hiện đang làm việc ở định dạng thủ tục.

Đó là phản đề cho những gì nodejs sẽ làm cho bạn.

Tuy nhiên, nếu bạn thường xuyên viết mã async bằng C # và bạn sử dụng nó rất nhiều theo kiểu sự kiện, thì có, node.js là để bạn cân nhắc mạnh mẽ.

Đây là những gì bạn sẽ từ bỏ:

  • IIS - Điều này thực sự quan trọng đối với nhiều người. Những thứ như tích hợp A / D bản địa đã được thực hiện và không có lỗi. Trên thực tế, node.js tích hợp tốt với IIS.
  • Tạo khuôn mẫu bằng dao cạo - Nếu bạn đã thực hiện bất kỳ C # MVC nghiêm túc nào, thì bạn đang sử dụng và yêu thích Dao cạo và bạn có thể tạo ra mọi thứ nhanh như thế nào. Có các mẫu tương tự trong nút và tôi chắc chắn không gõ nút, nhưng toàn bộ chuỗi công cụ đã có trong C # và rất nhiều mẫu hiện đang được xây dựng trong thế giới nút. NB: rất nhiều công cụ này bây giờ khá trưởng thành _
  • xây dựng thời gian biên dịch của dlls - node.js thường được biên dịch nhanh chóng, nghĩa là không phải tất cả các đường dẫn đều được kiểm tra khi khởi động. Hoàn toàn có thể có mã thực sự xấu trong nút mà không ai từng chạm, kiểm tra hoặc kiểm tra.
  • Tất cả các công cụ hiện được tích hợp vào VS mà bạn sử dụng hàng ngày - Không có nhiều hỗ trợ VS cho javascript. Một phần vì mọi thứ trong javascript rất năng động. Lưu ý: Microsoft rõ ràng đang làm việc về hỗ trợ công cụ cho javascript _

Đây là những gì bạn sẽ đạt được:

  • tất cả mọi thứ bạn phát triển sẽ có cùng ngôn ngữ, giả sử bạn thực hiện kịch bản phía máy khách cũng như máy chủ. (hoặc tại sao bạn thậm chí sẽ xem xét javascript trên máy chủ)

Vì vậy, vì tôi dường như hoàn toàn làm hỏng Node ở đây, hãy để tôi chỉ ra rằng nút đó là ngôn ngữ chơi của tôi ở nhà, tôi yêu nó và đôi khi tôi giúp mọi người gỡ lỗi nó trên các máy chủ trò chuyện stackoverflow (phòng 642). Tôi thấy rằng nó có tiềm năng lớn và tuyệt vời trong tương lai.

Tôi chỉ nói, đừng vứt đứa bé ra và tự hỏi tại sao nước tắm lại bẩn.

Bạn đã không đưa ra một lý do tại sao bạn nên từ bỏ nhiều năm kinh nghiệm của mình và bắt đầu một cái gì đó mới. Là công cụ xấu? Không có gì. Cả hai đều tuyệt vời và làm cho sự phát triển một cách dễ dàng.

Nút có thể thay thế C #? Vâng, khá chắc chắn. PHP hoặc Java hoặc Ruby cũng vậy. Bạn không hỏi về những điều đó.

Đây là cách bạn biết khi bạn sẵn sàng lập trình node.js thay vì C #:

  • Bạn đang xem xét viết một cuốn sách để giúp người khác "lấy javascript" thay vì các chương trình cũ nhàm chán mà họ đã viết trước đó trong C # và v.v.
  • Bạn đã gặp sự cố với I / O đồng bộ (chặn) khiến ứng dụng của bạn không hoạt động thực sự.
  • Bạn không sử dụng bất kỳ thư viện nào trong C # ngoài MVC mặc định và chỉ để định tuyến và bạn khá chắc chắn rằng mình có thể làm một công cụ định tuyến tốt hơn và bạn đang mã hóa mọi thứ gần với kim loại nhất có thể.
  • Mỗi đối tượng dữ liệu bạn thiết kế bạn xem là một hàm băm thay vì một đối tượng được gõ mạnh.

1
Lời khuyên của tôi, hãy viết ba hoặc bốn trang web phức tạp trong node.js. Bắt đầu nhỏ, sau đó lớn hơn.
jcolebrand

1
Tôi không học cao đẳng / đại học. Tôi đã phát triển solo được khoảng 8 năm và đang làm khá tốt cho bản thân mình. Tôi có thể tự kiếm $$$ tốt hơn dưới một công ty khác.
Đuổi theo Florell

2
C # không biên dịch thời gian kiểm tra tất cả các đường dẫn mã. Nó sẽ không ném cho đến khi dữ liệu xấu thổi nó lên. Node sẽ không dừng việc xây dựng chỉ vì mã xấu. Hoặc tôi đang sử dụng một phiên bản cũ và điều đó đã thay đổi.
jcolebrand

1
@Raynos: Dao cạo không phải là một dự án nguồn mở của bên thứ ba, nó là công cụ xem chính thức được phát triển bởi Microsoft cho ASP.NET MVC 3
Carson63000

1
Tại thời điểm viết bài này, Node.js không được IIS hỗ trợ, tuy nhiên bây giờ nó đã được.
jcolebrand

5

Nếu bạn chỉ làm kiến trúc yên tĩnh sử dụng kho CRUD không có lý do chính đáng để cổng một ứng dụng hiện có để node.js.

Nếu bạn viết một ứng dụng mới làm REST và CRUD, có thể có lý do chính đáng để sử dụng node.js ngay từ đầu.

Nó thực sự phụ thuộc vào mỗi ứng dụng.

Ví dụ, cá nhân tôi sẽ viết các ứng dụng REST / CRUD đầy đủ trong tệp node.js vì đó là tùy chọn cá nhân. Node là tuyệt vời để phát triển, ASP.NET MVC là một khung hạn chế gây phiền nhiễu cho tôi.

Phán quyết: Cả hai công cụ đều hoàn thành công việc. Nếu không có yêu cầu cụ thể có lợi cho .NET hoặc nút thì hãy sử dụng bất cứ thứ gì bạn muốn. tức là sở thích cá nhân.

Tuy nhiên tôi có thể liệt kê một số lợi ích obvouis của cả hai nền tảng

ASP.NET

  • Tích hợp Windows / .NET. Nếu bạn muốn ngăn xếp microsoft của bạn được liên kết chặt chẽ và tích hợp cao thì bạn muốn .NET
  • lực lượng lao động có sẵn
  • Các khung đơn sắc giữ tay bạn
  • Có một bộ các tính năng hoạt động ra khỏi hộp. Nếu bạn hài lòng với các tính năng này, nó sẽ cải thiện năng suất. Nếu bạn muốn các tính năng tùy chỉnh thay vì cuối cùng bạn sẽ chiến đấu chống lại công cụ và giảm năng suất.

Node.js

  • Ngôn ngữ duy nhất cho toàn bộ ngăn xếp web của bạn (nếu bạn sử dụng cơ sở dữ liệu noQuery sử dụng js cho "truy vấn" của họ như couch / mongo).
  • Tuyệt vời cho các ứng dụng web thời gian thực mềm bằng các công cụ như socket.io
  • Tuyệt vời cho keo mạng khi tất cả các máy chủ của bạn làm là nói chuyện với n điểm cuối từ xa của nhiều loại khác nhau.
  • Chỉ cung cấp cho bạn các tính năng tối thiểu trần ra khỏi hộp. Điều này có nghĩa là bạn có thể xây dựng ứng dụng của mình theo cách tùy biến cao mà bạn muốn.
  • Bộ sưu tập các công cụ kiểu unix nhỏ làm một việc và một điều dễ dàng để trộn và kết hợp
  • npm : quản lý gói được thực hiện đúng
  • cộng đồng nguồn mở phong phú

Có, không tìm đến các ứng dụng hiện có. Suy nghĩ về các ứng dụng sẽ đến trong tương lai.
Đuổi theo Florell

5
@Raynos nên thêm từ chối trách nhiệm rằng anh ta là người truyền bá Node.js và không bao giờ xây dựng trang web dựa trên MVC3 / 4. (Tôi nghĩ điều này phản ánh trong câu trả lời).
Matt Esch
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.