Transcript
Page 1: 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

Page 2: Novidades do CSharp 4.0

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

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

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

.NET Framework 1.0 até 3.5

Common Language Runtime

Linguagens Estáticas

C#VB

Page 6: Novidades do CSharp 4.0

.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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Questões?

Page 23: Novidades do CSharp 4.0

DownloadDownload do código-fonte das demonstrações desta apresentação:

– http://netponto.codeplex.com/releases/view/42778#DownloadId=113396

Page 25: Novidades do CSharp 4.0

Obrigado!

Caio [email protected]://caioproiete.comhttp://twitter.com/caioproiete


Top Related