Upgrade to Pro — share decks privately, control downloads, hide ads and more …

F#’s Type Providers: The future of meta-programming in .NET

F#’s Type Providers: The future of meta-programming in .NET

Robert Pickering

May 16, 2014
Tweet

More Decks by Robert Pickering

Other Decks in Programming

Transcript

  1. View Slide

  2. View Slide

  3. View Slide

  4. View Slide

  5. new System.Data.DataSet()

    View Slide

  6. View Slide

  7. type User =
    { [JsonProperty(PropertyName =
    "user_name")]
    Username: string
    [JsonProperty(PropertyName =
    "first_name")]
    FirstName: string
    [JsonProperty(PropertyName =
    "last_name")]
    LastName: string }

    View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. type ITypeProvider =
    inherit IDisposable
    abstract GetStaticParameters:
    Type -> ParameterInfo []
    abstract ApplyStaticArguments:
    Type * string * obj [] -> Type
    abstract GetNamespaces:
    unit -> IProvidedNamespace []
    abstract GetInvokerExpression:
    MethodBase * ParameterExpression [] ->
    Expression
    abstract GetGeneratedAssemblyContents:
    System.Reflection.Assembly -> byte[]
    abstract Invalidate:
    IEvent

    View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. View Slide

  18. @dsyme
    @brandewinder
    @Oenotria

    View Slide

  19. View Slide

  20. http://fsharpworks.com/paris/2014.html

    View Slide

  21. View Slide