N2N: .NET 2 Node
2012-06-03

Well, it’s been quite a while since I’ve blogged about…well…anything, and I figured it’s about time I get off my lazy butt and do something with my spare time on weekends. What better option than to see what all the hype is about Node? I had to do it sooner or later.

As any newbie would do, they go to Google and type “nodejs tutorial”. The Node Beginner Book came up first, so I went with that. It was an excellent tutorial. Prior to this I also skimmed through the book JavaScript, The Good Parts, so I had a basic understanding of the language syntax.

One of the first oddities I noticed, was that NodeJS seems to have a convention of comma-first. You notice this immediately because most examples start with require(‘module’), and if they require more than one module, the second line is prefixed with a comma (as opposed to the more traditional comma at the end of the line). I apparently missed the discussion by 2 years! It was still interesting nonetheless.

As someone with a strong .NET background, I definitely experienced all the usual ‘gotchas’:

  • == vs ===
  • falsey values
  • variable hoisting

Once you understand all of these things, Javascript isn’t so bad. Oh, and of course understanding closures will get you a long way in being effective with Javascript, because that’s what you need to use to do proper scoping. If C# didn’t have lambdas and closures it would have been a much longer journey to “get it”.

Not too longer after, I deployed my first Heroku app running on NodeJS.

Anyways, enough with the prologue…I won’t bore you with anymore beginner/tutorial stuff.

Let’s get on with what I plan on doing over a multi-part blog series. When I build something on my own time, I can’t build something just for the hell of it to learn something….that’s not enough. If I build something it has to be useful – something that I (or someone else) will find valuable.

I won’t reveal what it is yet, but it’s going to involve Node/MongoDB on the backend, with Backbone on the front-end. Should be fun :-)