A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Developer Day 2011
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Developer Day 2011

on

  • 5,717 views

No dia 30/01/2011, eu apresentei o Webcast A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4, 5) no Virtual Developer Day 2011, evento organizado pela comunidade .NET Interior com apoio da ...

No dia 30/01/2011, eu apresentei o Webcast A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4, 5) no Virtual Developer Day 2011, evento organizado pela comunidade .NET Interior com apoio da Microsoft - CEA/MSDN, Silverlight Brasil, Silverlight Planet e Codificando.NET.

O objetivo da apresentação foi dar uma visão geral da evolução da linguagem C# desde a versã0 1.0 até a versão atual 4 e do futuro da linguagem na versão 5, que por enquanto está em fase de desenvolvimento pela Microsoft.

Statistics

Views

Total Views
5,717
Views on SlideShare
3,458
Embed Views
2,259

Actions

Likes
0
Downloads
47
Comments
0

4 Embeds 2,259

http://rogeriomc.wordpress.com 2222
https://rogeriomc.wordpress.com 35
http://translate.googleusercontent.com 1
url_unknown 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

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

A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Developer Day 2011 Presentation Transcript

  • 1. A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4, 5) (30/01/2011) Rogério Moraes de Carvalho Consultor e Instrutor de Tecnologias da Informação Twitter: @rogeriomc Virtual Developer Day.NET Interior | Microsoft - CEA/MSDN | Silverlight Brasil | Silverlight Planet | Codificando .NET
  • 2. Evolução da linguagem C# Programação assíncrona, C# 5 compilador como um serviço, ... (2012?) Objetos tipados dinamicamente, C# 4 parâmetros opcionais e nomeados, (Abr 2010) covariância e contravariância, … Language Integrated Query (LINQ), C# 3.0 expressões Lambda, métodos de (Nov 2007) extensão, tipos anônimos, ... Generics, Iterators, tipos parciais, tipos anuláveis, C# 2.0 classes estáticas, métodos anônimos, ... (Nov 2005) Código gerenciado, linguagem de POO, suporte nativo aC# 1.0 propriedades e eventos, documentação XML, exceções,(Fev 2002) segurança de tipos, delegates, sobrecarga de operadores, ... Virtual Developer Day 2011 | .NET Interior
  • 3. C# 1.0• Criada do zero para o .NET Framework 1.0• Algumas características da linguagem – Linguagem de POO de tipos seguros – Suporta tipos por valor e por referência • Estruturas, enumerações, classes, interfaces, delegates e arrays – Código gerenciado (com coletor de lixo) – Várias categorias de membros em alguns tipos • Campos, métodos, propriedades, eventos, ... Virtual Developer Day 2011 | .NET Interior
  • 4. C# 2.0• Principais facilidades introduzidas – Iterators • Permite que o compilador gere automaticamente código que implementa um dos seguintes tipos: – IEnumerable, IEnumerator – IEnumerable<T>, IEnumerator<T> • Instruções yield return ou yield break – Métodos anônimos • Facilita a instanciação de delegates evitando a necessidade da criação de métodos separados Virtual Developer Day 2011 | .NET Interior
  • 5. C# 3.0• Principal facilidade introduzida – Language INtegrated Query (LINQ) • Conjunto de tecnologias para permitir a integração de capacidades de consulta diretamente para a linguagem C# • Facilita a escrita de códigos para: – ordenar, – filtrar, – juntar, – agrupar e – agregar dados de fontes de dados variadas Virtual Developer Day 2011 | .NET Interior
  • 6. C# 4• Principal facilidade introduzida – Tipos dinâmicos • Operações em tipos dinâmicos são ignoradas na checagem de tipo em tempo de compilação • As operações são resolvidas em tempo de execução • Introdução da palavra-chave dynamic • Ambiente de execução que adiciona um conjunto de serviços para linguagens dinâmicas no CLR – Dynamic Language Runtime (DLR) Virtual Developer Day 2011 | .NET Interior
  • 7. Programação síncrona• Características da programação síncrona – Uma thread simples é usada para o processamento do fragmento de código – Cada membro de função executado precisa terminar o seu processamento para que um próximo seja executado Virtual Developer Day 2011 | .NET Interior
  • 8. Demo Síncrono Virtual Developer Day 2011 | .NET Interior
  • 9. Programação assíncrona• Características da programação assíncrona – Tarefas distintas são divididas entre duas ou mais threads que processam blocos de código simultaneamente • Ou, pelo menos, dividindo tempo do processador – Um membro de função executado não precisa terminar o seu processamento para que um próximo seja executado Virtual Developer Day 2011 | .NET Interior
  • 10. APM• Asynchronous Programming Model (APM) – Primeiro padrão de programação assíncrona introduzido no .NET Framework 1.0 – Versão assíncrona de NomeMetodo • Método BeginNomeMetodo – Inicia a operação assíncrona e retorna um objeto que implementa a interface IAsyncResult – Inclui os parâmetros da versão síncrona do método e outros dois: delegate AsyncCallback e objeto de estado • Método EndNomeMetodo – Finaliza a operação assíncrona e pode retornar um valor Virtual Developer Day 2011 | .NET Interior
  • 11. EAP• Event-based Asynchronous Pattern (EAP) – Segundo padrão de programação assíncrona introduzido no .NET Framework 2.0 – Versão assíncrona de NomeMetodo • Método NomeMetodoAsync – Inicia uma operação assíncrona • Evento NomeMetodoCompleted – Evento para sinalizar a finalização da operação assíncrona Virtual Developer Day 2011 | .NET Interior
  • 12. TAP• Task-based Asynchronous Pattern (TAP) – Novo padrão para programação assíncrona – Baseado nos tipos Task e Task<TResult> do namespace System.Threading.Tasks • Usados para representar operações assíncronas – Tipo Task: representa uma operação assíncrona sem um resultado – Tipo Task<TResult>: representa uma operação assíncrona com um resultado do tipo TResult Virtual Developer Day 2011 | .NET Interior
  • 13. TAP• Versão assíncrona de um método com TAP – Nomenclatura (um único método) • Método NomeMetodoAsync (sufixo Async) – Parâmetros • Mesmos parâmetros na mesma ordem – Parâmetros de saída (out) e por referência (ref) devem ser evitados – Tipo de retorno • Tipo Task, se o método for void • Tipo Task<TipoRetorno>, se o método não for void Virtual Developer Day 2011 | .NET Interior
  • 14. Async CTP• Visual Studio Async CTP (PDC - 28/10/2010) – Community Tecnology Preview das novas características para simplificar a programação assíncrona em C# e Visual Basic • Projetado para o Visual Studio 2010 RTM – Suporta a nova sintaxe e APIs para desenvolvimento assíncrono – Download • http://go.microsoft.com/fwlink/?LinkId=203690 Virtual Developer Day 2011 | .NET Interior
  • 15. C# 5• Principal facilidade a ser introduzida – Funções assíncronas • Novas palavras-chaves: async e await – A palavra-chave await é usada para marcar chamadas assíncronas » Dispensa a necessidade de se criar funções de callback – A palavra-chave async deve estar presente na assinatura de funções que fazem chamadas assíncronas » A palavra-chave await somente pode ser usada se a palavra-chave async na assinatura da função Virtual Developer Day 2011 | .NET Interior
  • 16. C# 5• Características das funções assíncronas – Tipos de retorno das funções assíncronas • Deve ser void, Task ou Task<TResult> – Avaliação de funções assíncronas • Inicialmente idêntica a uma função síncrona • Quando atinge uma expressão await, a função assíncrona deve retornar ao seu chamador – Se a função assíncrona não for void, um objeto Task ou Task<TResult> será retornado para o chamador Virtual Developer Day 2011 | .NET Interior
  • 17. Demo async e await (C# 5) Virtual Developer Day 2011 | .NET Interior
  • 18. Contatos• E-mail rogeriom@gmx.net• Blog http://rogeriomc.wordpress.com/• Twitter @rogeriomc Virtual Developer Day 2011 | .NET Interior
  • 19. Virtual Developer Day.NET Interior | Microsoft - CEA/MSDN | Silverlight Brasil | Silverlight Planet | Codificando .NET Virtual Developer Day 2011 | .NET Interior