While C# is a statically typed language, it also has (often overlooked) dynamic features. For example, using the dynamic keyword allows the instantiation of dynamic objects whose structure is not known by the compiler at compile time. In this course, Dynamic C# Fundamentals, you'll learn how the use of dynamic C# makes some difficult and cumbersome programming tasks easier to write and work with. You'll learn how dynamic C# can make COM interop easier, enable adding of arbitrary properties at runtime, and simplify working with JSON and SQL data. You'll also discover how the dynamic keyword can reduce XAML boilerplate binding code and even enable interoperation with other dynamic languages such as Python. By the end of this course, you'll know how to take advantage of dynamic C# in order to reduce the amount of code that needs to be written, make it more readable, and give yourself more time to deliver more features to the customer.