C# Aufbaukurs – Intensivtraining mit Visual Studio 2019

In diesem C# Aufbaukurs werden anspruchsvolle Themen der Programmiersprache C# umfassend und kompakt unterrichtet. Das ist ein Intensivtraining für fortgeschrittene Programmierer und Software-Entwickler, die mit C# und Visual Studio professionell programmieren wollen. Zusammen mit dem C#-Grundkurs wird der gesamte Sprachumfang von C# behandelt.

C# ist eine moderne Programmiersprache, die durch ihre klaren Sprachkonzepte zu einer der populärsten Sprachen wurde. Ursprünglich wurde C# für Windows-Anwendungen entwickelt. In den letzten Jahren wurde ihr Einsatzbereich stark erweitert:

  • Mit Xamarin auf Mobile-Anwendungen für iOS und Android.
  • Mit .NET Core auf plattformübergreifende Anwendungen: Eine .NET Core Anwendung ist nach der Installation der entsprechenden Runtime-Bibliotheken unter Windows, Linux (x64/ARM32) und macOS lauffähig.
  • Mit Blazor auf Web-Anwendungen.

Die Entwicklungsumgebung Microsoft Visual Studio 2019 unterstützt alle diese Einsatzbereiche. Sie stellt für Windows Programme leistungsfähige Designer für graphische Oberflächen zur Verfügung.

Der theoretische Unterricht wird durch viele Beispiele veranschaulicht. Diese verwenden eine grafische Benutzeroberfläche und die aktuelle Version C# 8.0, Visual Studio 2019 und .NET Core 3.1.

aus der Lösung einer Übungsaufgabe

Der Dozent Prof. Richard Kaiser hat bereits weit über 100 Seminare bei Firmen über C# und C++ gehalten. Zu seinen Kunden gehören renommierte Weltkonzerne und kleine und mittelständische Unternehmen. Er kennt die Anforderungen der Praxis und geht sowohl in den grundlegenden Konzepten als auch in den Einzelheiten detailliert darauf ein.

Inhalt C# Aufbaukurs:

Die Inhalte (hier ausführlich als pdf) können an die Wünsche der Teilnehmer angepasst werden.

Statische Elemente

  • Statische Variablen, Methoden und Klassen
  • Überladene Operatoren
  • Erweiterungsmethoden

Generische Programmierung

  • Generische Methoden und Klassen
  • Typparameter-Einschränkungen (Constraints)

Interface-Klassen

  • Die Definition und Implementation von Interface-Klassen
  • Typische Anwendungsfälle und generische Interface-Klassen
  • Beispiele: IComparable, IEnumerable
  • Iteratoren und die foreach-Anweisung
  • Iteratoren und die yield-Anweisung
  • Die Formatierung selbstdefinierter Klassen mit IFormattable
  • Die Entwurfsmuster Dependency Injection und Factory Pattern

Exception-Handling

  • Die try-Anweisung.
  • Die Basisklasse Exception und vordefinierte Exceptions.
  • throw-Anweisungen.
  • Selbstdefinierte Exception-Klassen.
  • Die Freigabe von Ressourcen, try-finally und die using-Anweisung.
  • Die Protokollierung von Exceptions in einem EventLog.

Delegat-Typen, Lambda-Ausdrücke und Ereignisse

  • Delegat-Typen und –Instanzen
  • Generische Delegat-Typen: Action und Func
  • Operationen zur Verwaltung von Aufruflisten
  • Anonyme Methoden und Lambda-Ausdrücke
  • LINQ Abfrageausdrücke (from, select, where, orderby usw.)
  • LINQ Abfrageausdrücke als Methodenaufrufe
  • Ereignisse (events)

Laufzeit-Typinformationen und Reflektion

  • Laufzeit-Typinformationen der Klasse Type
  • Reflektion mit der Klasse Assembly
  • Dynamisch erzeugte Datentypen und Plugins

Attribute

  • Vordefinierte Attribute
  • Selbstdefinierte Laufzeitattribute

Uhrzeiten, Kalenderdaten und Timer

  • Zeitpunkte und Zeiträume mit DateTime und TimeSpan
  • Timer und zeitgesteuerte Ereignisse
  • Hochauflösende Zeitmessung mit der Klasse Stopwatch
  • Kulturspezifische Datumsformate und Kalender

Multithreading und Asynchrone Programmierung

  • Multithreading mit der Task Parallel Library (TPL)
  • Funktionen als Threads starten
  • 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
  • Ältere Konzepte: Die Klassen Thread und BackgroundWorker

Beurteilungen durch Teilnehmer:

C# Aufbaukurs November 20171 (sehr gut)2345
Gesamtbewertungxxxxxx
Lern- und Arbeitsatmosphärexxxxxx
Kursunterlagenxxxxxx
Fachkompetenz des Dozentenxxxxxxx

Zum C# Aufbaukurs:

Zielgruppe: Software-Entwickler, die professionelle Programme mit C# schreiben wollen.

Voraussetzungen: C#-Kenntnisse im Umfang des C#-Grundkurses.

Unterrichtsstil: 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.

Flexibilität: 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.

Manuskript: 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: Dieses Seminar wird als Firmenseminar (inhouse) angeboten.

Dauer: 5 Tage

Kontakt: Prof. Richard Kaiser