Angesichts der zahlreichen Erweiterungen von Visual Studio und C# soll es gelegentlich vorkommen, dass der eine oder andere Programmierer den Überblick über diese Neuerungen verloren hat. Für solche Entwickler ist dieses Seminar gedacht: Hier werden die Erweiterungen von Visual Studio 2015, 2017, 2019 und 2020, die Erweiterungen der jeweiligen C#-Versionen sowie einige weniger bekannte Techniken umfassend vorgestellt.
Es richtet sich an Software-Entwickler in Firmen, die C# professionell einsetzen.
Inhalt
Die folgenden Punkte geben einen Überblick über die Themen, die in diesem Seminar schon gewünscht wurden. Sie sind nur Anregung gedacht.
Die Inhalte dieses Seminars werden normalerweise in Absprache mit der Entwicklungsabteilung festgelegt.
1. Die Entwicklungsumgebung Visual Studio
Editor, Debugger, Intellisense, Projektmappen-Explorer, Tipps und Tricks, weniger bekannte features.
.NET Core 5 Anwendungen
2. Methoden
out-Variablen
Tupel
Verwerfen
Mustervergleich
Lokale ref-Variablen und Rückgabetypen
Lokale Funktionen
Mehr Ausdruckskörpermember
throw-Ausdrücke
Generalisierte asynchrone Rückgabetypen
Verbesserung der numerischen literalen Syntax
Schreibgeschützte Auto-Eigenschaften:
Auto-Eigenschaft-Initialisierer:
Ausdruckskörper-Funktionsmember:
using static:
Bedingte NULL-Operatoren:
Zeichenfolgeninterpolierung:
Ausnahmefilter:
„nameof“-Ausdrücke:
„Await“ in Catch- und Finally-Blöcken
Indexinitialisierer
Erweiterungsmethoden für Auflistungsinitialisierer:
Verbesserte Überladungsauflösung
2. Collection-Klassen
Überblick
Funktionen als Argumente für die Elementfunktionen der Collection-Klassen
Die Bedeutung der Interfaces in den Definitionen der Collection-Klassen
Generische Dictionaries, HashSet<T> und SortedSet<T>
LINQ
Serialisierung mit BinaryFormatter, SoapFormatter und XmlSerializer
2. Statische Variablen, Methoden und Klassen .
Statische Klassenelemente
Überladene Operatoren
Erweiterungsmethoden
3. Generische Programmierung
Generische Methoden
Generische Klassen
Typparameter-Einschränkungen (Constraints)
4. Interface-Klassen
Die Definition und Implementation von Interface-Klassen.
Interface-Klassen und Vererbung
Typische Anwendungsfälle und generische Interfaces
Beispiele: IComparable, IEnumerable, IClonable, IFormatable
Iteratoren, IEnumerator und die foreach-Anweisung
Iteratoren und die yield-Anweisung
Generische Interface-Klassen: IEnumerable<T>
Kovariante und kontravariante Typ-Parameter .
Objekte kopieren und das ICloneable-Interface
IFormattable: Die Formatierung selbstdefinierter Klassen
5. Delegat-Typen, Lambda-Ausdrücke und Ereignisse
Delegat-Typen und –Instanzen
Generische Delegat-Typen: Action und Func
Operationen zur Verwaltung von Aufruflisten
Anonyme Methoden
Lambda-Ausdrücke
Selbst definierte Steuerelemente und ihre Ereignisse
6. Laufzeit-Typinformationen und Reflektion
Laufzeit-Typinformationen der Klasse Type
Reflektion mit der Klasse Assembly
Dynamisch erzeugte Datentypen und Plugins
7. Attribute
Vordefinierte Attribute
Selbstdefinierte Laufzeitattribute
8. Multithreading und Asynchrone Programmierung
Multithreading mit der Task Parallel Library (TPL)
Funktionen als Threads starten: Task.Factory.StartNew und Task.Run
Fortsetzungen (Continutions): Tasks nacheinander ausführen
Reaktionsfähige Oberflächen: Auf Steuerelemente in Tasks zugreifen
Tasks abbrechen
Asynchrone Programmierung mit async und await
Kritische Abschnitte und die Synchronisation von Threads
Datenparallelität: Parallel.For und Parallel.ForEach
Die Klasse Thread
Multithreading mit der Klasse BackgroundWorker
9. Reguläre Ausdrücke
Über „C# Neuheiten“
Zielgruppe des C# Trainings
Software-Entwickler, die professionelle Programme mit C# schreiben wollen.
Voraussetzungen: Praktische Erfahrungen in C#.
Unterrichtsstil des C# Seminars
Vortrag mit vielen Beispielen, die das Wesentliche auf den Punkt bringen. Dabei wird auf einen ausgewogenes Verhältnis von Theorie und Praxis geachtet.
- Zu Beginn eines neuen Themas wird zunächst ein Überblick über die Einsatzmöglichkeiten, Grundideen und die Syntax gegeben. Diese werden an sorgfältig ausgewählten und bewährten Beispielen illustriert.
- Das Verständnis wird oft durch den Vergleich ähnlicher (auch älterer) Sprachelemente und ihrer Vor- und Nachteile vertieft. Dabei werden oft „best practises“ empfohlen.
- Falls die Teilnehmer ihr Wissen selbständig vertiefen wollen: Das Manuskript enthält zahlreiche praxisnahe Übungsaufgaben. Auf Wunsch können nach vorheriger Absprache auch Aufgaben aus der Arbeit der Seminarteilnehmer behandelt werden.
Falls sich im Lauf des Seminars zeigt, dass Grundlagen bei den Teilnehmern fehlen oder weitere Themen gewünscht werden, kann die Agenda auch noch während des Seminars an die Wünsche der Teilnehmer angepasst werden.
Schulungsunterlagen
Ausführliche und detaillierte Schulungsunterlagen (ca. 200 Seiten) – Vollständiger Text, keine Powerpoint Folien, die nur Stichworte enthalten. Deshalb können die Kursunterlagen auch als Referenz bei der Arbeit verwendet werden.
Ort und Zeit der C# Schulung
Dieses Seminar wird als Firmenseminar (inhouse) angeboten. Die Durchführung als Präsenzseminar wird bevorzugt, ist aber auch als Online-Seminar möglich. Termine nach Vereinbarung.
Dauer: 5 Tage
Öffentliche Seminare von Prof. Richard Kaiser finden Sie bei der Technischen Akademie Esslingen.
Dozent
Prof. Richard Kaiser führt seit vielen Jahren Seminare für Firmen durch, vor allem über Software-Entwicklung und die Programmiersprachen C#, C++ und C. Er kennt die Anforderungen der Praxis und geht sowohl in den grundlegenden Konzepten als auch in den Einzelheiten detailliert darauf ein. Zu seinen Kunden gehören renommierte Weltkonzerne und kleine und mittelständische Unternehmen. Er ist der Verfasser mehrerer Bücher über C++, zuletzt „C++ mit Visual Studio 2019“. Er war viele Jahre Mitglied im DIN Normierungsausschuss Informationstechnik NI-22.