Cross-platform DSLs in C#

Now that we can declare dynamic objects in C#, how should we define our APIs? Typed, dynamic, mixed? In this session we will learn that sometimes it’s useful to create an API in two incarnations: as strong typed and dynamic one.

Such API can be adopted by developers with either preference and exposed to .NET platoforms that lack DLR support. We will study the principles of designing a dual API, demonstrate how to ensure maximum code sharing between typed and dynamic versions, and how to package and publish library files so they can be consumed on variety of .NET platforms, including iOS and Android. We will also talk about added value that dynamic support brings to C#, looking at real-world examples such as dynamic view models, micro-ORMs and REST services. Last but not least, we will build and run code samples on Windows and Mono.

Video producer: