LINQ, Take Two – Realizing the LINQ to Everything Dream
At PDC a few years back, we introduced LINQ to solve the impedance mismatch between various data models by means of integrated query syntax in mainstream programming languages. Today, we’re seeing a rich ecosystem around LINQ providers that allow developers to reach out to many more data models. However, there’s a lot of opportunity left to democratize even more data models. Based on the theory of monads, we’ll explore the incredibly powerful nature of query comprehensions to do things like theorem solving, build reactive queries (cf. Reactive Extensions for .NET), carry out various forms of query optimization, split execution of queries across tiers, etc. In addition, we revisit the art of writing query providers, introducing some novel approaches to ensure better compile-time checking.