After all the confusion of branding and versions that ensued when Microsoft announced the launch of ASP.NET vNext, today we will talk about .NET Core, an Open Source .NET framework, written from scratch, including a subset of the full .NET Framework and which main features are its modular design and its cross-platform functionality.
Let's start with Microsoft's definition
.NET Core is a general purpose, modular, cross-platform and open source implementation of the .NET Platform. It can be used in device, cloud and embedded/IoT scenarios.
NET Core is released through NuGet in smaller assembly packages. Rather than one large assembly that contains most of the core functionality, .NET Core is made available as smaller feature-centric packages. The modular design allows us to optimize our app to include just the NuGet packages we need, making it "lighter" than the classical framework. The benefits of a smaller app surface area include tighter security, reduced servicing, improved performance, and decreased costs in a pay-for-what-you-use model.
At the same time, .NET Core provides key functionality to implement the app features you need and reuse this code regardless of our platform target. It currently supports three main operating systems (OS): Windows, Linux and macOS. We can write apps and libraries that run unmodified across supported operating systems.
Now well, nowadays we are facing a total reboot: all new frameworks based on .NET Core infrastructure have been built from scratch keeping in mind concepts that did not even exist when they began to gestate the original versions of .NET or ASP.NET: cloud, high performance, scalability, APIs, multiple devices and platforms, microservices, etc. And developed using good practices that were not the usual before: modularity, modularity, abstractions based on interfaces, unit testing.
So, to understand what .NET Core means to the industry, we should understand Microsoft's strategy first.
Since few years ago, Microsoft is showing signs that in the future .NET Framework, .NET Core and now Xamarin (the commercial version of Mono driven by the company of the same name which was acquired by Microsoft), will be important products that will continue to evolve as different platforms and all this appears to continue with the trend that has seen Microsoft pushing its applications (such as Office) onto all significant platforms rather than trying to keep them on Windows to protect its operating system.
Yeah, when Microsoft launched .NET Core, we started a new era in which the dream of developing or running .NET apps on any platform is a reality. Unthinkable scenarios, such as developing from Mac to Linux, or develop applications in Windows thinking on other platforms, are now possible, and this clearly reflects a strategy.
.NET Core makes sense in a cross-platform world and makes it fairly easy for Windows developers to take their existing C# code and after some modifications compile it into other platforms. Adding these technologies to its development tool catalogue the company is saying that it is happy to help developers develop for any mobile platform, as long as they use Microsoft development tools, and that’s why developers need to pay attention to.
In future posts we will continue to deepen on .NET Core, anyway you can learn more about the different components and get engaged, by visiting GitHub repos.
About Alejandro Frigerio
Alejandro Frigerio is a Software Engineer with more than 10 years of experience developing .NET applications across multiple platforms for multinational companies.
Nowdays Alejandro works at the Engineering department of TISA, looking for implementing the latest technologies and frameworks to be used in actual and future projects.
Beyond his technical knowledge and passion for the technology Alejandro is a great brewmaster and amateur rock guitar player.