andersch.dev

<2022-05-04 Wed>

C#

C# is a a managed, object-oriented programming language that is part of the .NET ecosystem. It is heavily inspired by Java.

.NET

.NET describes the Ecosystem that includes languages (C#, F#, VB, …), runtimes like the CLR (Common Language Runtime) and libraries like the BCL (Base Class Library).

Implementations of .NET include:

  • .NET Framework: Runs on Windows
  • .NET Core: New and open source
  • Mono: Clean-room implementation of .NET, originally for linux

The future vision of it is to have only a single .NET SDK with one base class library and a unified toolchain.

Terminology:

  • Nuget: C# package manager
  • CLR: the core Common Language Runtime, analogous to the JVM in Java
  • ASP.NET: Active Server Pages .NET. A web application framework.

dotnet cli: your entry point, SDK, driver, javac, etc

  • dotnet new: templates
  • dotnet run: dev time compile and run
  • dotnet publish: ready up for deploy

.csproj: XML file that contains the list of files in a C# project, references to system assemblies and other settings. You get one .csproj file per assembly and the .sln (solution file) ties together all the assemblies that make up the project.