C# Advanced

  1. Details zu Klassen: Felder, Eigenschaften, Methoden und Ereignisse : wann Felder, wann Eigenschaften
  2. Ereignisse vs. Interface
    • Bsp.: DirTree Basisklasse implemntiert das Template Pattern mittels überschreibbaren Methoden (Interface)
    • Bsp.: LogServer implementiert das Observer Pattern, Eventhandler für Logs(- Abonenten) zur Laufzeit dynamisch austauschbar
  3. Schnittstellenimplementierung vs. Implementierungvererbung
  4. new vs. override (Bsp. Auto.tanken und Auto.tanken_polymorph)
  5. Zugriffsmodifikatoren : z.B. public vs. internal (siehe CSharp45.Basics/_04_Objektorientiert/Astro/inMem/Konstruktoren von Galaxie, Stern)
  6. Generische Typen
    1. List<> vs. ArrayList etc.
    2. Selber generische Typen mit Einschränkungen definieren (Bsp.: struct mko.BI.Interval<T>)
  7. Pattern und Richtlinien für guten Code
    1. Schichtenaufteilung (Projektmappe Webarchitektur)
    2. Tests und Testprojekte
    3. Solid Code (Projektmappe Webarchitektur)
    4. Kapselung des Datenzugriffes: Repository, UnitOfWork (Einführendes Beispiel: CSharp45.Basics/_04_Objektorientiert/Astro)
      1. Entityframework
      2. Zugriff auf Daten mittels Linq
      3. Grenzen der Abstraktion mittels EF (CanvasScriptServer, effiziente Implementierung Zugriff auf Namen und die Folgen)
    5. SQL-Server
      1. Download Sql Server Managment Studio
      2. Doku Sql Server Managment Studio
      3. Lizenzmodelle
      4. Download SQL Server Express 2016
      5. Doku Lokaldb- Mode
    6. Entwurfsmuster zur Implementierung graphischer Oberflächen
      • Vergleich der aktuellen Frameworks WinForm, WPF und ASP.NET MVC
    7. Wichtige Erzeugungsmuster
  8. Operator- Überladung (Bsp: mko.Algo.Romzahlen)
  9. Lebenszyklus und Verwaltung des Arbeitsspeichers
  10. Multithreading
    1. Grundlagen
    2. Methoden mit Threads aus dem Threadpool via Delegate starten
    3. Vorteile des Threadpools
    4. Nachteile der direkten Nutzung von Threads zwecks Vollauslastung des Rechners
    5. Vollauslastung mittels TPL (Task Parallel Library) erreichen
    6. Asynchrone Methoden mittels async/await