Architektur und Coding in C#

Dieses Software-Lab bietet Ihnen die Möglichkeit, Vertrautheit in der Programmierung mit C# aufzubauen. Es liefert praxisnahe Hilfen, Tipps und Regeln für gutes Coding und für eine klare, gut wartbare Backend-Architektur.

Zeitraum und zeitliche Organisation der Veranstaltung
12.09.2022 - 16.12.2022. Organisiert als insgesamt 6 Sprints zu je 2 Wochen. Weitere Details siehe unten.
Ort der Veranstaltung
Videokonferenz-Link: siehe individuelle Einladung
Raum: Arena (Offener Kreativbereich im Mündelheimer Weg)
Git-Repo für die Übungen
https://gitlab.com/archi-lab/architecture-and-coding/participants. Bitte lassen Sie mir vorab Ihren Gitlab-User-Account zukommen.
Youtube-Kanal
Für diese Veranstaltung sind Lehrvideos auf Youtube verfügbar. Abonnieren Sie dafür am besten den Kanal ArchiLab. Die gesamten Inhalte dieser Veranstaltung sind in einer Playlist zusammengefasst.

Inhalt

Learning Outcome

In diesem "Software-Lab zum Mitmachen" wird großer Wert darauf gelegt, theoretisches Wissen auch praktisch anwendbar zu machen. Folgendes Lernziel ("Learning Outcome") liegt der Schulung zugrunde. Das also haben Sie am Ende gelernt, wenn Sie für sich das Beste aus der Schulung herausholen.

Als SW-Entwickler:in kann ich ein Softwaresystem für eine gegebene Aufgabenstellung iterativ konzipieren und in C# implementieren,

indem ich ...

damit ich eine nachhaltig wartbare Software mit passender, langlebige und änderungsfähiger Architektur erstellt habe.

Workshops

Mon 12.09.2022, 13:30 - 16:00: Kickoff

Wir besprechen die Inhalte und die Organisation des Software-Labs. Sie können Ihre Fragen zu den Videos (oder zu anderen Aspekten) loswerden. Wir machen ein kleines Warmup zu objektorientierter Programmierung. Dann wird der erste Meilenstein PREP1 vorgestellt.

Ort des Workshops

Raum: Arena (Offener Kreativbereich im Mündelheimer Weg)

Ziel des Tages

Sie kennen die Rahmenbedingungen des Softwarelabs und können mit dem ersten Meilenstein beginnen.

Schauen Sie bitte vorab nachfolgende Videos

Agenda

Aufgabe bis zum nächsten Workshop

Nach dem Workshop bearbeiten Sie bitte Meilenstein PREP1.

Tue 27.09.2022, 14:00 - 17:00: Das Vorgehen beim objekt-orientierten Programmieren

Objekt-orientiertes Programmieren braucht ein bisschen Struktur - wenn man einfach losprogrammiert, dann kommt wahrscheinlich eine lange "Gott-Methode", die alles kann, dabei heraus. Man landet dann (vielleicht ohne es zu wollen) beim eher prozeduralen Ansatz. Das ist für einfache Scripte ok, aber selbst bei kleinen Softwaresystemen führt das schnell in den Wartungs-Albtraum. Daher spielen wir in diesem Workshop die ersten Schritte im objekt-orientieren Ansatz einmal zusammen durch. Wir orientieren uns dabei am Meilenstein PREP2 und (natürlich) der Sprache C#.

Ort des Workshops

Videokonferenz-Link: siehe individuelle Einladung

Ziel des Tages

Sie haben eine Idee, wie Ihr Text-Adventure im Meilenstein PREP2 aussehen soll, und kennen die nächsten Schritte.

Schauen Sie bitte vorab nachfolgende Videos

Agenda

Aufgabe bis zum nächsten Workshop

Nach dem Workshop bearbeiten Sie bitte Meilenstein PREP2.

Sprint-Meilensteine

Das Softwarelab gliedert sich in die folgenden Sprint-Meilensteine.

PREP1: Basisverständnis von Kontrollfluss und Datenstrukturen in C#

In diesem Meilenstein beschäftigen Sie sich mit Kontrollfluss und Datenstrukturen in C#. Anhand einfacher, kleiner Programmieraufgaben werden Sie durch die wesentlichen Aspekte des Codings in C# hindurchgeführt. Der Meilenstein wird komplett automatisch (per Unit-Tests) überprüft.

Zugehörige Videos

PREP2: Objektorientierte Programmierung in C#

Mit der objektorientierte Programmierung in C# setzen wir uns anhand einer kleinen, zusammenhängenden Programmieraufgabe (einem Textadventure) auseinander. Dabei brauchen Sie objektorientiertes Denken - Klassen, Members, Methoden und Namespaces zur Strukturierung des Codes. Auch Unit Tests und Exceptions zur Validierung spielen eine Rolle. Der Meilenstein wird manuell angeschaut und dann gibt es Feedback.

Zugehörige Videos

AC1: Domain-Driven Design zur Strukturierung von Softwaresystemen

In diesem Meilenstein lernen Sie die Grundlagen von DDD (Entities, Value Objects, Repositories) kennen. Die Umsetzung machen Sie mittels C# und ASP.NET. Der Meilenstein wird teils automatisch (per Unit-Tests) überprüft, teils gibt es manuelles Feedback.

Zugehörige Videos

AC2: Clean Code, SOLID-Prinzipien und Domain Primitives

Wir beschäftigen uns mit den Grundlagen guten Codes: Dabei helfen die wichtigsten Clean-Code-Regeln ebenso wie die SOLID-Prinzipien als Regeln zu Strukturierung komplexer Software. Zusätzlich führen wir Domain Primitives zur Kapselung von Basisfunktionalität ein. Der Meilenstein wird teils automatisch (per Unit-Tests) überprüft, teils gibt es manuelles Feedback.

Zugehörige Videos

AC3: Package-Strukturen basierend auf Aggregates

In diesem Meilenstein geht um die Grundlagen von Software-Schichtenmodellen. Wir schauen uns den Unterschied zwischen horizontalem und vertikalem Softwareschnitt an. Das Ganze setzen Sie praktische um anhand des DDD-Konzepts „Aggregate“. Der Meilenstein wird teils automatisch (per Unit-Tests) überprüft, teils gibt es manuelles Feedback.

Zugehörige Videos

AC4: REST-APIs

Wir schauen uns an, wie man das "Exposing" von Funktionalität über REST-Schnittstellen umsetzen kann. Sie lernen Design-Guidelines für REST kennen und designen die REST-APIs auf der Basis von Aggregates. Der Meilenstein wird teils automatisch (per Unit-Tests) überprüft, teils gibt es manuelles Feedback.

Zugehörige Videos