C#, introduction, general
0.
1. Terminology
C# (pronounced as "C sharp") is an object-oriented programming language created by Microsoft
.NET framework is a collection of libraries to extend the Common Language Runtime(CLR) and make the system development easier. We could see the framework as the combination of the CLR and the set of libraries since it is all distributed as a unit.
.NET Framework is a virtual machine, a JIT compiler, an object memory system consisting of a memory allocator and a garbage collector, a loader, a linker, and a runtime system, commonly called CLR, which executes and supports a language called Microsoft Intermediate Language(MSIL). It is also a class library called the Base Class Library (BCL) containing fundamental data structures (strings, arrays, linked lists, hash dictionaries, …) and abstractions thereof (lists, dictionaries, …) as well as other fundamental types (tasks, functions, abstractions for equality) and algorithms. It also comes with a wider range of libraries called the Framework Class Library (FCL) which has support for developing desktop applications (e.g. WinForms and WPF), data manipulation (LINQ) and lots of other things.
ASP.NET is the portion of the .NET library used for making web sites and is strictly Window-only. It is also deeply tied to Internet Information Server(IIS). The framework must be installed at the target.
ASP.NET core
.NET Core is designed to be highly portable, and Microsoft itself develops, releases, maintains and supports fully equal ports (with fully equal support, fully equal functionality and simultaneous releases) for Windows, macOS, and Linux on AMD64, x86, and ARM.
.NET Core is an open-source, cross-platform implementation of .NET.
.NET Standard is a common API specification for a common subset of APIs across .NET Framework
Visual Studio is an Integrated Development Environment (IDE) that enables us to edit, debug, build, and run our code smoothly and easily.
The Common Language Runtime(CLR) is a runtime engine (a smart one) that provides some very neat features like Just-In-Time compiling, Garbage Collection, and others.
The process of executing .NET applications is different than other languages, like C/C++, Java. .Net code does not get transformed directly into native code, instead, it gets transformed into some kind of a middle layer language named Intermediate Language(IL), then when we run our application, the CLR(specifically the JIT part of the CLR), compiles this IL into an native code in order to be executed. This middle layer is providing a whole deal of flexibility and portability.
2..Net core installation
See this for installation https://docs.microsoft.com/en-us/dotnet/core/install/sdk?pivots=os-linux
3..Net core CLI
3. Hello World
// myApp/Program.cs
namespace myApp
{
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Hello World!");
}
}
}
3.
.NET Framework | CLR | C# | Visual Studioo |
1.0 | 1.0 | 1.0 | 2002 |
1.1 | 1.1 | 1.2 | 2003 |
2.0 | 2.0 | 2.0 | 2005 |
3.0 | 2.0 | 2.0 | 200 + extendedsion |
3.5 | 2.0 | 3.0 | 2008 |
4.0 | 4.0 | 4.0 | 2010 |
4.5 | 4.0 | 5.0 | 2012 |
4.5.1 | 4.0 | 5.0 | 2013 |
4.6 | 4.0 | 6 | 2015 |
4.7 | 4.0 | 7 | 2017 |
.NET Core Version | Release date | Support level |
1.0 | June 27, 2016 | LTS |
1.1 | Nov 16, 2016 | LTS |
2.0 | Aug 14, 2017 | Current |