VB.NET
Projektverwaltung mit Visual Studio
- Projektmappe und Projekte
-
Beispielvorhaben Bank
Abbildung einer in drei Schichten gegliederten Anwendung auf Viual Studio Projekte
- Projekmappe Bank
- Projekt (Typ Klassenbibliothek) BankBL als Businesslayer
- Projekt (Typ Testprojekt) BankBL.Test als Unit-Test für die Businesslayer Komponenten
- Projekt (Typ Klassenbibliothek) BankDA als Data- Access Layer
- Projekt (Typ Testprojekt) BankDA.Test als Unit-Test für die DataAccess Layer Komponenten
- Projekt (Typ Windows Form) Bank.Clinet.WinForm als GUI zur Steuerung der Geschäftslogik
-
NuGet Package Manager
- Einführung in die Verwaltung von Abhängigkeiten zwischen Bibliotheken
- Installation der Beispielbibliothek in der Projektmappe mit den Übungen
- Eignene nuget- Packages anlegen und in ein selbstdefiniertem Repository veröffentlichen.
Details zu Klassen
- Klassenbildung über Objektmengen
- Definition Klasssen und Objekte
-
Member einer Klasse
- Mit Feldern den inneren Zustand implementieren
- Über Eigenschaften auf den inneren Zustand zugreifen
- Über Methoden mit Objekte kommunizieren
- Über Ereignisse die Umgebung von Zustandsänderungen benachrichtigen
- Zugriffsmodifikatoren : z.B. public vs. friend (Anwendung: Konstruktor verstecken für Klassenfabrik- Pattern)
-
Wertetypen vs- Referenztypen
-
struct- vs. class Blöcke (Point vs. SPoint)
- copy by value vs. copy by reference
-
Lebenszyklus, Konstruktoren, Dispose und Destruktor
- Objektinitialisierer und annonyme Typen
- Dispose- Schnittstelle
- Dispose manuell und in using Block
-
struct- vs. class Blöcke (Point vs. SPoint)
-
Vererbung als Abstraktionskonzept und als Konzept zur Wiederverwendung
von Code
- Klasse Himmeslkörper als Verallgemeinerung von Galaxie und Stern (Basics._04_Objektorientiert.Astro)
- Mengen von Sterne, Galaxien und Planeten als Arrays von Himmelskörpern
- Verallgemeinern der Masseberechnung von Himmelskörpern dank virtuelle Methoden → Begriffsbildung "abstrakte Klasse"
- new vs. override (Bsp. Auto.tanken und Auto.tanken_polymorph)
Schnittstellen
-
Wir erinnern uns:
IDisposable
-
Wie Schnittstellen in .NET Mengenkonzepte abbilden
→ Schnittstellenvererbung als Abstraktionskonzept
- Implementieren von
IEnumarable
in der Klasse PrimSet - Implementieren von
IComparable
für sortierbare Listen aus Preis- Objekten - Vereinfachte Implementierung von
IEnumerator
mittelsyield
- Implementieren von
- Schnittstellenvererbung vs. Implementierungsvererbung
Generische Typen
- Motivation zur generischen Programmierung: Sortiere „Äpfel und Birnen“
- Bsp: ArrayInt und ArrayGenerisch<t> (Indexer)
- Vordefiniere generische Typen
- Selber generische Typen mit Einschränkungen definieren (Bsp.: struct mko.BI.Interval<T>)
- Co- Varianz (Beispiel: IEnumerable<out T>")
Objekt- funktionales Programmieren und LINQ
- Funktionale Programmierung in VB
-
Einsprungadressen mittels Delegates verwalten
- Die vordefinierten generischen Typfamile Func<...> und Actions<...>
- Einsprungadressen speichern, aufrufen, entfernen aus einer Delegate- Variablen
- Events und Delegates
- Lambda- Ausdrücke: Funktionen inline deklarieren
-
Listenverarbeitung mit Lambda und LINQ
- Allgemeine Listenoperationen wie take, skip, concat
- LINQ
- Liste mit Preisen sortieren
- Liste mit Preisen Filtern
- Liste mit Preisen in $ umrechnen
-
Zugriff auf Datenbanken mittels Linq
- Installation von Kepler-DB
- Objektrelationalen Mapper mittels Entity- Framework einrichten
- Zugriff auf Tabellen mittels Linq
Fehlerbehandlung
- Strukturierte Fehlerbehandlung mittels Try .. Catch
- Fehlerklassen
- ThrowIf...() Funktionen
Multithreading
- Threads: Threadklasse, Threadpool, asynchrone Methodenstarts mittels Delegates
- Tasks: TPL- Task, Primzahlscanner asynchron, async- await