venerdì 7 ottobre 2016 ore 11:50 / 12:50

NET08 - Estendere C# con Roslyn

Community Days 2016 - Decimo anno

Speaker: Carlo Pescio

Livello: 300

Dove: Sala 2 (Teatro 4)

Scrivere una libreria è un po' come estendere il linguaggio. Tuttavia chi realizza una librerie ha meno libertà e potenza espressiva rispetto a chi progetta un linguaggio: il linguaggio sottostante impone limiti, sia in ciò che è possibile definire che nei vincoli esprimibili. Ad esempio, in C# è possibile vincolare i parametri di una classe generica ad essere a loro volta classi, ma non possiamo vincolarli ad essere interfacce.
Attraverso Roslyn (la nuova tecnologia alla base dei compilatori Microsoft), chi crea una libreria può ora includere degli analizzatori compile-time, creando una cosiddetta Code-Aware Library. L'analizzatore custom può implementare logiche complesse, di fatto estendendo i vincoli esprimibili con il normale type system.
In questo talk parleremo sia della tecnologia delle Code-Aware Libraries che di un loro utilizzo avanzato, estendendo il C# con un costrutto di cross-cast tra interfacce completamente type-safe.