Novidades do CSharp 4.0

1,248 views
1,164 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
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,248
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
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. 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 />

×