Chuck Conway

In The craft

.NET Vs MEAN: A Rebuttal

November 12, 2014 · 5 minute read

In a recent post on Airpair’s blog by Michael Perrenoud, Michael discusses his reasons for leaving .NET and moving to the MEAN stack. After reading his post, I do not feel he gave .NET a fair shake.  This was my response to  him:

Michael,

I can relate with you on your move to the MEAN Stack. I am also a .NET software engineer with 15 plus years of experience. Like you, I have become concerned with .NET and its eco-system. I started exploring other Stacks. I tried the MEAN stack and found it enticing.

When I read your reasons for leaving .NET, I was disappointed. .NET is not perfect by no stretch of the imagination, but I don’t see it on it’s way out. In fact, C# is the 5th most popular language according to Tiobe software. And in the next version of .NET, Microsoft is simplifying choices by revamping core web technologies, reworking it’s packaging framework and effectively sun-setting some older parts of the framework. If anything .NET might be just starting an upswing.

To give .NET a fair shake, I provide counterpoints to your 4 points:

In your first point it is stated: **“The stack is heavily server-side dependent.” **This could be true for just about every technology stack: Ruby on Rails, Java, .NET and NodeJS. Yes, I said NodeJS. You can just as easily render html on the server and send it to the client en masse from NodeJS. This point seems to be more of a comparison between Single Page Applications (AngularJS, EmberJs) and Server-Side HTML than a specific technology stack.

In your second point it is stated: The server-side technology is very heavy and relies on an even clunkier web server for its exposure. Even the lightest server-side technology, ASP.NET Web API, is still heavier than NodeJS.” Internet Information Server (IIS), Microsoft’s web server provides many out of the box features. At first it might seem overwhelming, but like some of the best technologies you have to get past the learning curve.

Web API is a lightweight API framework that sits on top of the .NET framework. NodeJs a server-side javascript engine, that allows you to write high performing javascript outside of the browser… I don’t know how you can compare the two.

In your third point it is stated: “The market has grown weary of the high cost of entry due to licensing fees. To get into Visual Studio Ultimate (necessary for any very large projects) you need to invest $13K; that’s insane!” I’ve never been on a project that NEEDED Visual Studio Ultimate. There is a free version of Visual Studio called Visual Studio Express that is fine for most smaller projects.

Your post does not mentioned what the $13,000 gets you: It gets you Visual Studio Ultimate Edition, arguably the most powerful IDE, it also gets you access to MSDN, which includes licenses to virtually all of Microsoft’s products, including a generous amount of hours per month on Microsoft’s cloud platform, Azure.

Microsoft is a for profit company. It’s their business. Just like you are a software engineer, you charge for your time. They charge for their software.

In your fourth and final point it is stated: The typical .NET stack is not homogeneous in nature. The data alone, and the transitions it must go through from database engine, to data model, to view model, to JSON, and back again tells the tale. It doesn’t matter how much syntactic sugar you wrap it in. It doesn’t matter how many frameworks. The stack is not homogeneous.” This seems to be more of an argument between statically typed languages and dynamically typed languages. You could just as well be talking about Java rather than .NET. While you don’t explicitly call it out, I can’t help but feel there is a hint of comparison between Relational and NoSql databases.

All the transitions (which are really separations of concerns (SOC)) you mention serve a purpose. The same transitions exist when using the MEAN Stack. It’s just they are handled differently in Javascript and in MongoDB. Switching to the MEAN stack won’t cause these transitions (SOC) to go away.

“They will be in demand for a long time; like COBOL developers. Believe me, you don’t “just rewrite” 4 decades of COBOL; the same holds true for the .NET stack. However, I did draw a conclusion that the .NET stack is on its way out.”

Youch! Really man? That’s just harsh! .Net and the MEAN Stack both have a large following and have delivered great software. Each has advantages and drawbacks. In my humble opinion the technology stack is a person choice and an academic discussion. Delivering successful inspiring software is what’s important.