Introduction
The following is the definition Microsoft gives for .Net.
.NET is the free, open-source, cross-platform framework for building modern apps and powerful cloud services.
Build. Test. Deploy.
- Open Source means anybody who wants it has access to the entire code base that makes up .Net. If you really wanted to you could download the entire code base and extend it for yourself. Furthermore, anyone can contribute to the .Net project repository. Of course, the changes and additions have to be approved.
- Cross-Platform means you can write, run, and build DotNet programs on multiple platforms, including Windows, Linux, and macOS.
The main idea behind .Net has always been that you can build applications for any type of platform be it web, mobile, desktop, cloud, or even IOT (Internet of Things) just by learning one framework; the .Net Framework of course.
You can read more about the .Net Framework and explore at:
https://dotnet.microsoft.com/en-us
.Net Full Framework
.Net originally came out around 2001. Well, the beta came out in 2001. Version 1 actually came out in 2002. I remember picking up a magazine in a bookstore back in 2000 and reading about a new framework that would be coming out called .Net. The article actually eluded to windows.net. You see Windows 1.0 came out in 1985. And after 16 years of the windows operating system the code and registry were needless to say total spaghetti. And it was time to do a rewrite from the ground up.
As part of this rewrite of Windows to Windows.Net, Microsoft seemed to call the new version of everything .Net. For instance, ADO (Active Data Objects) became ADO.Net and ASP (Active Server Pages) became ASP.Net. (But more on that in the next module.)
Also, if you’ve been a windows user for a long time, you may have noticed at one point Microsoft Word documents had an extension of .doc and Microsoft Excel documents had a file extension of xls. And at some point these file extensions became docx and xlsx. The ‘x’ character at the end meant these were Windows.Net versions of Word and Excel. At the same time old Classic ASP pages with a .asp file extension became .aspx in ASP.Net Web Forms meaning they were .Net versions of ASP. (But again, more on that in the next module.)
The original .Net Framework, now referred to as .Net Full-Framework, went through many iterations over the years starting from version 1.0 in 2002 up through version 4.8.1 in 2022.
In the original .Net Framework, you could only run one version at a time on the operating system of a Windows machine. So when a new version of .Net came out, you would either have to upgrade your applications if you upgraded the server to the new version of .Net or add a new server with a new version of .Net to develop newer applications on.
Microsoft also created a brand new programming language just for .Net called C# or CSharp. And they upgraded the old VBScript language to VB.Net from a scripting language to a full-blown programming language.
.Net Core
In 2015 we run into a serious case of history repeating itself. It had now been 15 years since the rewrite of windows to windows.net and the advent of the .Net framework. While .Net had been embraced by the development community many problems had reared their ugly heads over the years for instance the problem of only one version per machine.
Also, the goal of just one framework for any type of application kind of worked but anytime there was an update or new version of the framework Microsoft tried to make everything backward compatible. So if they updated the system.web dll for web applications they had to make sure it was backward compatible and wouldn’t break older versions of ASP.Net. On top of that they also had to make sure it didn’t break anything for mobile apps or desktop apps. So again, the framework became very bloated. It was time for another rewrite.
Hence, the Net Core Framework.
.Net Core can run different versions side-by-side and offers a smaller footprint for applications. You have to download a separate nuget package for each piece of functionality you need. So no more having to load up some huge gargantuan dll like system.web.dll with a bunch of functionality you may never use. It also offers better performance and enhanced security.
.Net Core came out with version 1 in 2016, version 2 in 2017, and version 3 in 2019.
A Unified .Net Framework
The original .Net Core project had only planned on porting over web related libraries like ASP.Net from .Net Full-Framework. But eventually most libraries for mobile and desktop were ported over as well. And Microsoft made the decision to retire .Net Full-Framework by merging the two together into one single unified framework. No more .Net Core and no more .Net Full-Framework.
The new unified framework would just be called .Net. This is really the .Net Core track though and a lot of us still refer to the latest unified framework as .Net Core to avoid confusion with the older full-framework.
What’s Next
In this module we just took a quick overview of what exactly .Net is so we can fit ASP.Net into better context. In the next module we will start to talk about what this book is really all about; ASP.Net Core.