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

Novidades do CSharp 4.0

Novidades do CSharp 4.0

Apresentação sobre as novidades do C# 4.0 no .NET Framework 4.0, realizada na 1ª Reunião da Comunidade NetPonto no Porto

C. Augusto Proiete

May 13, 2012
Tweet

More Decks by C. Augusto Proiete

Other Decks in Programming

Transcript

  1. Novidades do .NET Framework 4.0 para o C# Caio Proiete

    http://netponto.org 1ª Reunião Presencial PORTO - 27/03/2010
  2. Caio Proiete +9 anos de experiência profissional em TI Consultor

    da Novabase Formador da Ciclo Microsoft MVP, MCT http://caioproiete.net
  3. Agenda • Evolução do .NET Framework • Novidades do C#

    • Programação Dinámica com C# • Melhorias no COM Interop • Questões (Q & A)
  4. Evolução do .NET Framework .NET 1.0 .NET 1.1 .NET 2.0

    3.0 3.5 .NET 4.0 2002 2003 2008 CTP 2005-08 CLR 1.0 CLR 1.1 CLR 2.0 CLR 4.0 SP1 CLR = Common Language Runtime
  5. .NET Framework 4.0 Common Language Runtime C# VB Ruby Python

    Linguagens Dinámicas Dynamic Language Runtime Linguagens Estáticas
  6. Ferramenta: Visual Studio 2010 • Actualmente na versão Release Candidate

    (RC) • Download gratuito: http://bit.ly/vs2010rc • Versão final (RTM) será lançada em 12 de Abril de 2010
  7. Novidades do C# - Parte 1/2 • Argumentos Opcionais –

    Permite omitir argumentos ao chamar métodos, assumindo um valor padrão • Argumentos Nomeados – Permite informar o nome dos argumentos ao chamar métodos
  8. Novidades do C# - Parte 2/2 • Novidade para Generics!

    – Covariance • Permite conversões do tipo mais específico para o tipo mais genérico (Ex: Classe Derivada => Classe Base) – Contravariance • Permite conversões do tipo mais genérico para o tipo mais específico (Ex: Classe Base => Classe Derivada)
  9. Programação Dinámica no .NET Python Binder Ruby Binder COM Binder

    JScript Binder Object Binder Dynamic Language Runtime Expression Trees Dynamic Dispatch Call Site Caching IronPython IronRuby C# VB.NET Outras…
  10. Programação Dinámica no C# • Novo tipo dynamic – Resolução

    dinámica de métodos, propriedades, e eventos (em tempo de execução) – Não efectua validação estática
  11. Programação Dinámica no C# • Nova classe ExpandoObject – Permite

    criar objectos dinámicos em tempo de execução – Implementa a interface IDynamicMetaObjectProvider
  12. Programação Dinámica no C# • Nova classe DynamicObject – Facilita

    a criação de classes dinámicas (utilizada como classe base) – Também implementa a interface IDynamicMetaObjectProvider
  13. Melhorias no COM Interop • Agora é Opcional (o compilador

    faz por si): – Utilizar a palavra-chave ref na chamada de métodos – Efectuar casts de Value Types para object • Suporte a argumentos opcionais e nomeados • Agora pode-se incluir o assembly de Interop na aplicação
  14. Referências Dynamic Language Runtime Overview – http://msdn.microsoft.com/en-us/library/dd233052(VS.100).aspx Covariance and Contravariance

    FAQ – http://blogs.msdn.com/csharpfaq/archive/2010/02/16/covariance-and- contravariance-faq.aspx Dynamic in C# 4.0: Creating Wrappers with DynamicObject – http://blogs.msdn.com/csharpfaq/archive/2009/10/19/dynamic-in-c-4-0- creating-wrappers-with-dynamicobject.aspx