Ever hosted a dinner party with a room full of picky eaters?
Janice can’t eat gluten; Tom is allergic to shellfish and Wendy? She’s a vegan and can’t have any animal products within two plates of her own. It’s a nightmare to get them all to play together nicely and accommodate them so the dinner party goes smoothly.
It’s a lot like managing .NET ecosystem and all the different iterations of the framework and operating system that have popped up over the years, only with a lot less washing up.
So, what do fussy eaters have to do with .NET? I promise it’ll make sense soon.
In the beginning, there was only the .NET framework. Think of this as your spaghetti and meatballs. It was not only extremely popular and beloved by the people, but roused a fierce loyalty in those who enjoyed it.
But our coeliac friends winced at the sight of all the pasta, so, sensing an opportunity, Microsoft expanded its Windows-only .NET Framework across to other platforms. They brought another iteration called .NET Core into their already tangled web of all the different .NET Framework. Think of .NET Core as thick, chicken soup.
But pretty quickly it became obvious, just like .NET framework and .NET Core, the two camps were incompatible and didn’t want each other’s meals.
Not only that, but now our vegan friend is invited and we have to find a way to make everyone get along. There had to be a way to unify both the Windows specific and cross-platform camps – so after going back to the drawing board, Microsoft came up with .NET Standard – the pumpkin and pecan salad.
This framework essentially bridges the gap between Windows and other operating systems. For example, if you want to run .NET Framework 4.5 with .NET Core 2.1, the project should be targeted to .NET Standard 1.1 – exactly the same way this delicious salad can be enjoyed by fans of any meal.
As of late last year, there’s one version that rules them all – plain old .NET, a common set of application programming interfaces that can be run on Windows, MacOS, iOS, Linux, Android, anything.
This is your bottle of wine.
1 – What Is It:
The original .NET Framework was introduced back in 2000, as a way to build Windows applications and web browsers using a range of different programming languages like C#, Visual Studio, F# and others. As it was the first managed framework released by Microsoft, who enjoyed the lion’s share of the market at the time, .NET was immediately adopted across the IT industry and still has revised versions released now over 20 years later.
.NET Core was released in 2016, born from a need for cross-platform development and a more flexible framework. Microsoft had to essentially write .NET Core from scratch – a full re-design of the .NET specs that essentially performed the same tasks, just on a different operating system or systems.
The only problem was that because they were based on completely different architecture, the Windows native .NET and .NET Core were not compatible at all – so .NET Standard was
Introduced later that year in 2016 as a set of application programming interfaces (APIs) and libraries that could be used on all platforms, whether .NET or .NET Core.
This was a messy stopgap solution at best, and recently in November 2020 .NET 5 was released – a new version of the framework that truly unifies .NET without the need for different iterations and architecture. The all-new .NET 5 is made up of common sets of APIs that can be run on all operating systems.
2 – What It’s Used For:
The .NET Framework was revolutionary, as the code itself served as an intermediate language that was stored in .dll and .exe files and could effectively communicate with multiple other programming languages. Likewise, it featured a common language runtime (CLR) environment that handled everything to do with an application’s execution on the system.
This CLR used a process called Just in Time (JIT) compilation that translated language specific code, into intermediate code that could then be further converted into the machine code native to the computer environment the application is running on.
This was all run using a C# Base Class Library (BCL) that, like its name implies, provided the foundational types and utility functionality to all other .NET class libraries. The aim here was to support general implementations of code without any bias to any workload.
For most apps, the BCL is a Common Language Library (CLI) that takes care of things like basic file access, collections, custom attributes, formatting, security, string manipulation, and a whole other host of system processes. From here, a more specific Framework Class Library (FCL) makes the developer’s lives that much easier as even though they’re based on C#, FCL elements can be used by any CLR supported programming languages.
It’s the FCL that contains the classes needed to build all kinds of applications whether they be desktop, web based, mobile phone, or used on the Xbox gaming console.
.NET Core performs all these tasks, except it can do it on a wider range of operating systems – without the backwards compatibility issues of its heritage. The framework itself is based on a more modular architecture, separated into core components that allow the developer to select additional cores from the NuGet repository – hence the name. Think a compartmentalized, simpler version of the .NET Framework.
With the flop of .NET Standard, the new .NET 5 is the future for the framework, bringing a smile to the dev’s faces as theoretically an application needs to be written once and once only before it can be used across virtually any system.
3 – PROS:
The development model Object-Oriented Programming Module (OOP) is what drives .NET, and works by breaking down software into smaller, easier to manage chunks. All data is compartmentalized into data fields that use the declaration of classes to describe an object’s behavior.
Translation? The code is not only more manageable, but testing is easier meaning a faster response to bugs, errors and issues. Not only that, a fair bit of necessary programming is eliminated so once again, happy devs, which translates to savings on both time and cost.
.NET has a feature called Visual Studio, which is an integrated development environment Microsoft has developed to make writing and testing software that much easier – especially for Android and iOS. A whole bunch of editor extensions cover everything from continuous integration, to cloud development and third-party connectivity.
Not much more to say here, allowing the code to run on any operating system is a no brainer – C# life baby!=
We live in a world where time equals money, so any framework with a fully modular design with common dependencies means that deployment is as easy as copying over a folder. Not only that, you can still have multiple versions of .NET 5, .NET Framework, and .NET Core running side by side on the same system to make the transition process that much smoother.
StackOverFlow, the leading internet resource for programmers, developers and coders, is itself built on .NET – managing over 5.3 million views per day running off just 9 servers. Talk about endorsing high performance.
Visual Studio is something that’s preferred by many front-end developers because it’s not a costly optional extra, is constantly updated, and for the most part does everything you want it to do.
4 – CONS:
Not Object Relational:
Just as OOP is a great way to manage data based on objects, it’s not so great at taking care of the logic side of things. For data-oriented development, the Unity Framework acts like a conduit between .NET and the Structured Query Language (SQL) of the database itself.
Outwardly it seems like there’s no problem here, except Unity is relatively inflexible, and in some cases, doesn’t support some database designs.
Unlike the open-source .NET Core, .NET 5 is a framework solely controlled by Microsoft, and is not community driven – meaning the implementation of any quality-of-life improvements or changes are decisions only Microsoft can make.
Despite packing a garbage collector, .NET 5 still suffers from memory leakage problems – meaning a software engineer has to be on hand to oversee resource management.
Despite supporting the .NET Framework, .NET Core, and .NET Standard, a transition over to the all-new .NET 5 is still a bit of a minefield. Expect some bumps in the road as it won’t be smooth sailing – at least until we see a 5.1 that takes care of a few niggling compatibility issues.
5 – Which Companies Are Using It:
As we mentioned before, it speaks volumes for .NET 5’s utility that an unbiased website like StackOverFlow is using it. On top of that, a slew of high-profile companies have jumped on board and made the transition to this new, and all-encompassing .NET 5. GE, UPS, The Academy of Motion Pictures Arts and Sciences, Alaska Airlines, Asgard Systems, Allscripts, and HCL just to name a few.
It’s important to note that the new and improved framework has been out only 6 months, is yet to receive its first major update, and is already being adopted by plenty of companies across a wide range of industries.
Overall, the new .NET 5 is a lot of bang-for-your-buck. If you’re looking for software than can scale with a growing business, then .NET 5 provides a stable environment that can accommodate both scaling, and also the redesign of applications to reflect the changing needs of that business.
That being said, being backed by Microsoft means that there is plenty of support for larger enterprises in the form of an expansive toolkit and cross platform compatibility. The ability to integrate applications for both internal and external use, as well as between computers and mobile devices, is a definite advantage in the modern business world.
Future of .Net and Current Salaries
Despite the update and overhaul of .NET 5, there is yet to be specifically advertised roles that explicitly ask for experience in .NET 5 itself. This is expected to change in the coming year, as more companies adopt the new architecture and framework.
If you’ve had any experience in any of the previous iterations of .NET, then it’s probably a good idea to upskill and get across .NET 5, how it works, how it’s different from its predecessors, and what new features it brings to the table.
The average base salary for a .NET Developer in the United States is $94,500, with Nashville, New York, and Houston topping the charts with average salaries of $115,000, $107,000, and $103,500 respectively.
We hope this article helped you learn more about .Net and why you should give it a try!
Learning about different frameworks? Check out our blogs on Why CircleCI is Best for Continuous Integration and Delivery or 5 Reasons why D3js is the Best Framework for Data Visualization.