Learn about .NET Core, a cross-platform open source framework for building modern apps. Explore its features, scalability and flexibility.
.NET Core is an open-source software framework created by Microsoft for Windows, Linux, and macOS. This framework, announced on November 12, 2014, and first released on June 27, 2016, is the successor to the .NET Framework.
.NET Core supports C#, F#, Visual Basic .NET, and C++/CLI (starting with .NET Core version 3.1). There are .NET Core installers available for Windows and macOS as well as Linux Packages and Docker Containers . You can also install via Source Code and install scripts .
.NET Core includes the following features:
- Implements modern development paradigms such as asynchronous programming, copyless patterns using frameworks, and resource governance for containers.
- High performance with hardware intrinsics, layered compilations and Span
. - Consistent across all supported platforms.
- Command line tools included.
- It can be included in your application or installed side by side.
- Can be used in conjunction with container deployments.
What is the difference between .NET and .NET Core?
This is an important question because, for a long time, the .NET Framework was the de facto option for .NET.
Simply put, developers used the .NET Framework to develop desktop and server-based Windows applications (including ASP.NET Web applications). When Xamarin and Mono were created, it became possible to create .NET projects on Linux and mobile devices. When Microsoft realized the possibilities of this project, it developed .NET Core.
.NET Core has two main components: a small runtime, built from the same command language runtime (CLR) code base as the .NET Framework, and the necessary base class libraries (which are, for the most part, , the same code as the .NET Framework).
.NET Core came about for a simple reason: to create a version of .NET that could run on non-Windows machines. For this to be well adopted, both the runtime and the entire Framework Class Library had to be ported. To complicate things even further, it was necessary to create a compiler for the most used languages.
…and then came NuGet Package Manager
Then Microsoft created .NET Core. With the runtime and libraries out of the way, Microsoft added the NuGet package manager to deploy the runtime, framework libraries, and all third-party packages. NuGet is an essential tool for modern application development, as it allows developers to create, share, and use code bundled into packages, which contain compiled code (distributed as DLLs) and all the other pieces needed for a given project.
NuGet also serves as a centralized repository, hosting over 100,000 unique packages at nuget.org . Using NuGet and nuget.org millions of .NET Core developers are able to deploy these packages and even host a private repository in the cloud, on their LAN, or on their local file system.
NuGet tools include a command-line tool for .NET Core (dotnet CLI), a command-line tool for .NET Framework, PowerShell commands, a user interface for managing packages in Visual Studio projects, a user interface for package management on macOS and a tool for creating and restoring packages used through the MSBuild toolchain.
Another bonus of .NET Core is that it allows developers to work with the framework without having to pay for a Windows license. Once you adopt Linux or macOS as your development platform, you are good to go.
What is .NET Core used for?
As mentioned earlier, .NET Core is used for developing .NET applications on platforms other than just Windows. A good example is in the United States insurance sector. One of the objectives of this specific business sector is to make disbursements as quickly as possible. This means deploying a service that spans mobile, desktop, laptop and server applications.
Before frameworks like .NET, a company would have to hire developers to:
- windows
- MacOS
- Android
- iOS
- Server
Most of the time, this required five different developers (or teams of developers). With the advent of .NET Core, a single developer (or a single team) can develop applications for each ecosystem. This not only saves time but also money. And when something fails, it's easier to troubleshoot across platforms because they all share the same code and libraries.
What are the advantages of .NET Core?
There are a number of advantages of .NET Core compared to .NET Framework, such as:
- Starting with version 3.0, .NET Core supports WPF and Windows Forms.
- Visual Studio Code (one of the best IDEs for .NET CORE) is now available for Windows, Linux and macOS.
- Microservices architecture is supported.
- .NET Core is modular, lightweight, and flexible, making it easy to deploy .NET Core applications in containers.
- .NET Core is highly scalable.
- All versions of .NET Core work well together.
- C# is one of the most versatile of all programming languages.
But how do you know if you should opt for .NET Core (instead of the .NET Framework)? Simple. .NET Core is what you want if:
- You want to develop cross-platform applications.
- You are not afraid of a shallow learning curve.
- You need faster, more scalable applications.
- You need applications deployed as containers.
Is .NET Core mature enough for everyday use?
As with any relatively new programming language, maturity can be an issue. But since .NET Core is a spin-off of the old .NET Framework, it enjoyed a certain level of maturity from the beginning. And considering that C# is often cited as one of the most beloved programming languages it should be clear that .NET Core's present not only looks bright, but its future is all but assured.
And many large companies are currently using .NET Core. Included in this list are Facebook, Twitter, Discovery, Channel, Bento, Zaplabs, Sotheby's, Gyant, Horóscopo.com Coldwell Banker, Alibaba Travel, Ncoresoft, iChoosr, Adaptive Financial Consulting, Cubic Telecom and Nopcommerce.com
If .NET Core is mature enough for these companies, you can be sure it will be for yours. So if you're interested in migrating your current or future projects to .NET Core, contact us and we'll discuss what it will take to deploy a .NET Core team for your business.
If you liked this, check out one of our other articles on .NET.
- How .NET Development Services Can Benefit Your Next Project
- Why use the .NET platform? Key benefits for 5 industries
- The Pros and Cons of .NET Development
- What is Xamarin and why you might need it
- When to look for .NET development services