Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Novidades do CSharp 4.0

1,320 views

Published on

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

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Novidades do CSharp 4.0

  1. 1. http://netponto.org<br />1ª Reunião Presencial PORTO - 27/03/2010<br />Novidades do .NET Framework 4.0 para o C#Caio Proiete<br />
  2. 2. Patrocinadores desta reunião<br />
  3. 3. Caio Proiete<br />+9 anos de experiência profissional em TI<br />Consultor da Novabase<br />Formador da Ciclo<br />Microsoft MVP, MCT<br />http://caioproiete.net<br />
  4. 4. Agenda<br />Evolução do .NET Framework<br />Novidades do C#<br />Programação Dinámica com C#<br />Melhorias no COM Interop<br />Questões (Q & A)<br />
  5. 5. Evolução do C#<br />C# 4.0<br />Dynamic<br />C# 3.0<br />LINQ<br />C# 2.0<br />Generics<br />C# 1.0/1.1<br />Managed Code<br />
  6. 6. Evolução do .NET Framework<br />CLR = Common Language Runtime<br />SP1<br />3.5<br />3.0<br />.NET 1.0<br />.NET 1.1<br />.NET 2.0<br />.NET 4.0<br />2002<br />2003<br />2008 CTP<br />2005-08<br />CLR 1.0<br />CLR 1.1<br />CLR 2.0<br />CLR 4.0<br />
  7. 7. .NET Framework 1.0 até 3.5<br />LinguagensEstáticas<br />VB<br />C#<br />Common Language Runtime<br />
  8. 8. .NET Framework 4.0<br />LinguagensDinámicas<br />Ruby<br />Python<br />LinguagensEstáticas<br />VB<br />Dynamic Language Runtime<br />C#<br />Common Language Runtime<br />
  9. 9. Ferramenta: Visual Studio 2010<br />Actualmente na versão Release Candidate (RC)<br />Download gratuito:http://bit.ly/vs2010rc<br />Versão final (RTM) será lançadaem 12 de Abril de 2010<br />
  10. 10. Novidades do C# - Parte 1/2<br />Argumentos Opcionais<br />Permite omitir argumentos ao chamar métodos, assumindo um valor padrão<br />Argumentos Nomeados<br />Permite informar o nome dos argumentos ao chamar métodos<br />
  11. 11. ArgumentosOpcionaiseArgumentosNomeados<br />demonstração<br />Código-fontedisponívelpara download:<br />http://netponto.codeplex.com/releases/view/42778#DownloadId=113396<br />
  12. 12. Novidades do C# - Parte 2/2<br />Novidade para Generics!<br />Covariance<br />Permite conversões do tipo mais específico para o tipo mais genérico (Ex: Classe Derivada => Classe Base)<br />Contravariance<br />Permite conversões do tipo mais genérico para o tipo mais específico (Ex: Classe Base => Classe Derivada)<br />
  13. 13. Covariance / Contravariance<br />demonstração<br />Código-fontedisponívelpara download:<br />http://netponto.codeplex.com/releases/view/42778#DownloadId=113396<br />
  14. 14. Programação Dinámica no .NET<br />IronPython<br />IronRuby<br />C#<br />VB.NET<br />Outras…<br />Dynamic Language Runtime<br />Expression Trees<br />Dynamic Dispatch<br />Call Site Caching<br />PythonBinder<br />RubyBinder<br />COMBinder<br />JScriptBinder<br />ObjectBinder<br />
  15. 15. Programação Dinámica no C#<br />Novo tipo dynamic<br />Resolução dinámica de métodos, propriedades, e eventos (em tempo de execução)<br />Não efectua validação estática<br />
  16. 16. Dynamic<br />demonstração<br />Código-fontedisponívelpara download:<br />http://netponto.codeplex.com/releases/view/42778#DownloadId=113396<br />
  17. 17. Programação Dinámica no C#<br />Nova classe ExpandoObject<br />Permite criar objectos dinámicos em tempo de execução<br />Implementa a interface IDynamicMetaObjectProvider<br />
  18. 18. ExpandoObject<br />demonstração<br />Código-fontedisponívelpara download:<br />http://netponto.codeplex.com/releases/view/42778#DownloadId=113396<br />
  19. 19. Programação Dinámica no C#<br />Nova classe DynamicObject<br />Facilita a criação de classes dinámicas (utilizada como classe base)<br />Também implementa a interface IDynamicMetaObjectProvider<br />
  20. 20. DynamicObject<br />demonstração<br />Código-fontedisponívelpara download:<br />http://netponto.codeplex.com/releases/view/42778#DownloadId=113396<br />
  21. 21. Melhorias no COM Interop<br />Agora é Opcional (o compilador faz por si):<br />Utilizar a palavra-chave refna chamada de métodos<br />Efectuar casts de Value Types para object<br />Suporte a argumentos opcionais e nomeados<br />Agora pode-se incluir o assembly de Interop na aplicação<br />
  22. 22. Melhorias COM Interop<br />demonstração<br />Código-fontedisponívelpara download:<br />http://netponto.codeplex.com/releases/view/42778#DownloadId=113396<br />
  23. 23. Questões?<br />
  24. 24. Referências<br />Dynamic Language Runtime Overview<br />http://msdn.microsoft.com/en-us/library/dd233052(VS.100).aspx<br />Covariance and ContravarianceFAQ<br />http://blogs.msdn.com/csharpfaq/archive/2010/02/16/covariance-and-contravariance-faq.aspx<br />Dynamic in C# 4.0: Creating Wrappers with DynamicObject<br />http://blogs.msdn.com/csharpfaq/archive/2009/10/19/dynamic-in-c-4-0-creating-wrappers-with-dynamicobject.aspx<br />
  25. 25. Download<br />Download do código-fonte das demonstraçõesdestaapresentação:<br />http://netponto.codeplex.com/releases/view/42778#DownloadId=113396<br />
  26. 26. Patrocinadores desta reunião<br />
  27. 27. Obrigado!<br />Caio Proiete<br />caio@netponto.org<br />http://caioproiete.net<br />http://twitter.com/caioproiete<br />

×