.Net Core is a platform which is independent, modular and open source version of .Net framework. It is a complete re-write of .Net Framework with new CLR, Base Class Libraries for developing cross platform and cloud optimized applications. It is a modular framework meaning developers can include only required packages to build their applications. All the packages are delivered via Nuget package manager.
.Net Framework vs .Net Core
- Applications developed on .Net Framework can run only on Windows OS while .Net Core applications can run on multiple Operating Systems like Mac and multiple flavors of Linux.
- Applications developed using .Net Core run faster since .Net Core is a modular framework.
- Just like Full .Net Framework, .Net Core is also fully supported by Microsoft.
- But unlike full .Net Framework, .Net Core is granularly packaged and they are available as Nuget packages.
Open Source Framework : .Net core is open source framework maintained by Microsoft and available on Git Hub under MIT and Apache 2 Licenses. It is .Net Foundation project.
Cross Platform : .NET Core runs on Windows, macOS, and Linux operating systems. There is different runtime for each operating system that executes the code and generates the same output.
Consistent across Architectures : Execute the code with the same behaviour in different instruction set architectures, including x64, x86, and ARM.
Wide-range of Applications: Various types of applications can be developed and run on .NET Core platform such as mobile, desktop, web, cloud, IoT, machine learning, microservices, game, etc.
Supports Multiple Languages: You can use C#, F#, and Visual Basic programming languages to develop .NET Core applications. You can use your favourite IDE, including Visual Studio 2017/2019, Visual Studio Code, Sublime Text, Vim, etc.
Modular Architecture: .NET Core supports modular architecture approach using NuGet packages. There are different NuGet packages for various features that can be added to the .NET Core project as needed. Even the .NET Core library is provided as a NuGet package. The NuGet package for the default .NET Core application model is Microsoft.NetCore.App.
This way, it reduces the memory footprint, speeds up the performance and easy to maintain.
Flexible Deployment: .NET Core application can be deployed user-wide or system-wide or with Docker containers.
Roslyn
Roslyn is an open source platform, developed by Microsoft, containing compilers and code analysis APIs for C# and Visual Basic.
Traditionally compilers have been a black box for application developers. With increasing complexity and demands for source code analysis in modern integrated development environments, however, compilers need to expose application programming interfaces (APIs) that will help developers to directly perform phases of compilation such as lexical and syntactic structure analysis of source code. Roslyn was designed with that intent from the beginning. This reduces the barrier in developing tools specifically designed for source code analysis.
APIs of Roslyn are of three types:
- Feature APIs
- Work-space APIs
- Compiler APIs
Feature APIs allow source code tool developers to do code refactoring and fixes.
Work-space APIs allow plugin developers to perform actions specifically required in integrated development environments (IDEs) like Visual Studio such as finding references of a variable or code formatting.
Compiler APIs allow even more sophisticated analysis of source code, by exposing direct calls to perform syntax tree and binding flow analysis. Using an open-source implementation of Common Language Infrastructure (CLI) such as .NET Core, Roslyn will be able to compile in a platform-agnostic manner capable of running CLI code in Linux, OS X, and Windows.
—- Deepak Kumar
To be continued…