Community Launch 2010 - Novos recursos C# 4.0
Upcoming SlideShare
Loading in...5
×
 

Community Launch 2010 - Novos recursos C# 4.0

on

  • 992 views

Palestra sobre os novos recursos do C# 4.0 ministrada no evento Community Launch 2010 realizado em Piracicaba.

Palestra sobre os novos recursos do C# 4.0 ministrada no evento Community Launch 2010 realizado em Piracicaba.

Statistics

Views

Total Views
992
Views on SlideShare
981
Embed Views
11

Actions

Likes
1
Downloads
11
Comments
0

1 Embed 11

http://www.felipeprata.com.br 11

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Community Launch 2010 - Novos recursos C# 4.0 Community Launch 2010 - Novos recursos C# 4.0 Presentation Transcript

  • Novos recursos do C# 4.0 Felipe Prata L. Borges
  • Felipe Prata L. Borges
    • Analista desenvolvedor .NET
    • Consultor .NET
    • Ministra aulas do curso de certificação .NET
    • Contatos:
    • Email: [email_address]
    • MSN: [email_address]
    • Skype: felipe.prabor
    • http://twitter.com/felipe_prabor
  • Evolução do C# Início do C# C# 1.0 (Fev. 2002) Criação de uma nova linguagem para trabalhar diretamente com a nova plataforma que surgia, plataforma .NET. Código gerenciado, linguagem de POO, documentação XML, suporte nativo a propriedades e eventos, exceções, segurança de tipos... C# 2.0 (Nov. 2005) Generics , Interators , tipos parciais, tipos anuláveis, classes estáticas, métodos anônimos... C# 3.0 (Nov. 2007) LINQ ( Language Integrated Query ), expressões Lambda, métodos de extensão, tipos anônimos, propriedades automáticas... C# 4.0 (Nov. 2007) Dinamismo com DLR do .net, argumentos opcionais e nomeados, interoperabilidade com COM melhorada, covariância e contravariância...
  • Novidades do C# 4.0
    • Análise
      • Inspirada pelas linguagens dinâmicas como Ruby e Python;
      • Produtividade e interoperabilidade para facilitar a vida dos desenvolvedores;
      • Lado a lado com VB.
    • Novos Recursos
      • Programação dinâmica;
      • Parâmetros opcionais e nomeados;
      • Interoperabilidade facilitada com COM;
      • Covariância e contra-variância.
  •  
  • Programação dinâmica Novo tipo dynamic !
    • Pode ser tudo: variável, propriedade, retorno de métodos, parâmetros, etc;
    • Tipos dinâmicos são do tipo System.Object;
    • Tipos dinâmicos são estáticos como os outros tipos, porém ignora a verificação estática;
  • Programação dinâmica
  • Programação dinâmica
    • DLR (Dynamic Language Runtime - http://dlr.codeplex.com)
      • Parte do .NET framework 4.0, é responsável por fazer a interpretação dos tipos dynamic e pela integração com as linguagens dinâmicas Ruby e Python;
    • Iron (Implementation Running On .NET)
      • IronRuby e IronPython : linguagens adaptadas para rodar Ruby e Python no runtime do .NET;
  • Programação dinâmica
  • Programação dinâmica
  • Programação dinâmica Demonstração: Descrição do tipo dynamic Como eu disse, ele pode TUDO!
  • Programação dinâmica Demonstração:
  •  
  • Argumentos opcionais e nomeados
    • Argumentos opcionais
      • Permite criação de métodos com argumentos não obrigatórios;
      • Evita excesso de métodos para sobrecarga.
    • Argumentos nomeados
      • Permite chamada de métodos especificando pelo nome do parâmetro cada argumento passado;
      • Útil quando utilizado em conjunto com os argumentos opcionais.
  • Argumentos opcionais Antes:
  • Argumentos opcionais Agora : (beeeeeeeem melhor!!!)
  • Argumentos opcionais
  • Argumentos opcionais Regras de utilização:
  • Argumentos nomeados
    • Os argumentos nomeados podem ser declarados em qualquer ordem e qualquer tipo de argumento pode ser nomeado, seja ele opcional ou não.
  • Argumentos opcionais e nomeados Vantagens Desvantagens Simplicidade Criação de métodos com excesso de parâmetros. Código mais limpo Alterar ordem de parâmetros na chamada dos métodos Métodos com definição mais clara -
  •  
  • Interoperabilidade com COM
    • Utilização de tipos dinâmicos;
      • Antes sempre quando usava componentes COM era necessário fazer o cast para Object.
    • Utilização de parâmetros opcionais e nomeados;
      • Passa-se somente o necessário na chamada dos métodos.
    • Omissão da palavra-chave ref;
      • Compilador insere os ref automaticamente e cria variáveis temporárias para cada um dos parâmetros.
    • Mesclar dll Interop com a dll do projeto.
  • Interoperabilidade com COM
      • Antes
      • Depois
    • Parâmetros e retornos dos métodos do tipo dynamic .
    excel.Cells[1,1].Value = “Hello”; Excel.Range range = excel.Cells[1,1]; ((Excel.Range)excel.Cells[1,1]).Value = “Hello”; Excel.Range range = (Excel.Range)excel.Cells[1,1];
  • Interoperabilidade com COM
    • Omissão dos ref e utilização de parâmetros nomeados e opcionais:
      • Antes
      • Depois
  • Interoperabilidade com COM Assembly do interop é colocado junto com a dll do projeto:
  •  
  • Covariância e Contra-variância
    • Definição em programação:
      • Variância é uma “operação” que controla a alteração de tipos.
      • Covariância são alterações nos tipos do mais específico para o mais genérico.
      • Contra-variância são alterações nos tipos do mais genérico para o mais específico.
  • Covariância e Contra-variância
    • Arrays em .NET são covariantes
    MAS NEM TANTO!! Erro em runtime
  • Covariância e Contra-variância
    • Os genéricos nem compilam
    Erro de compilação!!!
  • Covariância e Contra-variância
    • O IEnumerable<T> funciona!!!!
    • - Isso é possível porque na verdade no IEnumerable os tipos são apenas lidos e iterados, então por ser somente leitura não acusa problema no compilador.
    • Diferente do IList que executa ações sobre o tipo passado. Como os métodos IndexOf, insert e outros.
  • Covariância e Contra-variância
    • Exemplo de contra-variância:
    Delegate com Pessoa, tipo mais Genérico Passado para o tipo mais específico.
  • Covariância e Contra-variância
    • Agora a covariância e contra-variância para delegates e tipos genéricos possui as palavras-chave in e out :
  • Fontes
    • http://www.codeproject.com/KB/cs/CSharp4Features.aspx
    • http://www.brasildotnet.net/
    • http://unplugged.giggio.net
    • http://viniciusquaiato.com/
    • http://msmvps.com/blogs/jon_skeet/archive/2009/06/19/os-jam-at-google-london-c-4-and-the-dlr.aspx
    • http://blogs.msdn.com/cburrows/archive/2008/10/27/c-dynamic.aspx
    • http://msdn.microsoft.com/pt-br/magazine/ee336029.aspx
    • http://msdn.microsoft.com/en-us/vcsharp/ee672319.aspx
    • http://www.pontonetpt.com/
  • PERGUNTAS