Download - Novidades do CSharp 4.0
![Page 1: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/1.jpg)
Novidades do .NET Framework 4.0 para o C#
Caio Proiete
http://netponto.org1ª Reunião Presencial PORTO - 27/03/2010
![Page 2: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/2.jpg)
Caio Proiete9 anos de experiência profissional em TIHá 3 anos em PortugalMicrosoft Most Valuable Professional 2009-2010Microsoft Certified Trainer desde 2004
http://caioproiete.com
![Page 3: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/3.jpg)
Agenda
• Evolução do .NET Framework• Novidades do C#• Programação Dinámica com C#• Melhorias no COM Interop• Questões (Q & A)
![Page 4: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/4.jpg)
Evolução do .NET Framework
.NET 1.0 .NET 1.1 .NET 2.0
3.0
3.5
.NET 4.0
2002 2003 2008 CTP2005-08
CLR 1.0 CLR 1.1 CLR 2.0 CLR 4.0
SP1
CLR = Common Language Runtime
![Page 5: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/5.jpg)
.NET Framework 1.0 até 3.5
Common Language Runtime
Linguagens Estáticas
C#VB
![Page 6: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/6.jpg)
.NET Framework 4.0
Common Language Runtime
C#VB
RubyPython
Linguagens Dinámicas
Dynamic Language Runtime
Linguagens Estáticas
![Page 7: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/7.jpg)
Ferramenta: Visual Studio 2010• Actualmente na versão Release
Candidate (RC)
• Download gratuito:http://bit.ly/vs2010rc
• Versão final (RTM) será lançadaem 12 de Abril de 2010
![Page 8: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/8.jpg)
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
![Page 9: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/9.jpg)
Argumentos Opcionais eArgumentos Nomeados
demonstração
Código-fonte disponível para download:http://netponto.codeplex.com/releases/view/42778#DownloadId=113396
![Page 10: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/10.jpg)
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)
![Page 11: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/11.jpg)
Covariance / Contravariance
demonstração
Código-fonte disponível para download:http://netponto.codeplex.com/releases/view/42778#DownloadId=113396
![Page 12: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/12.jpg)
Programação Dinámica no .NET
PythonBinder
RubyBinder
COMBinder
JScriptBinder
ObjectBinder
Dynamic Language Runtime
Expression Trees Dynamic Dispatch Call Site Caching
IronPython IronRuby C# VB.NET Outras…
![Page 13: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/13.jpg)
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
![Page 14: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/14.jpg)
Dynamic
demonstração
Código-fonte disponível para download:http://netponto.codeplex.com/releases/view/42778#DownloadId=113396
![Page 15: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/15.jpg)
Programação Dinámica no C#
• Nova classe ExpandoObject– Permite criar objectos dinámicos em tempo de
execução– Implementa a interface IDynamicMetaObjectProvider
![Page 16: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/16.jpg)
ExpandoObject
demonstração
Código-fonte disponível para download:http://netponto.codeplex.com/releases/view/42778#DownloadId=113396
![Page 17: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/17.jpg)
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
![Page 18: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/18.jpg)
DynamicObject
demonstração
Código-fonte disponível para download:http://netponto.codeplex.com/releases/view/42778#DownloadId=113396
![Page 19: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/19.jpg)
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
![Page 20: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/20.jpg)
Melhorias COM Interop
demonstração
Código-fonte disponível para download:http://netponto.codeplex.com/releases/view/42778#DownloadId=113396
![Page 21: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/21.jpg)
Questões?
![Page 22: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/22.jpg)
ReferênciasDynamic 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
![Page 23: Novidades do CSharp 4.0](https://reader033.vdocuments.pub/reader033/viewer/2022042623/5495c066ac7959092e8b4f34/html5/thumbnails/23.jpg)
DownloadDownload do código-fonte das demonstrações desta apresentação:
– http://netponto.codeplex.com/releases/view/42778#DownloadId=113396