Intro:
The best way to learn software development in my opinion is to dive in and start building, when learning something new I lean heavily on blogs, udemy, safari books and Youtube. Once I have created a working application I start reading the documentation taking a deeper dive into understanding how and why the application works.
In this article and the ones that follow I will be writing about my journey as a new .NET developer. The purpose of these articles is to better understand how .NET functions and learn how to build secure efficient enterprise applications using .NET Core.
What is .NET Core?
.NET Core is a framework it provides a universal way to build and deploy .NET applications. .NET Core is used to create modular applications that are cross-platform and run consistently across different OS.
What is the Composition of .NET Core?
.NET Core is a Framework composed of tools: It has a command-line interface, compiler, runtime and base libraries. When downloading .NET it is easier to download the .NET SDK you automatically get the runtimes with it.

What is the CLI?
Commad-line interface (CLI) is used to develop, build, run and publish .NET Core applications.
What is the Rosyln Compiler?
The compiler takes source code as input and outputs an executable. I will be taking a deeper dive into the Rosyln compiler in future articles (Stay tuned!! :)).
What is the MSBuild build engine?
It is a file that uses an xml schema to describe and control the application build process. The work of building an application is done with Target and Task elements that are responsible for compiling, packing and publishing code. To keep project files small developers can use SDK identifiers that refer to standard collection of targets and tasks.

What is CoreFX (BCL)?
It is used to provide classes and types that are helpful in performing day to day operations such as string manipulation, I/O operation and much. CoreFX provides access to the Microsoft.* and System.* libraries.

What is CoreCLR (CLR)?
It is used to load, locate and manage .NET objects on behalf of the programmer. The CoreCLR includes a garbage collector, JIT compiler, base .NET data types, and many low-level classes. The CLR handles memory allocation and management. The CLR is also a virtual machine that not only executes apps but also generates and compiles code on-the-fly using a JIT compiler.

Please leave a comment below or give this article a few likes if you found it helpful.
Next Article: Application Execution