Der Kurs ist eine umfassende Akademie zum Erlernen der C#-Programmierung und Anwendungsentwicklung mithilfe der .NET-Plattform. Es konzentriert sich auf die Grundlagen der Programmierung und deckt nach und nach die Schlüsselkonzepte der objektorientierten Programmierung (OOP), der Codeverwaltung, der Datenmanipulation, der Arbeit mit Sammlungen und mehr ab. Die Teilnehmer lernen, mithilfe verschiedener Konzepte und Technologien wie OOP, Speicherverwaltung, Datenmanipulation, Ausnahmebehandlung, parallele Programmierung und mehr robuste und effiziente Anwendungen in C# zu erstellen und zu entwickeln.
Ein C#-Entwicklungsspezialist verfügt über das Fachwissen, eine Vielzahl von Aspekten bei der Entwicklung einer Anwendung zu berücksichtigen, die über Überlegungen hinausgehen, die sich nur auf Leistung, Funktionen und Sicherheit beziehen.
Entwickler, die mit .Net/C# vertraut sind, haben die Möglichkeit, fortschrittliche Anwendungen zu erstellen, seien es anspruchsvolle Desktop-Anwendungen oder komplexe Infrastrukturen hinter modernen Webanwendungen. Sie sind in der Lage, Softwarelösungen zu entwerfen und zu entwickeln, einschließlich Leistungsoptimierung, Qualitätssicherung durch ordnungsgemäße Tests, Sicherheitsimplementierung und mehr. Dadurch können sie zur Entwicklung von Softwareprodukten beitragen, die zuverlässig, skalierbar und an den aktuellen technologischen Anforderungen ausgerichtet sind.
Im Anschluss an dieses Programm lernen die Teilnehmer:
- Verstehen Sie die grundlegenden Konzepte der Programmierung und die Bedeutung der C#-Sprache in der Softwareentwicklung.
- Verwenden Sie die integrierte Entwicklungsumgebung (IDE), um C#-Programme zu erstellen, zu kompilieren und auszuführen.
- Bearbeiten Sie Variablen, Datentypen und Operatoren in C#, um Berechnungen und logische Operationen durchzuführen.
- Es verwaltet den Ablauf der Programmausführung durch Entscheidungs- und Interaktionsanweisungen.
- Modellieren und implementieren Sie OOP-Konzepte wie Klassen, Objekte, Vererbung, Schnittstellen und Abstraktion.
- Arbeiten Sie mit Datensammlungen und -strukturen, einschließlich der Verwendung von Generika und Sammlungsalgorithmen.
- Entwickeln Sie parallele Anwendungen mithilfe von Threads und asynchronen Programmiertechniken.
- Behandelt Ausnahmen und Fehler in C#-Programmen.
- Interagieren Sie mit Datenbanken mithilfe von ADO.NET und Entity Framework.
- Erstellen und stellen Sie Webdienste mithilfe der ASP.NET-Web-API bereit.
- Implementieren Sie Unit-Tests und schreiben Sie sauberen und gut strukturierten Code.
Kenntnisse einer Programmiersprache wären von Vorteil, aber nicht zwingend erforderlich. Wenn die Teilnehmer über ein grundlegendes Verständnis mathematischer und logischer Konzepte verfügen, wäre dies auch beim Erlernen des Programmierens hilfreich.
Lektion 1 – Einführung
- Was ist ein Programm? Was ist der Zweck der Programmierung? Was können wir mit .NET machen?
- Was ist eine IDE? Wie sie das Leben von Programmierern einfacher machen
– Was ist .NET und was ist C#?
– Unser erstes Programm in C# läuft über die IDE
– C# als kompilierte und interpretierte Sprache (Kommandozeilenwiedergabe der Schritte, die unsere IDE für uns ausgeführt hat, um das gezeigte Programm auszuführen)
– Variablen. Was ist eine Variable?
– Literale: Ganzzahl, Gleitkomma, Boolescher Wert, Zeichen und Zeichenfolge
– Betreiber
- Zuordnung
- Mathematische Operatoren
- Automatisches Inkrementieren und Dekrementieren
- Logische Operatoren
- Vergleichsoperatoren
- Bitweise Operatoren (erklären, wie Computer in Bezug auf Bits „denken“ und einige Konvertierungen von der Basis 2 in die Basis 10 und auch in die Basis 16 durchführen)
- Schichtführer
- Ternärer if-else-Operator
- String-Verkettungsoperator(+, +=)
- Casting-Operatoren
- Spezielle Operatoren (z. B. Instanz von)
– Steuerung der Ausführung: Entscheidungsanweisungen, Interaktionsanweisungen, Unterbrechungsbefehl, Fortsetzungsbefehl
– Beispiele & Übungen
Lektion 2 – Code-Management
- Versionskontrolle
- SVN, Mercurial, Git
- Git-Setup
- Github, schieben Sie Ihren ersten Code in Github
- Kommentare
- Schreiben Sie Inline-Kommentare
- Schreiben Sie Dokumentationskommentare
– Namensräume
- So organisieren Sie Ihren Code in Namespaces
- Spezielle Namespaces innerhalb eines C#-Programms
– Führen Sie ein C#-Programm aus
- Normaler Modus
- Debugging-Modus
- Mit speziellen Argumenten ausführen
– Beispiele & Übungen
Lektion 3 – Arrays und Strings
- Was sind Sie?
– Array-Länge
– Mehrdimensionale Arrays
– Auf Elemente eines Arrays zugreifen und diese ändern
– Durchlaufen eines Arrays
– Übergeben Sie ein Array als Funktionsargument
– Beispiele mit den am häufigsten verwendeten Methoden aus der Arrays-Dienstprogrammklasse
– Bearbeiten von Strings (Teilstring, Vergleichen von Strings, Konvertieren aus einem char-Array usw.)
– Beispiele & Übungen
Lektion 4 – Funktionen
– Was ist eine Funktion und was ist ihr allgemeiner Zweck?
– Funktionsparameter, optionale Parameter, Rückgabewerte
– Funktionsrichtlinien schreiben (nach „Clean Code“ von Robert C. Martin)
– Der Lebenszyklus lokaler Variablen wird erklärt
– Übergabe primitiver Variablen als Parameter an Funktionen
– Wert übergeben
– Aufrufende Funktionen, benannte Argumente
– Beispiele & Übungen
Lektion 5 – Einführung in OOP
– Was ist OOP, OOP vs. Prozedural
- Was ist eine Klasse?
- Was ist ein Objekt?
– Baumeister
- Standardkonstruktoren
- Dieses Stichwort
- Polymorphie
– Deklarieren und Initialisieren einer Klasseninstanz
– Speicherzuweisung und der Garbage Collector
– Instanzvariablen/-methoden vs. statische Variablen/Methoden
– Statischer Konstruktor
– Nichtstatischer Konstruktor
– C#-Zugriffsmodifikatoren
– Beispiele & Übungen
Lektion 6 – Vererbung, abstrakte Klassen, Schnittstellen
- Vererbung erklärt
– Überschreibende Methoden
– Keyword-Basis
- Geschützt erklärt
- Versiegeltes Schlüsselwort
– Abstrakte Klassen
– Schnittstellen
– Schnittstellen vs. abstrakte Klassen
– Mehrere Implementierungen von Schnittstellen
– Beispiele & Übungen
Lektion 7 – Innere Klassen, Objektklasse, Nullobjekt
– Ist/als Operatoren
– Upcasting und Downcasting
– Alles ist ein Objekt
– Objektklasse erklärt
– Zweck der ToString()-Methode iii. Zweck der Equals()-Methode iv. HashCode()-Methode
– Objekte klonen – ICloneable-Schnittstelle
– Finalizer-Methode
– Nullobjekt
– Beispiele & Übungen
Lektion 8 – Aufzählungen, Ausnahmebehandlung
– Aufzählung erklärt
– Ausnahmehierarchie
– Aktivierte vs. nicht aktivierte Ausnahmen
– Try-catch-endlich erklärt
– Ausnahmen auslösen (Throw-Befehl)
– Ausnahmen lokal behandeln oder delegieren
– Unsere eigenen Ausnahmen definieren
– Beispiele & Übungen
Lektion 9 – Eingabe-/Ausgabeströme, Serialisierung
– Die File-Klasse
– Byte-Streams
– Charakter-Streams
– Gepufferter Stream
- Datenströme
– Objektströme
– Serialisierung
– Beispiele & Übungen
Lektion 10 – Generika, Sammlungen
– Generische Klassen
– Generis-Funktionen
– Generische Namenskonvention
– Sammlungen mit Beispielen für Implementierungen:
– Generische Sammlungen: Liste, Wörterbuch , SortedList, Warteschlange, Stapel, Hashset
– Nicht generische Sammlungen: ArrayList, SortedList, Stack, Queue, Hashtable
– Beispiele & Übungen
Lektion 11 – Generika, Sammlungen
– Iteratoren
– Foreach-Anweisung
– Wörterbuchtyp
- Sammlungsalgorithmen
- Sortieren
- Vergleichbare Schnittstelle
- IComparer-Schnittstelle
- Binäre Suche
- Gleicht
- Minimal Maximal
- Tausch
- Linq-Operationen für Sammlungen: z. B. Suchen, Zuerst, Überspringen, Nehmen usw
– Beispiele & Übungen
Lektion 12 – Threads, Sockets, Aufgaben (Async Await)
– Code sequentiell vs. parallel ausführen
– Async Await in .net (C#)
– Erstellen und Starten eines Threads in C#
- Thread-Klasse
- Aufgabenklasse
– Thread-Lebenszyklus
– Anhalten einer Thread-Ausführung
– Thread-Verbindungen
– Synchronisierung und Sperren
– Monitor-Hilfsklasse: Wait, Pulse, PulseAll
– Beispiele & Übungen
Lektion 13 – Threads, Sockets, Aufgaben (Async Await)
– Atomare Variablen
– Flüchtiges Schlüsselwort
– Unveränderliche Objekte
– Fallstricke bei der parallelen Programmierung
– Client-Socket
– Server-Socket
– Beispiele & Übungen
Lektion 14 – Abhängigkeitsmanager, C# database Konnektivität
– Nuget-Paketmanager
– Importieren mehrerer Projekte in Ihr Projekt
– Einrichten einer Verbindung zu SQL Server von C#
– Aufruf von SQL-Code aus C#
- SQL-BefehlCom
- SqlDataReader
– Schließen der C#-Verbindung zu SQL Server
– Abfrageergebnisse lesen: ExecuteScalar vs. ExecuteReader
Lektion 15 – Entity Framework
– Was ist Entity Framework?
– Verschiedene ORMs
– Lambda-Ausdrücke
– Migrationen
– Paket-Manager-Konsole
– EF Code First vs Database Vorname
– Beispiele & Übungen
Lektion 16 – Anonyme Objekte. Delegierte, Abhängigkeitsinjektion
– Beispiele für anonyme Objekte
– Delegierte
– Lambda-Ausdrücke
- Abhängigkeitsspritze
– Null beheben: Optionale Klasse
– Beispiele & Übungen
Lektion 17 – MVC, Web-API und Codegenerierung
– MVC (Model View Controller-Muster)
– Was ist eine Web-API?
– HTTP-Verben
– JSON / XML
– Beispiele & Übungen
Lektion 18 – Unit-Tests und sauberer Code
– Sauberer Code
- Warum ist sauberer Code wichtig?
- Allgemeine Richtlinien zum Schreiben von Code
- TROCKENES Prinzip
- Kussprinzip
- Yagni-Prinzip
– Unit-Tests
- xEinheit
- nEinheit
- Unit-Tests vs. Integrationstests
- Verwendung von Spottbibliotheken
- Entkoppelte Code- und Unit-Tests
Lektion 19 – Abschlussprojekt
Nach Abschluss des Kurses und bestandener Evaluierungsprüfung erhalten die Teilnehmer ein Abschlusszeugnis.

