Novidades do CSharp 4.0

1,261 views
1,210 views

Published on

Apresentação sobre as novas funcionalidades do CSharp 4, adicionadas no .NET Framework 4.0, com demonstrações práticas de utilização de cada uma destas funcionalidades, na 1ª Reunião Presencial da Comunidade NetPonto, no Porto

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,261
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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. Caio Proiete<br />9 anos de experiência profissional em TI<br />Há 3 anos em Portugal<br />Microsoft Most Valuable Professional 2009-2010<br />Microsoft Certified Trainer desde 2004<br />http://caioproiete.com<br />
  3. 3. 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 />
  4. 4. 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 />
  5. 5. 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 />
  6. 6. .NET Framework 1.0 até 3.5<br />LinguagensEstáticas<br />VB<br />C#<br />Common Language Runtime<br />
  7. 7. .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 />
  8. 8. 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 />
  9. 9. 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 />
  10. 10. ArgumentosOpcionaiseArgumentosNomeados<br />demonstração<br />
  11. 11. 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 />
  12. 12. Covariance / Contravariance<br />demonstração<br />
  13. 13. 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 />
  14. 14. 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 />
  15. 15. Dynamic<br />demonstração<br />
  16. 16. 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 />
  17. 17. ExpandoObject<br />demonstração<br />
  18. 18. 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 />
  19. 19. DynamicObject<br />demonstração<br />
  20. 20. 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 />
  21. 21. Melhorias COM Interop<br />demonstração<br />
  22. 22. Questões?<br />
  23. 23. 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 />
  24. 24. Patrocinadores desta reunião<br />
  25. 25. Obrigado!<br />Caio Proiete<br />caio.proiete@gmail.com<br />http://caioproiete.com<br />http://twitter.com/caioproiete<br />

×