Is .NET Really Worth It?

The perspective of someone who has just started a career with .NET.

Is this article for you?

This article is for beginners who are just starting with .NET, for those who haven't even started yet, and for anyone who has been working with this technology for years.

Why should I choose .NET to start an IT career?

Let's start with beginners! This question is often asked when you are about to graduate or dive into the IT world for good, however, to answer this question we must separate the answer into some categories. The first topic to cover is productivity, so we ask ourselves, is .NET productive?

It is a fact that .NET helps you develop high-quality applications quickly. Modern language constructs like generics, Language Integrated Query (LINQ), and asynchronous programming make developers more productive. 

Combined with the extensive class libraries, common APIs, multi-language support, and the powerful tools provided by the Visual Studio family, .NET is the most productive framework for developers.

Our second topic to consider is accessibility. Does .NET really work for any application and for any platform? Yes! With .NET, you can develop any type of application on any platform. This means developers can build apps faster and cheaper. 

From mobile apps running on iOS, Android, or Windows to Enterprise server apps running on Windows Server, Linux, or large-scale microservices running in the cloud, .NET is able to offer a solution for you.

The third category is to check if .NET is really trustworthy and secure. The .NET platform is officially supported by Microsoft and trusted by thousands of companies and millions of developers. Microsoft takes security very seriously and releases updates quickly when threats are discovered.

To conclude our series of questions, we asked ourselves “This sounds like a good language to learn, but am I alone on this journey?"

The answer is no! In fact, .NET has a large community available to help you improve. With over 5,000,000 .NET developers worldwide, you can take advantage of .NET’s fantastic ecosystem. .NET is a development platform for modern and innovative open-source that developers love. 

.NET was rated the most beloved framework in the 2019 and 2020 Stack Overflow Developer Survey.

Overall it looks like it's worth starting with .NET, right?

Pros and cons of working with .NET?

We’ve already talked about the advantages and why we should choose .NET to start our career but to be fair, we should also talk about the disadvantages that can be seen in the comparison table below:

IT_.NET_Graphic
The pros and cons list of .NET.

The value of each item was defined particularly by me based on my lived career experience, but as we can see, if we consider what weighs more, the advantages clearly outweigh the disadvantages.

We can briefly summarize the disadvantages and see how unimportant they are by comparing them against the advantages:

  1. Object-Relational Support Issues: There have been concerns regarding the flexibility of this framework with regard to new database designs in that it may not support the emerging ones.
  2. Vendor Lock-In: .NET is Microsoft’s responsibility. Any changes or limitations that the company might impose will inevitably impact projects done under the framework.
  3. Licensing Cost: To work on one’s own projects for learning purposes, there is no need for licenses. However, for large-scale projects, some licenses may be required and this can be expensive for users or companies.
  4. Stability Issues for New Releases: Whenever there are new releases on the Visual Studio platform or new features, it is very easy to come across a bug or issue that is soon reported by the community to Microsoft for troubleshooting. If you want your projects not to be compromised, choosing to use recently introduced functionality is not a good option.
  5. Memory Leaks: .NET applications have a garbage collector, and memory leaks occur all the time. It’s not that the garbage collector has bugs, it’s just that there are ways we can (easily) because memory leaks in a managed language.

Main differences between .NET Framework, .NET Core, and .NET Standard? Which is best for your project?

We should tighten our belts for this topic because more specific technical terms start to appear. For you who are beginners, keep an eye on the article and another on Google to search for any unknown terms. For those of you who already have a little more experience, grab a coffee and enjoy this brief summary I prepared to explain the differences between .NET Framework, .NET Core, and .NET Standard.

The .NET Framework is used to build desktop applications and ASP.NET applications running on IIS (Internet Information Server). It was the first code framework announced around 2002.

.NET Core is a free, open-source, cross-platform implementation of the managed code framework. It supports four types of applications: console, ASP.NET Core, cloud, and Universal Windows Platform (UWP). Windows Forms and Windows Presentation Foundation (WPF) types are not part of the .NET Core.

Unlike the .NET Framework, .NET Core is not considered a Windows component, therefore updates come as NuGet packages, not Windows Update. Since the .NET Core environment is installed as App-Local, and applications are updated through the package manager, applications can be associated with a specific version of .NET Core and updated individually.

Each implementation of the framework has its own collection of Class Libraries (BCL – Base Class Libraries). The Base Class (BCL) contains classes such as exception handling, strings, XML, I/O, network, and collections.

The .NET Standard is a specification for implementing the BCL. Since a .NET implementation needs to follow this pattern, application developers won't have to worry about different versions of BCL for each managed code framework implementation.

.NET Framework Class Libraries (FCL) such as WPF, WCF, and ASP.NET are not part of the BCL, nor are they included in the .NET Standard. The .NET Standard is defined as a single NuGet package, as all .NET implementations are required to support it. Using tools becomes easy because they have a consistent set of APIs to use for any version.

I'm a beginner—What precautions should I take when learning?

Many of you have been in the IT field for many years and have seen a lot of the transitions in development tools and also development philosophies over time. I'm only 2 years into this career, but I did a lot of research before I started programming, and I believe that even the little experience I have can help you.

It's very common for us to feel a bit lost at this moment when trying to start a project for the first time. I can remember that I had no idea what I was doing for my first project. The first thing that helped me in the development of the system was to fully understand the context of the project and organize my ideas so that it all makes sense during development.

Over time, I learned that it’s better to not make exactly what the client is asking. What the client is asking for is the need they have, but not necessarily the best solution. Organizing the project so that the context is clear in your mind is the main factor for success.

Obviously, you do not have full knowledge of what you are doing now, but the important thing is to know what you are looking for—with effort and dedication you can evolve in your projects.

The IT career path is treacherous regardless of whether you have 1 or 30 years under your belt, our profession requires us to be in perpetual learning. You can never be satisfied with the knowledge you have now because from time to time this knowledge becomes outdated. 

Stay focused on your studies—I can guarantee that the reward is more rewarding than the effort put into getting there.

Last but not least, DON'T GIVE UP!

Many of life's failures are people who didn't realize how close they were to success when they gave up."  – Thomas Edison

About the author

autor

Emerson Barros

A .NET Developer who truly wants to share his journey.