The .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 the C#, F#, Visual Basic .NET, and the C++/CLI (as of .NET Core version 3.1) languages. 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, no-copy patterns using structs, and resource governance for containers.
- High performance with hardware intrinsics, tiered compilations, and Span<T>.
- Consistent across all supported platforms.
- Command-line tools included.
- Can be included in your app 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 the longest time, the .NET Framework was the de-facto option for .NET development.
Simply put, developers used the .NET Framework to develop Windows desktop and server-based applications (including ASP.NET web applications). When Xamarin and Mono were created, it became possible to then create .NET projects on Linux and mobile devices. When Microsoft took notice of the possibilities from this project, they developed .NET Core.
.NET Core has two major components: A small runtime, built from the same codebase as the .NET Framework Command Language Runtime (CLR), and the necessary base class libraries (which are, for the most part, the same code as the .NET Framework class libraries).
.NET Core came about for one simple reason—to create a version of .NET that could run on non-Windows machines. In order for this to be well adopted, both the runtime and the entire Framework Class Library had to be ported. To make matters even more complicated, a compiler for the most commonly-used languages had to be created.
…and then came the NuGet Package Manager
So Microsoft created .NET Core. With the runtime and the libraries taken care of, 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, because it allows developers to create, share, and use code bundled into packages, which contain compiled code (distributed as DLLs) and all other pieces necessary for a given project.
NuGet also serves as a centralized repository, hosting over 100,00 unique packages on nuget.org. Using NuGet and nuget.org, millions of .NET Core developers are able to employ these packages and even host a private repository in the cloud, on your LAN, or local file system.
The 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 package management in Visual Studio projects, a user interface for package management in macOS, and a tool for the creation and restoring of packages used through the MSBuild toolchain.
One other bonus with .NET Core is that it enables developers to work with the framework without having to pay for a Windows license. By adopting Linux or macOS as your development platform, you’re good to go.
What is .NET Core used for?
As mentioned earlier, .NET Core is used for the development of .NET apps on platforms that aren’t just Windows. A good example is within the realm of the United States insurance industry. One goal of that particular business sector is to get disbursements out as quickly as possible. That means deploying a service that encompasses mobile, desktop, laptop, and server applications.
Prior to frameworks like .NET, a company would have to hire developers for:
- Windows
- macOS
- Android
- iOS
- Server
Most often that required five different developers (or teams of developers). With the advent of .NET Core, a single developer (or single team) can develop apps for each ecosystem. Not only does this save time, it saves money. And when something breaks, it’s easier to troubleshoot on every platform, 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 when compared to .NET Framework, such as:
- AS of release 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, which makes it easier to deploy .NET Core apps in containers.
- .NET Core is highly scalable.
- All .NET Core versions play well together.
- C# is one of the most versatile of all the programming languages.
But how do you know if you should opt for .NET Core (over .NET Framework)? Simple. .NET Core is what you want if:
- You want to develop cross-platform applications.
- You’re not afraid of a shallow learning curve.
- You need faster, more scalable applications.
- You require apps deployed as containers.
Is .NET Core mature enough for everyday use?
As with any relatively new programming language, maturity can be an issue. But seeing as how .NET Core is a spin-off of the older .NET Framework, it enjoyed a certain level of maturity out of the gate. And considering C# is often cited as one of the most beloved programming languages, it should be clear that not only does .NET Core’s present look bright, but its future is almost assured.
And many large businesses are currently using .NET Core. Included in this list are the likes of Facebook, Twitter, Discovery, Channel, Bento, Zaplabs, Sotheby’s, Gyant, Horoscope.com, Coldwell Banker, Alibaba Travel, Ncoresoft, iChoosr, Adaptive Financial Consulting, Cubic Telecom, and Nopcommerce.com
If .NET Core is mature enough for those companies, you can be sure it is for yours. So if you’re interested in migrating your current or future projects to .NET Core, reach out to us and we’ll discuss what it’ll take to deploy a .NET Core team for your business.
If you enjoyed this, check out one of our other .NET articles.