Every software developer strives to build loosely-coupled systems. They are a key element in maintainable code. Traditionally, in languages such as Java and C++, developers jumped through hoops to implement the observer design pattern to achieve this goal.

The architects of the C# language had the great foresight to elevate this concept to primitives in the language making loosely coupled systems both attainable and (relatively) simple in C#. This includes language concepts such as:

delegates

the event keyword

anonymous delegates

lambda expressions

The C# event-based programming course will quickly get developers up to speed on these concepts and more.

In addition to building maintainable systems, these concepts are fundamental for building user interfaces in technologies such as WPF, Windows Store Apps, Windows Forms, and Web Forms. They also are key building blocks for both asynchronous programming and data access with LINQ in C#.