Your SlideShare is downloading. ×
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
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

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

5,537
views

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 …

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,537
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
58
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

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