about the author

Name: Ivan Loire

GitHub: iloire

Twitter: ivanloire

Location: Sydney (Australia)

from the author

Moving from Microsoft .NET to node.js

by Ivan Loire on Wednesday, September 28, 2011

I have been a Microsoft.NET programmer for a long time. Not that I love the way Microsoft was handling things as a company, but I like the way I can handcraft software on the .NET platform, and make the most of OOP, component orientation, design patterns, ORM and so..

I have been doing desktop and web applications for a while, and the .NET platform gave me a good IDE and a powerful framework to develop applications in a fast and efficient manner. Also enjoyed the way web development on the .NET platform has evolved from ASP.NET WebForms to ASP.NET MVC. Please, don't say that developing web applications in ASP.NET is painful if you haven't tried ASP.NET MVC.

Life was good.. and then node.js came along...

Starting with node.js

4 months ago, I was invited to join a startup company focused in developing a high performance social platform. They had already created a basic REST service functionality (using node.js), and native mobile applications (iOS and Android), and they needed the web version.

Basically, they needed the work to be done in two months (for a potential audience of 2 million users).. in a technology I had never touched before.. it sounded like the kind of challenge I would never turn down!

I joined a high skilled team, led by @gimenete, who had been playing with node.js and redis for a while (link in spanish), and started to work on my MacBook, a couple of iTerms consoles, a text editor (TextMate) and a web browser.... (quite a change from being used to working with a 2GB IDE - aka Visual Studio).

With the help of @gimenete I quickly stepped over the learning curve of Javascript. Asynchronous, event driven programming was fun!

These are my thoughts about node.js, compared to .NET ASP.NET MVC:

node.js PROS:

node.js CONS:

So is it that important that my web site renders in 0.050 seconds instead of 0.100 seconds?

Well, think about it. There are a few reasons why you may be interested in using the most efficient web server available:

Ok, ok, enough.. are you going to show me the code? - sure! stay tunned for the next blog entry, I will talk about some of the challenges we face, how visitors perceived speed when interacting with our app using mobile or web, how do we handle deploys and sys admin tasks and more..!

Are you going to keep using ASP.NET MVC then?

Yes, I will. Node.js is very cool and fast, but I don't picture myself using it for every single web application. If you know what you are doing, you can create decent and efficient applications on top of the .NET stack (Ask stackoverflow) by fine tuning ASP.NET cache amongst other things.

I know that all the following points can be debated and none of them by itself can be taken as decision trigger, but as a rule of thumb, I think I will use ASP.NET MVC / SQL Server as stack:

I will use node.js (probably with a NoSQL database):

View the discussion thread.blog comments powered byDisqus