My Pluralsight course “Dynamic C# Fundamentals” is now available.
The course is split into 4 modules:
Module 1 introduces the dynamic features of C# and how it is enabled by the Dynamic Language Runtime (DLR).
Module 2 looks at numerous places that dynamic C# can be used including COM, XAML, MVC, and JSON.
Module 3 digs into more detail and shows how to create custom C# classes that can exhibit dynamic behaviour.
Module 4 shows how the DLR enables C# to interoperate with other dynamic languages such as IronPython.
Full list of topics:
1 Introducing Dynamic C#
- Why Dynamic C#?
- Course Outline
- Introducing the DLR
- Static and Dynamic Binding
- Dynamic Binding in Action and RuntimeBinderException
- Implicit Dynamic Conversions
- Var and Dynamic
- Runtime Method Resolution
- Dynamic and Object Types
- Limitations of Callable Methods
- Introducing ExpandoObject
- Refactoring to Dynamic
- Dynamically Adding ExpandoObject Behavior
2 Simplifying Code with Dynamic C#
- Simplifying Reflection Code
- Reducing Code with Unified Numeric Methods
- COM Interop Without Interop Assemblies
- Reducing Plumbing Code with Dynamic JSON
- Dynamically Populating Excel with Arbitrary JSON Data
- Dynamic JSON in Web API
- ExpandoObject and XAML Databinding
- Dynamic SQL Query Results with Dapper
- Improving SpecFlow Test Code with Dynamics
- Dynamic Code Considerations
3 Creating Custom Dynamic Classes
- Why Custom Dynamic Classes?
- The IDynamicMetaObjectProvider Interface
- The DynamicObject Base Class
- Creating a Dynamic HtmlElement Class
- Creating the First Test
- Adding Initial Dynamic Capabilities
- Dynamic Operation Exceptions
- Improving the Debugger Experience
- Overriding ToString
- Implementing Additional Interfaces
- Making the Dynamic Object Enumerable
- Implementing Dynamic Methods
- Method Invocation Precedence
- Invoking the Dynamic Object Itself
4 Interoperating with Dynamic Languages
- Why Dynamic Interop?
- Getting Started with IronPython
- Getting Scripting Input from the User
- Scripting Risks
- Executing Python Statements
- Interacting with Python Objects
- Passing Custom Dynamic Objects to Python
Check out the full course description.