C# Advanced Programming Training

In this C# programming course advanced topics for programmers are covered. An intensive training for software developers who want to program professionally with C# and Visual Studio. Together with the corresponding C# basic course, C# and Visual Studio 2017 are presented comprehensively and compactly.

Lecturer Prof. Richard Kaiser has already held well over 100 company seminars on C# and C++. His customers include renowned global corporations and small and medium-sized enterprises. He knows the requirements of the practice and goes into detail both in the basic concepts and in the details on it.

Contents

The contents (here detailed as pdf) can be adapted to the wishes of the participants.

1. Static Variables, Methods and Classes

  • Static Class Elements
  • Overloaded Operators
  • Extension methods

2. Generic Programming

  • Generic Methods
  • Generic Classes
  • Type parameter constraints

3. Interface Classes

  • The definition and implementation of interface classes.
  • Interface Classes and Inheritance
  • Typical Use Cases and Generic Interfaces
  • Examples: IComparable, IEnumerable, IClonable, IFormatable Iterators
  • IEnumerator and the foreach statement
  • Iterators and the yield statement
  • Generic Interface Classes: IEnumerable<T>
  • Covariant and contravariant type parameters
  • IFormattable: Formatting User-Defined Classes
  • Software Design Patterns: Factory Pattern and Strategy Pattern

4. Exception Handling

  • The try statement
  • The Exception Base Class
  • Some predefined exceptions
  • throw statements
  • Exceptions and Intellisense
  • Self-defined exception classes
  • The release of resources, try-finally and the using statement
  • The logging of exceptions in an EventLog

5. Delegate Types, Lambda Expressions and Events

  • Delegate Types and Instances
  • Generic Delegate Types: Action and Func
  • Operations for managing call lists
  • Anonymous Methods, Lambda Expressions
  • LINQ query expressions (from, select, where, orderby etc.)
  • LINQ query expressions as method calls
  • Events

6. Runtime Type Information and Reflection

  • Runtime type information of the class Type
  • Reflection with the Assembly Class
  • Dynamically generated data types and plugins

7. Attributes

  • Predefined Attributes
  • Self-defined runtime attributes

8. Times, Calendar Dates and Timers

  • The classes DateTime and TimeSpan
  • Timer and time-controlled events
  • High-resolution time measurement with the Stopwatch class
  • Culture-specific date formats and calendars

9. Multithreading and Asynchronous Programming

  • Multithreading with the Task Parallel Library (TPL)
  • Start functions as threads: Task.Factory.StartNew and Task.Run
  • Continutions: Execute tasks one after the other
  • Responsive user interfaces: Accessing Controls in Tasks
  • Cancel Tasks
  • Asynchronous programming with asynchronc and await
  • Critical sections and thread synchronization
  • Data Parallelism: Parallel.For and Parallel.ForEach
  • Older concepts: The Thread and BackgroundWorker Classes

10. Regular Expressions

Miscellaneous

Target group: Software developers who want to learn the most important basics of C# in order to write professional programs.

Requirements: C# knowledge within the scope of the C# basic course.

Teaching style: Lecture with many examples. A balanced combination of theory and practice.

  • At the beginning of a new topic, an overview of the application possibilities, basic ideas and syntax is described. The concepts and syntax are then illustrated using carefully selected and proven examples.
  • If the participants want to deepen their knowledge independently: The manuscript contains numerous practical exercises.
  • Flexibility: If it turns out during the seminar that the participants lack the basics or that further topics are desired, I can adapt the agenda to the participants’ wishes at any time.

Manuscript: Detailed printed training material (approx. 200 pages) – Complete text, no PowerPoint slides containing only keywords. Therefore the course material can also be used as a reference at work.

Place and time: This seminar is offered as a company seminar (in-house).

Duration: 3-5 days
Contact: see here