What is .NET Core?
.NET Core is a subset of .Net framework but modular, cross-platform, open source for building more comprehensive software that can be used over a numerous platforms. Being cross-platform, gives advantage to asp.net software development companies to develop all .net applications on Windows, Mac and Linux. It comprises of several components such as managed compilers, base class libraries, the runtime and different application models. The .NET Core doesn’t depend directly on base libraries as a dependency but rather they are distributed in NuGet packages which can be accessed on any platform. The goal of .NET Core is to have a single code base that can be used to build and support all the platforms including Windows, Linux and Mac OSX.
Features of .NET Core
Cross-Platform: Any application built using .NET Core can run across different platforms like Mac, Windows and Linux. The best choice for software development companies to develop cross-platform software, web apps, or websites with Visual Studio Code for various platforms like Windows, Mac and Linux.
Open source: .Net Core project is available on Github as an open source Project to be accessed for versatile and more transparent development. The active community serves as a powerful support for the development of .NET Core build applications.
Modular: Instead of the libraries in dll to be available for dependencies, it is available in different small modules as NuGet. For specific feature requirement, one does not require including the whole core assembly as dll but can directly import the small module from the NuGet.
Native Development Environment: Microsoft has introduced very lightweight and cross-platform development tool which is available for Windows, Linux and Mac called Visual Studio Code. It has Intellisense for better development and help you in every step during code writing. Inbuilt debugger makes it more powerful. The most important part of the Visual Studio Code is availability of various extensions. Several extensions are available for the development as per your need. It has support for npm and bower as well.
Developer Productivity: Microsoft has packaged their own lightweight web server called Kestrel. It has many uses, from development to cross-platform compatibility and help run the website on Mac OS and Linux environment. The process of compiling the project before viewing it on the browser has been eliminated in this server.
Comparison with .NET Framework
|Features||.Net Core||.Net Framework|
|Platform||Available on Linux, Mac and Windows||Available only on Windows Only|
|Project Source||Open Source available on Github||Closed Source, Maintained privately by Microsoft|
|Development Environment||Visual studio Code and command line Interface which is very lightweight||Visual Studio, Visual Web Developer for web application|
|Portability||Upgrade different application side by side||Have to update the all the application|
|Compiler||Just in Time Compiler||RyuJIT, Improved JIT Compiler|
|Web Apps Supports||Yes||Yes|
|Universal Windows Platform apps||Yes||Yes|
|Windows Presentation Foundation||No||Yes|
|Update||Update from NuGet Package separately||Comes with Microsoft windows update|
Comparison with Mono
|Subset of .NET Framework rewritten for cross-platform compatibility||Implementation of .NET Framework for Linux|
|Modular architecture||Integrated architecture|
|Develops various range of applications||Mostly develop mostly Mobile based application|
|Supports WPF||Does not WPF support|
|Supports many language available on NuGet||Supports only C# for development|
|Does not support WPF or Windows Form||Supports WPF and windows forms|
|Supported by Microsoft||Supported by Xamarin|
Advantage over other technologies
- It works on file system which allows faster development cycle. It detects changes, compiles in memory and load the application.
- Project based configuration and setting, for example, you have 2 different projects which need different versions of the framework under the same server, unlike in Java which shares a common framework to work on application.
- It uses completely new lightweight and modular HTTP request pipeline.
- It uses JSON over XML for configuration settings because it is very lightweight and faster. For example, json and Project.json.
- It is designed to work with various client-side frameworks including AngularJS, KnockoutJS and Bootstrap.
- A very lightweight and new development environment for easy development on all three major platforms Windows, Linux and Mac.
- Supported by Microsoft all way with an active community on Github along with the .NET Core project.
Microsoft has taken first step towards cross-platform development that has inherent properties of .NET framework. This platform has potential to revolutionize the development of cross-platform applications for asp.net development companies.
As it is new, so there is a shortage of tutorials and documentation but with time it will develop as .NET framework has developed in previous decade.