A evolução e o futuro da            linguagem C# (1.0, 2.0, 3.0, 4, 5)            (30/01/2011)             Rogério Moraes ...
Evolução da linguagem C#                                     Programação assíncrona,                       C# 5          c...
C# 1.0• Criada do zero para o .NET Framework 1.0• Algumas características da linguagem  – Linguagem de POO de tipos seguro...
C# 2.0• Principais facilidades introduzidas  – Iterators     • Permite que o compilador gere automaticamente       código ...
C# 3.0• Principal facilidade introduzida  – Language INtegrated Query (LINQ)     • Conjunto de tecnologias para permitir a...
C# 4• Principal facilidade introduzida  – Tipos dinâmicos     • Operações em tipos dinâmicos são ignoradas na       checag...
Programação síncrona• Características da programação síncrona  – Uma thread simples é usada para o    processamento do fra...
Demo Síncrono  Virtual Developer Day 2011 | .NET Interior
Programação assíncrona• Características da programação assíncrona  – Tarefas distintas são divididas entre duas ou    mais...
APM• Asynchronous Programming Model (APM)  – Primeiro padrão de programação assíncrona    introduzido no .NET Framework 1....
EAP• Event-based Asynchronous Pattern (EAP)  – Segundo padrão de programação assíncrona    introduzido no .NET Framework 2...
TAP• Task-based Asynchronous Pattern (TAP)  – Novo padrão para programação assíncrona  – Baseado nos tipos Task e Task<TRe...
TAP• Versão assíncrona de um método com TAP  – Nomenclatura (um único método)    • Método NomeMetodoAsync (sufixo Async)  ...
Async CTP• Visual Studio Async CTP (PDC - 28/10/2010)  – Community Tecnology Preview das novas    características para sim...
C# 5• Principal facilidade a ser introduzida  – Funções assíncronas     • Novas palavras-chaves: async e await        – A ...
C# 5• Características das funções assíncronas  – Tipos de retorno das funções assíncronas     • Deve ser void, Task ou Tas...
Demo async e await (C# 5)       Virtual Developer Day 2011 | .NET Interior
Contatos• E-mail  rogeriom@gmx.net• Blog  http://rogeriomc.wordpress.com/• Twitter  @rogeriomc            Virtual Develope...
Virtual Developer Day.NET Interior | Microsoft - CEA/MSDN | Silverlight Brasil | Silverlight Planet | Codificando .NET    ...
Upcoming SlideShare
Loading in...5
×

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

5,879

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
5,879
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
69
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 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. 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. 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. 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. 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. 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. 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. 8. Demo Síncrono Virtual Developer Day 2011 | .NET Interior
  9. 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. 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. 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. 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. 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. 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. 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. 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. 17. Demo async e await (C# 5) Virtual Developer Day 2011 | .NET Interior
  18. 18. Contatos• E-mail rogeriom@gmx.net• Blog http://rogeriomc.wordpress.com/• Twitter @rogeriomc Virtual Developer Day 2011 | .NET Interior
  19. 19. Virtual Developer Day.NET Interior | Microsoft - CEA/MSDN | Silverlight Brasil | Silverlight Planet | Codificando .NET Virtual Developer Day 2011 | .NET Interior
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×