Novidades do CSharp 4.0
-
Upload
comunidade-netponto -
Category
Technology
-
view
1.139 -
download
1
description
Transcript of Novidades do CSharp 4.0
Novidades do .NET Framework 4.0 para o C#
Caio Proiete
http://netponto.org1ª Reunião Presencial PORTO - 27/03/2010
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
Agenda
• Evolução do .NET Framework• Novidades do C#• Programação Dinámica com C#• Melhorias no COM Interop• Questões (Q & A)
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
.NET Framework 1.0 até 3.5
Common Language Runtime
Linguagens Estáticas
C#VB
.NET Framework 4.0
Common Language Runtime
C#VB
RubyPython
Linguagens Dinámicas
Dynamic Language Runtime
Linguagens Estáticas
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
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
Argumentos Opcionais eArgumentos Nomeados
demonstração
Código-fonte disponível para download:http://netponto.codeplex.com/releases/view/42778#DownloadId=113396
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)
Covariance / Contravariance
demonstração
Código-fonte disponível para download:http://netponto.codeplex.com/releases/view/42778#DownloadId=113396
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…
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
Dynamic
demonstração
Código-fonte disponível para download:http://netponto.codeplex.com/releases/view/42778#DownloadId=113396
Programação Dinámica no C#
• Nova classe ExpandoObject– Permite criar objectos dinámicos em tempo de
execução– Implementa a interface IDynamicMetaObjectProvider
ExpandoObject
demonstração
Código-fonte disponível para download:http://netponto.codeplex.com/releases/view/42778#DownloadId=113396
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
DynamicObject
demonstração
Código-fonte disponível para download:http://netponto.codeplex.com/releases/view/42778#DownloadId=113396
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
Melhorias COM Interop
demonstração
Código-fonte disponível para download:http://netponto.codeplex.com/releases/view/42778#DownloadId=113396
Questões?
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
DownloadDownload do código-fonte das demonstrações desta apresentação:
– http://netponto.codeplex.com/releases/view/42778#DownloadId=113396
Obrigado!
Caio [email protected]://caioproiete.comhttp://twitter.com/caioproiete