C# Aufbaukurs mit Visual Studio 2019

In diesem C# Aufbaukurs werden anspruchsvolle Themen der Programmiersprache C# umfassend und kompakt vorgestellt. Ein Intensivtraining für fortgeschrittene Programmierer und Software-Entwickler in Firmen, die mit C# und Visual Studio professionell Windows-, Web-, Mobile-, Linux- und macOS-Anwendungen programmieren wollen. Zusammen mit dem C#-Grundkurs wird der gesamte Sprachumfang von C# behandelt.

Dabei steht die Entwicklung von plattformübergreifenden Anwendungen mit einer grafischen Benutzeroberfläche mit der aktuellen Version von C# 8.0, Visual Studio 2019 und .NET Core 3.0 im Vordergrund.

C# ist eine moderne Programmiersprache, die ursprünglich für professionelle Windows- und Web-Anwendungen entwickelt wurde. Seit etwa 2013 kann man mit Xamarin auch Mobile-Anwendungen (iOS und Android) in C# programmieren. Mit dem seit Ende 2019 verfügbaren .NET Core 3.0 können auch plattformübergreifende Anwendungen (aber nicht mit WPF und Windows Forms) in C# entwickelt werden. Eine .Net Core Anwendung ist nach der Installation der entsprechenden Runtime-Bibliotheken unter Windows, Linux (x64/ARM32) und macOS lauffähig.

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 Variablen, Methoden und Klassen

  • Statische Klassenelemente
  • Überladene Operatoren
  • Erweiterungsmethoden

Generische Programmierung

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

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
  • IFormattable: Die Formatierung selbstdefinierter Klassen
  • Entwurfsmuster (Software Design Patterns): Factory Pattern und Strategy Pattern

Exception-Handling

  • Die try-Anweisung
  • Die Basisklasse Exception
  • Einige vordefinierte Exceptions
  • throw-Anweisungen
  • Exceptions und Intellisense
  • 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, 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

  • Die Klassen 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: 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
  • Ä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 die wichtigsten Grundlagen von C# lernen wollen, um professionelle Programme zu schreiben.

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

Unterrichtsstil: Vortrag mit vielen Beispielen, die das Wesentliche auf den Punkt bringen. Eine ausgewogene Verbindung von Theorie und Praxis.

  • 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