In this article, I will focus on the .NET Core part of the .NET ecosystem. One thing is for sure,
.NET Core is the future of .NET.
The future of .NET Core is very bright and exciting. More people and organizations are getting involved in the development of .NET Core.
What is .NET Core?
Microsoft’s .NET Core is a cross-platform, unified, fast, lightweight, modern, open-source framework for building mobile, Web, and Windows applications and services that can be deployed and run on Windows, Linux and Mac operating systems.
Let’s look at some of the key features of .NET Core.
- .NET Core is open source
- .NET Core is cross platform
- .NET Core is a high-performance scalable platform
- .NET Core supports Docker containers
- .NET Core is designed to support microservices architecture
- .NET Core is developed for future needs
- .NET Core is designed to build high-performance, scalable applications and services
- .NET Core supports seamless Github and NuGet integration
- .NET Core supports command line tools
- .NET Core is designed to target cloud deployment
- .Net Core just keeps getting better.
.NET Core is built on a proven foundation
.NET Core may be a newly rewritten platform but it has a great proven foundation of .NET Framework, its compilers, CLR, and languages. There are about 8 to 10 million .NET developers out there, according to Scott Hanselman (Microsoft) and Joe Spolsky (Stackoverflow), who’ve been using .NET for years now. The .NET Core is being developed based on today’s market need and feedback from many .NET developers.
.NET Core is Built for the Future
.NET Core is a long overdue release to the community. It is a well-thought-out and well-planned framework. It has a foundation of a successful framework, languages, toolset, and several other third-party supports. .NET Core has a foundation of .NET framework and its core languages such as C#, VB.NET, and F#. .NET Core also brings very powerful developer tools including Visual Studio IDE, Visual Studio Team Services, and Visual Studio Code editor.
Xamarin and Mobile Apps
Microsoft acquired Xamarin and now it is probably going to be a part of .NET Core to support Android and iOS development using C# and F# programing languages.
.NET Core is Open Source
The .NET Foundation is an independent organization to foster and grow open development and collaboration around the .NET ecosystem. The .NET Foundation is responsible for new project guidance, IP and legal, marketing and communication, and also may provide financial support to .NET initiatives.
.NET Core is developed for Cloud
Allen O’Neill writes in his article:
.NET Core is first and foremost, MODULAR, MANAGED and CROSS PLATFORM (in the true sense). The platform is clearly built with the cloud in mind, and is initially at least targeting low level/server based systems. In tests recently .Net Core outperformed NodeJS and GO 8x – that’s really interesting and calls for some serous investigation – that kind of performance can both save money for enterprise, and also offer new opportunity for raw speed of processing.
.NET Core and People
The .NET Core thought leaders and influencers come from an open source and community background and Microsoft is fully supportive of that. If you’re a .NET developer, I am sure you’ve heard of Scott Hanselman, who was one of the initiators the open source movement at Microsoft when Microsoft wasn’t open at all.
Miguel de Icaza is another big name behind the .NET Core development. Miguel is known for GNOME, Mono, and Xamarin projects. Last year, when Microsoft acquired Xamarin, Miguel joined Microsoft and is on the board of the .NET Foundation.
.NET Core and Corporations
The .NET Foundation Steering Group helps guide the future of the .NET platform. Microsoft, Redhat, Unity, JetBrains, Samsung, and Google are the members of this group. Expect more companies to join the list.
Where does .NET Core fit in the .NET Ecosystem?
Let’s look at the current architecture of the .NET platform in the following diagram, courtesy of Microsoft.
As you can see from the above diagram, the .NET ecosystem has three major high-level components – .NET Framework, .NET Core, and Xamarin. I personally feel, the Xamarin part should fall under .NET Core and that might just happen in the near future.
The .NET Framework is used to develop Windows applications using WPF and Windows Forms and Web applications using ASP.NET MVC.
.NET Core supports UWP and ASP.NET Core libraries. UWP is used to build Windows 10 targeted apps and ASP.NET Core is used to build Web apps for Windows, Linux, and Mac operating systems.
I understand Microsoft today supports WPF, Windows Forms, and ASP.NET MVC. And I am sure it will continue to do so for a while but I don’t see any major work being done on .NET Framework going forward. It actually doesn’t make sense. If I can build my new ASP.NET Web app using .NET Core, why would I use ASP.NET MVC? It leaves Windows Forms and WPF as a part of .NET Framework. Windows Forms is already a dying library. Going forward, if Windows 10 becomes successful, it leaves us with just UWP and hence, WPF also becomes obsolete.
That leaves me nothing but .NET Core.
Conclusion
If you’re a .NET developer, .NET Core is the future of your development. Your company may not be building .NET Core projects now but you should start looking into .NET Core.