Saya sekarang melihat node.js dan ini implikasi kinerja (saya kecanduan kecepatan), tapi saya belum menggali terlalu banyak.
Profil, profil, profil. Itulah satu-satunya cara untuk mengetahui bahwa speedup Anda memiliki pengaruh yang tepat. Anda dapat menebak bahwa itu cukup cepat. Tetapi kebanyakan orang suka mengoptimalkan secara prematur. Itu lebih buruk daripada bermain dengan dirimu sendiri selama kencan.
Saya bertanya-tanya apakah node.js dapat sepenuhnya menggantikan pengembangan web tipikal saya di C # dan ASP.NET MVC, apakah lebih baik sebagai pelengkap C # dan ASP.NET MVC, atau jika ada beberapa hal yang harus "tinggalkan dengan cukup baik saja ".
Apakah ada use case untuk / terhadap C # dan node.js?
Tentu, jika Anda berada di toko yang secara rutin menulis kode dalam C #, maka Anda harus menggunakan MVC (ini jauh lebih baik daripada WebForms, dan disebut WebPages). Anda tidak akan kehilangan banyak waktu untuk pelatihan perkakas, dan itu adalah sesuatu yang harus ditangani oleh alur kerja Anda.
Apa yang tampaknya tidak Anda sebutkan di atas adalah alasan untuk memilih masing-masing. Anda telah memberikan dua opsi pasar saat ini, satu masih dalam tahap Alpha, yang lain pada tahun ketiga penuh dari rilis platform. Saya tidak ingin membandingkan model pengujian mobil listrik saat ini dengan hibrida Honda yang sudah ada di pasaran. Mereka berada di dua liga yang berbeda.
Sekarang, inilah alasan bagi Anda untuk menjauh dari node.js, jika secara nominal Anda adalah toko C #.
Saat ini Anda tidak bekerja di i / o yang tidak sinkron, saat ini Anda bekerja dalam format prosedural.
Itulah kebalikan dari apa yang akan dilakukan simpul untuk Anda.
Namun, jika Anda sering menulis kode async dalam C #, dan Anda sering menggunakannya dalam gaya yang ditunjukkan, maka ya, node.js sangat penting untuk Anda pertimbangkan.
Inilah yang Anda akan menyerah:
IIS - Ini sebenarnya penting bagi banyak orang. Hal-hal seperti integrasi A / D asli sudah dilakukan, dan cukup bebas bug. Sebenarnya node.js sekarang terintegrasi dengan baik dengan IIS.
- Tempor cukur silet - Jika Anda telah melakukan C # MVC serius, maka Anda menggunakan dan mencintai Razor dan seberapa cepat Anda bisa mengocok semuanya. Ada template serupa di node, dan saya tentu saja tidak mengetuk node, tetapi seluruh toolchain sudah ada di C #, dan banyak dari itu saat ini sedang dibangun di dunia node. NB: banyak alat ini sekarang agak matang _
- compile-time building dlls - node.js umumnya dikompilasi dengan cepat, artinya, tidak semua jalur diperiksa saat startup. Sangat mungkin untuk memiliki kode yang benar-benar buruk di simpul yang tidak pernah disentuh, diperiksa, atau diuji oleh siapa pun.
- Semua alat saat ini dibangun ke dalam VS yang Anda gunakan setiap hari - Hanya ada tidak banyak dukungan VS untuk javascript. Sebagian karena semuanya dalam javascript sangat dinamis. NB: Microsoft jelas bekerja pada dukungan tooling untuk javascript _
Inilah yang akan Anda dapatkan:
- semua yang Anda kembangkan akan menggunakan bahasa yang sama, dengan asumsi Anda melakukan scripting sisi klien dan juga sisi server. (atau mengapa Anda bahkan mempertimbangkan javascript di server)
Jadi, karena saya tampaknya membenturkan Node di sini sepenuhnya, izinkan saya menunjukkan bahwa simpul adalah bahasa bermain saya di rumah, saya menyukainya, dan saya membantu orang-orang men-debug-nya kadang-kadang di server obrolan stackoverflow (kamar 642). Saya melihat bahwa ia memiliki potensi besar dan menakjubkan di masa depan.
Saya hanya mengatakan, jangan membuang bayi itu dan bertanya-tanya mengapa air mandinya kotor.
Anda belum memberikan alasan mengapa Anda harus melepaskan pengalaman bertahun-tahun dan memulai sesuatu yang baru. Apakah alat yang buruk? Tidak semuanya. Keduanya hebat dan membuat pengembangan mudah.
Bisakah simpul mengganti C #? Ya, tentu saja. Begitu juga PHP atau Java atau Ruby. Anda tidak bertanya tentang itu.
Inilah cara Anda tahu kapan Anda siap memprogram node.js alih-alih C #:
- Anda sedang mempertimbangkan untuk menulis buku untuk membantu orang lain "mendapatkan javascript" alih-alih program lama yang membosankan yang telah mereka tulis sebelumnya dalam C # dan lain-lain
- Anda punya masalah dengan sinkron (pemblokiran) I / O menghentikan aplikasi Anda dari melakukan pekerjaan yang sebenarnya.
- Anda tidak menggunakan perpustakaan APA PUN di C # selain dari MVC default dan itu hanya untuk routing, dan Anda cukup yakin bahwa Anda dapat melakukan mesin routing yang lebih baik, dan Anda mengkodekan segala sesuatu yang sedekat mungkin dengan logam.
- Setiap objek data yang Anda desain Anda lihat sebagai hash bukan objek yang sangat diketik.