novidades do csharp 4.0

Post on 18-Dec-2014

1.139 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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?

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

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

Obrigado!

Caio Proietecaio.proiete@gmail.comhttp://caioproiete.comhttp://twitter.com/caioproiete

top related