I have come across the expression Javascript Fatigue more times than I can remember. And I do little to no Javascript development. It is commonly used to refer to how hard it is for Javascript developers to keep up with the changes in this ecosystem and the ever-growing list of frameworks or libraries that promise to be the next big thing in web development. And what about the .NET developers? Is our life any easier?🤔
As a .NET developer, we have probably read old software written using .NET, that has not been upgraded in more than 5 or 10 years, which is very scary for newcomers. So, what happens? The new wave of developers is not attracted to the idea of doing things the old-fashioned way (you know, millennials). They would, for example, prefer using a different ecosystem for the software they’re building. And what about the developers with more years of experience? They have probably stagnated in that one .NET version that the company they are working for decided to use many years ago. Which is sad 😔
This all contributes to a BIG confusion around the .NET ecosystem. This confusion is severe, and I have seen it these last couple of years after interviewing dozens of candidates for .NET positions.
It all starts with this question: what is .NET? I’ve heard a ton of answers for this:
- .NET is a framework based on Microsoft technologies…
- .NET is a programming language…
- .NET is a runtime in which you can run C# and Visual Basic code…
- .NET is a set of technologies that includes .NET Framework, Core, Xamarin,etc)…
- .NET is… I don’t know, it is hard to describe…
I used to be one of the .NET is a framework-type of developers. I know… tragic 🤦♂️. But that’s the reason I started considering it so important to share this knowledge with you in the first place.
Considering that Microsoft has historically not been the best at naming their products, it is safe to say that .NET has also been a victim of this. They are trying to fix this, and it’s our duty as gatekeepers of the .NET world to share it with the world.
According to their website: “.NET is a free, cross-platform, open-source developer platform for building many different types of applications.”
Platform? What does platform even mean? Some of the results I found after googling:
- “A raised level surface on which people or things can stand” … Uhm, no.
- “The declared policy of a political party or group”… what?
- “A standard for the hardware of a computer system, which determines what kinds of software it can run” … Well, this makes sense.
Ok, we got a winner 🙌. After reading the docs, I found some additional enlightenment. Apparently, when we’re talking about .NET, we’re referring to the tools that developers have access to, in order to develop .NET apps: runtime, API, language capabilities, etc.
Take into account that .NET also has many possible implementations:
- .NET 5 (and .NET Core): Cross-platform, newest way to do things
- .NET Framework: Original NET Implementation, windows-specific
- Mono / Xamarin: Used when small runtime is required. Supports Unity engine.
- UWP: Windows applications and IoT
Actually, you can read more about these terms here.
Since 2019, after .NET Core 3.0 was released, it was finally announced that .NET Core was going to be renamed to .NET. This is the reason we’re talking now about .NET 5, 6, and 7. From now on, we’re expecting new .NET releases every year, with .NET 6 coming now on November 2021.
Why did they skip .NET 4? Well, Microsoft is finally doing a good thing with the naming and decided it would be a good idea, in order to avoid confusion with .NET Framework 4.x. Yay!
Are we supposed to re-learn .NET every time a new version is released? Well, this is up to each developer. You can decide to keep up-to-date or stay with what has worked with you in the past. This is not even close to the trauma Javascript developers have gone through with the different versions of Angular and React, or even with any of the newer frameworks that keep popping up every week.
Now with the importance of being open-source and multiplatform, the modern .NET ecosystem has proved to be reliable and relevant to today’s standards. What else do you need for your technology of choice?
The .NET Confusion is real, but it is soon to come to an end, thanks to Microsoft and the community’s efforts. The best strategy we can have as .NET devs is to start promoting this technology and contributing to its growth! 💪💪💪