# C# Workshop ## C# Neuerungen * [Slides C# 11](https://slides.com/rainerstropek/csharp-11/fullscreen) * [Slides C# 12](https://slides.com/rainerstropek/c-12/fullscreen) ## Container * [Slides](https://slides.com/rainerstropek/net-7-intro/fullscreen#/3) * [Sample](https://github.com/rstropek/Samples/tree/master/DotNet7/0010-Centralized-Package-Management) ## .NET unter Linux vs. Windows * [Windows Subsystem for Linux](https://learn.microsoft.com/en-us/windows/wsl/) * [VSCode Remote Development](https://code.visualstudio.com/docs/remote/remote-overview) * [WSL Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl) * [.NET TFMs](https://learn.microsoft.com/en-us/dotnet/standard/frameworks#net-5-os-specific-tfms) ## GitHub Copilot * [Slides](https://slides.com/rainerstropek/dev-with-github-copilot/fullscreen) ## ASP.NET Core Minimal API * [Todo App David](https://github.com/davidfowl/TodoApi/tree/davidfowl/net8) * [UNO](https://github.com/rstropek/uno-coderdojo/) ## .NET on ARM * .NET is supported for ARM32 and ARM64 * Support for ARM32 [will **not** be dropped](https://github.com/dotnet/runtime/discussions/71042#discussioncomment-6745103) * Get .NET for ARM32 and ARM64 from [dotnet.microsoft.com](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) * [Multi-Platform Container Support](https://devblogs.microsoft.com/dotnet/improving-multiplatform-container-support/) * [Limited cross-compilation](https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/cross-compile) ## Live Samples ### Record Recap ```csharp var g = new Greetee("John"); g = g with { Name = "Jane" }; g.FirstName = "Foo"; var g2 = new Greetee("Jane"); g2.FirstName = "Foo"; if (g == g2) { System.Console.WriteLine("Equal"); } var gc = new GreeteeClass() { Name = "Foo", FirstName = "Bar" }; var gc2 = new GreeteeClass() { Name = "Foo", FirstName = "Bar" }; if (gc == gc2) { System.Console.WriteLine("Equal"); } record Greetee(string Name) { public string FirstName { get; set; } = ""; } class GreeteeClass { public string FirstName { get; set; } = ""; public string Name { get; set; } = ""; } ```