Over the last 10 years I have had the opportunity to work with all kinds of web frameworks, and sometimes it is very hard to choose which one to build on. I’m going to give you very bluntly my opinion of both as it stands today, but the bottom line is it really depends on what you are after.

Starting with NodeJS frameworks is sometimes overwhelming for those new to the Node world. There a ton of web frameworks, each with their own set pros and cons. In particular most of my recent development has been done with SailsJS which is a MVC framework built on top of┬áNodeJS. It claims to be similar to frameworks such as Ruby on Rails. SailsJS was really refreshing to start developing in, and most of the challenges I had in this world were around 3rd party dependencies. I’m going to jump into what I think are the primary Pros/Cons of working with a NodeJS framework.

NodeJS pros:

  • Inexpensive hardware needed to run servers
  • Lots of opensource projects and examples
  • Constantly improving performance with an active community
  • JavaScript based, which allows a common language for frontend and backend development (for web anyway)
  • Very easy to launch an HTTP server
  • Lots of frameworks that make development so much easier (SailsJS being my favorite)
  • No compilation of code, increases developers speed to test new features

NodeJS cons:

  • Require a framework and other 3rd party modules to be fully capable
  • Version dependencies between packages can become problematic
  • Windows support has always felt like a second rate citizen
  • Support for 3rd party modules can be abysmal

My experience with .NET is one of love/hate. At times I feel it works like magic, and everything comes together as a perfect combination of flexibility and capabilities. Other times though I feel like I’m fighting with a framework that was built to slow down development. In my experiences I’ve grown to love C# as a language, and really do appreciate compiler checks. So I’m gonna jump into my Pros/Cons of .NET as a backend.

.NET pros:

  • Has been around a while, and is supported at a lot of major companies
  • Support for C# and other languages that all compile down to libraries that can be used.
  • Awesome WebAPI framework that makes converting JSON to objects super easy
  • Visual Studio (in my opinion) is the best code editor
  • LINQ introduced in .NET 3.5 makes it easier to query data in databases

.NET cons:

  • Server costs are more expensive due to Microsoft Licensing fees
  • Library dependencies can make you lose hair
  • Deployment takes a lot longer, although Visual Studio does try to make it easier
  • Slower development cycle as a whole

I know that a lot of these points are debatable, and I’d love to hear about your own thoughts. For my own projects I tend to go towards SailsJS for the sake of speed, but I have found larger clients definitely prefer .NET primarily because their entire IT most likely runs on a Microsoft stack.

My final verdict is: It depends, there are so many factors to making this decision that need to be looked at, especially the type of project, scale, lifetime, and so on that should be considered. I’m always open to sharing my thoughts just message me on Twitter @adamwlarson or reach out to me through my company Zymo Interactive (www.zymoent.com)