Talk: How To "Dot" Into Anything, Anywhere, Anytime (Facilitating Data-First Programming) *

Take the data-first programming perspective further by exploring APIs, services and documents with self-generating .dll assemblies and Intellisense (a.k.a. the TypeProvider framework). We're not talking run-of-the-mill code-gen, but of a lazy way to completely resolve references to inferred structures and schema-based namespaces, giving your IDE+REPL the type-safe scaffolding and real-time magic required, so that your team can more rapidly solve business needs, using new data sources and services. Perhaps a pointed at schema is a rapidly changing work in progress, but you'd still like to derive value out of it, or you'd just like to reduce some discovery based friction -- there are a range of interesting applications.

We'll dig into the Type Provider approach and implementation, why it's a more robust way forward than using Roselyn for this class of problem, and how to get productive building your own Type Provider. Assuming that C# eventually gets a Type Provider feature, we'll go into why you might want to consider a multi-paradigm, functional-first language like F#, to express this kind of logic anyway, especially, if the work is available readily available to C# consumers, too, as F# is a first-class CLR language -- so it's just a matter of referencing a library via standard CLR interop. We'll cover some of what it means to be good CLR .NET citizen in this session, too. You might even go as far to say that Type Providers are a well-defined interface for introducing the benefits of functional programming to an established OO team.

Type Providers are cross-platform, and usable on Windows, Linux, and OSX through legacy, .NET Core, and .NET Standard.

INTERESTING APPLICATION: Data Lakes with schema-on-read and schema-on-write. i.e. what happens if structure permutations during ingest fare infinite? Reducing friction make a lot of sense in this cases like these. note: the schema can change in real-time.

* where anything includes, but is not limited to, the Interwebs, the IOTs, and the internet-of-internets.