Leveraging the Power of .NET Core
.NET Core is a new Microsoft platform which is modular, cross-platform, open source and has a better enabled support for the cloud. It differentiates from .NET with its most current version 4.6, which has been in the industry for quite some time, is pretty mature and time-tested. Many line of business applications have been built on .NET 4.6 and are running successfully.
What’s in .NET Core which was missing in .NET 4.6?
The biggest advantage of .NET Core over 4.6 is that .NET 4.6 was a Windows-only runtime environment. There was no way to execute .NET 4.6 applications beyond Microsoft Windows platforms, whereas .NET Core can run across platforms on Linux, and Macintosh as well in addition to Windows, of course.
In addition, the Windows-only platform version of .NET 4.6 was always monolithic, meaning it was sitting as an entire framework on your machine. .NET Core is a modular library collection, which means it will go in small pieces or whatever you want. You create only those libraries and it go with your app. So you do not have to have it installed on your machine, instead it is per application.
Now the question is, why is it called ".NET Core"? Microsoft’s vision, of .NET platform, evolved for the past 15 years. The first beta of Microsoft .NET was released in July 2002 and since then .NET has gone through various versions. Many technology enthusiasts and influencers always wanted .NET to go above and beyond, and many of them advocated that .NET should be open-sourced. It also has to be of level to other platforms rather than just running and supporting Microsoft Windows. And hence, Microsoft made a choice to go in that direction and they wanted to open Microsoft .NET for the community.
.NET Core became open-sourced and they also made it available for Linux and Macintosh, in addition to the currently and widely supported Microsoft Windows platform. Now, to accomplish this large goal or vision, it was necessary to have a fork in the road. Means, there was a new, fresh need to have a brand new version of .NET framework or platform framework. And that’s why they chose to call it .NET Core.
When Microsoft started talking about .NET Core, they actually began with the idea of .NET Core 5.0. The very reason behind that was because the latest version of .NET was .NET 4.6, hence they chose to call it 5.0. But this approach can give the idea that this is just a next version of what we currently have.
However, that was not the reality. The reality is that .NET Core is a completely different thing. Hence, numbering has to be restarted. And so the new version of .NET Core is now .NET Core 1.0. It’s brand new concept.
The .NET Ecosystem
In .NET, we have ASP .NET 4.6 and the next version became ASP .NET Core 1.0, which was initially known as ASP .NET 5. Similarly to .NET Framework 4.6, was running only on Windows while .NET Core 1.0 is able to run on Macintosh, Linux and Windows. Both frameworks will continue to have their own CLR and their own base class library or framework class libraries. In .NET it was always known as .NET BCL or .NET FCL or .NET CLR. .NET CLR is .NET common language runtime. .NET BCL stands for .NET base class library, while FCL, which was framework class library, means the entire collection ofnamespaces, classes , and binaries.
Many of these things have been changed or modified because .NET Core is a subset of .NET 4.6 and hence .NET Core has a smaller footprint. In .NET Core, CLR is known as Core CLR and framework library is known as Core FX which is the .NET Core’s version of framework class library.
It’s important to note that in .NET Core, CLR and framework class libraries are much more compact and customized than they used to be in .NET 4.6. Regardless of whether you wanted those class libraries or not, they were served, which is why you had a very big chunk of .NET framework installed machine-wide. With .NET Core, Microsoft wants to give you only what you need or what your application is based upon so all the extra features and extra libraries which can hinder the performance are minimized.
.NET Core obviously supports Windows client 7-10 on x64 and x86 platforms. Windows servers are also supported on x64 and x86 platforms. Linux, Ubuntu, Linux Mint and Mac OS are currently supported only for 64 bits, and are not yet supported on x86. However Microsoft is working to support x86 for all of those platforms as well. Windows client and Windows server platforms are also fully supporting 32 bits and 64 bits.
The Future of .NET
It certainly seems like .NET Core is the future, it’s the new direction and vision. Things change, over the period of years, companies’ vision and industries’ expectation change. 15 years ago, not many people knew what an open-source could be, Microsoft was not interested in running code across the platforms. But these changes often take place over the period of time.
Mindset and thinking change, technology and needs evolve, people become more broad-minded. Microsoft is opening its arms for all the platforms across the technologies to accept and adapt other members and candidate technologies and this applies to.NET.
However, it’s highly improbable that .NET 4.6 is going to be an end or there will be no support or the community will completely dry up. Many developers have chosen to stay on .NET 4.6 and some will want to go on .NET Core. It’s your choice as both should be viable for years to come.