I do quite a bit of ASP.NET work (C#, MVC), but most of it is typical web development. I do Restful architecture using CRUD repositories. Most of my clients don't have a lot of advanced requirements within their applications.
I'm now looking at node.js and it's performance implications (I'm addicted to speed), but I haven't delved into it all that much.
I'm wondering if
- node.js can realistically replace my typical web development in C# and ASP.NET MVC (not rewriting existing apps, but when working on new ones)
- node.js can complement an ASP.NET MVC app by adding some async goodness to the existing architecture.
Are there use-cases for/against C# and node.js?
Edit
I love ASP.NET MVC and am super excited with where it's going. Just trying to see if there are special use cases that would favor node.js
Best Answer
Profile, profile, profile. That's the only way to know that your speedups are having the proper affect. You can guess that it's fast enough. But most people like to prematurely optimize. That's worse than playing with yourself during a date.
Are there use-cases for/against C# and node.js?
Sure, if you're in a shop that routinely writes code in C#, then you should use MVC (it's a lot better than WebForms, and is called WebPages). You're going to not lose a lot of time to tooling training, and it's something your workflows should already handle.
What you don't seem to indicate above is the reasons to choose each. You've given two current market options, one still in Alpha stages, the other on its full third year of platform release. I wouldn't want to compare the current testing model electric cars with the Honda hybrids that are already out on the market. They're in two different leagues.
Now, here's a reason for you to stay away from node.js, if you're nominally a C# shop.
You don't currently work in asynchronous evented i/o, you currently work in a procedural format.
That's the antithesis to what nodejs is going to do for you.
However, if you're frequently writing async code in C#, and you use it a lot in an evented style, then yes, node.js is for you to strongly consider.
Here's what you'll give up:
IIS - This is actually important to a lot of people. Things like native A/D integration are already done, and pretty bug-free.Actually node.js now integrates well with IIS.Here's what you'll gain:
So, since I seem to be bashing Node here entirely, let me point out that node is my play language at home, I love it, and I help people debug it sometimes on the stackoverflow chat servers (room 642). I see that it has great and stupendous potential in the future.
I'm just saying, don't throw out the baby and wonder why the bathwater is dirty.
You haven't given a reason why you should give up your years of experience and start on something new. Are either bad tools? Not at all. Both are great and make development a breeze.
Can node replace C#? Yes, quite certainly. So could PHP or Java or Ruby. You're not asking about those.
Here's how you know when you're ready to program node.js instead of C#: