.NET Framework, C#, JavaScript, Microsoft Tech·Ed

TechEd Brasil 2011: WEB 302 – Presente e futuro da linguagem de programação JavaScript

Minha segunda palestra no TechEd Brasil 2011

No dia 29/09/2011, das 18h40min às 19h50min, eu apresentei a palestra WEB 302 – Presente e futuro da linguagem de programação JavaScript no evento TechEd Brasil 2011. O TechEd é o maior e mais completo evento técnico realizado pela Microsoft no Brasil.

Apresentação teórica

Nesta palestra, eu apresentei uma introdução à linguagem de programação JavaScript, sua evolução, sua padronização de acordo com a especificação ECMA-262 (linguagem ECMAScript), principais usos da linguagem, alguns dos principais conceitos da linguagem, programação orientada a objetos com JavaScript e algumas das novidades da ECMAScript 5. Além disto, eu também apresentei estatísticas de uso dos 5 principais browsers da atualidade e o suporte dos principais browsers do mercado ao ECMAScript 5.

Considerações finais

  • JavaScript é uma linguagem de programação simples, poderosa e flexível
  • Pesquise códigos de bibliotecas
    • Analise os códigos de implementação das suas bibliotecas JavaScript favoritas
  • Teste seus códigos JavaScript nos principais browsers
    • Microsoft Internet Explorer, Mozilla Firefox, Google Chrome, Apple Safari, Opera, …
  • Aprenda sobre as novidades da ECMAScript 5
    • Considere optar pelo modo estrito

Slides da apresentação

Demonstração realizada na apresentação

Durante a apresentação, eu fiz uma demonstração sobre a linguagem JavaScript e algumas das principais novidades da ECMAScript 5. A demonstração foi realizada com o Microsoft Visual Studio 2010.

O código da demonstração pode ser baixado em:
Demonstração WEB302 realizada no TechEd Brasil 2011

Vídeo da apresentação

A apresentação da minha palestra foi gravada durante o evento, porém eu não sei se o vídeo será disponibilizado para o público. Se for, eu estarei atualizando este post com o link para baixar ou assistir ao vídeo sob demanda.

.NET Framework, C#, Evento, LINQ, Microsoft, Microsoft Tech·Ed, Visual Studio

TechEd Brasil 2011: DEV 303 – Atualizando suas habilidades de programação com a linguagem C# para ser um desenvolvedor mais efetivo

Minha primeira palestra no TechEd Brasil 2011

No dia 29/09/2011, das 17h10min às 18h20min, eu apresentei a palestra DEV 303 – Atualizando suas habilidades de programação com a linguagem C# para ser um desenvolvedor mais efetivo no evento TechEd Brasil 2011. O TechEd é o maior e mais completo evento técnico realizado pela Microsoft no Brasil.

Apresentação teórica

Nesta palestra, eu apresentei uma visão geral da evolução da linguagem de programação C# desde o lançamento da versão 1.0, em fevereiro de 2002, até a versão 4, em março de 2010.

Depois, eu também apresentei a principal novidade da linguagem C# 5: suporte direto da linguagem à programação assíncrona. Este novo recurso permite que o desenvolvedor realize programação assíncrona de modo similar à programação síncrona. Além disto, eu também comentei sobre as principais novidades esperadas para a versão posterior (C# 6?), que atualmente é conhecida pelo nome de projeto Roslyn.

Abaixo, seguem os tópicos que foram abordados de cada versão da linguagem C#.

Linguagem C# 1.0

  • A evolução da linguagem C#
    Cronograma dos lançamentos das versões da linguagem C#.
  • Sistema de tipos
    Tipos por valor, tipos por referência e sistema unificado de tipos.
  • Memória e instruções
    Gerenciamento automático de memória e instruções inspiradas em C/C++ e Java.
  • Herança e membros de classe
    Suporte a herança simples e membros possíveis em classes.
  • Atributos e outros recursos
    Atributos, namespaces, assemblies e versionamento.

Novidades da linguagem C# 2.0

  • Generics e Iterators
  • Tipos parciais e tipos anuláveis
  • Métodos anônimos e qualificador de apelidos de namespace
  • Classes estáticas e possibilidade de definir diferentes níveis de acesso nos métodos de leitura e escrita de uma propriedade

Novidades da linguagem C# 3.0

  • Tipos implícitos em variáveis locais
  • Métodos de extensão
  • Tipos anônimos
  • Iniciadores de objetos
  • Iniciadores de coleções
  • Métodos parciais
  • Propriedades automáticas
  • Expressões lambda
  • Árvores de expressão
  • Expressões de consulta
  • LINQ (Language INtegrated Query)

Novidades da linguagem C# 4

  • Parâmetros opcionais e nomeados
  • Interoperabilidade com COM
  • Objetos com tipagem dinâmica
  • Covariância e contravariância

Novidades da linguagem C# 5

  • Task-based Asynchronous Pattern (TAP)
  • Versão assíncrona via TAP
  • Funções assíncronas
  • Windows Runtime
  • async e await

Projeto Roslyn (C# 6?)

  • Compiler-as-a-Service (CaaS)
  • APIs para o CaaS

Resumo

A evolução da linguagem C#

  • C# 1.0 em fevereiro de 2002 (.NET Framework 1.0 / Visual Studio .NET)
  • C# 2.0 em novembro de 2005 (.NET Framework 2.0 / Visual Studio 2005)
  • C# 3.0 em novembro de 2007 (.NET Framework 3.5 / Visual Studio 2008)
  • C# 4 em abril de 2010 (.NET Framework 4 / Visual Studio 2010)
  • C# 5 em 2012 (.NET Framework 4.5 / Visual Studio 11)
    • Suporte ao Windows Runtime
    • Facilidade na programação assíncrona
  • Projeto Roslyn
    • Compiler-as-a-Service (CaaS)
    • Visual Studio Roslyn CTP
      • Previsão: meados de outubro/2011

Slides da apresentação

Demonstração realizada na apresentação

Durante a apresentação, eu fiz uma demonstração sobre as facilidades incorporadas à linguagem C# 5 para programação assíncrona com as novas palavras-chaves: async e await. A demonstração foi realizada com o Microsoft Visual Studio 11 Developer Preview, que está disponível para download no site da Microsoft no MSDN.

O código da demonstração pode ser baixado em:
Solução do Visual Studio 11 Developer Preview com a demonstração realizada no TechEd Brasil 2011

Vídeo da apresentação

A apresentação da minha palestra foi gravada durante o evento, porém eu não sei se o vídeo será disponibilizado para o público. Se for, eu estarei atualizando este post com o link para baixar ou assistir ao vídeo sob demanda.

Sem categoria

MSDN Webcast: Task-based Asynchronous Pattern (TAP), async e await

Introdução

No dia 27/04/2011, eu apresentei o webcast do MSDN Task-based Asynchronous Pattern (TAP), async e await. Os webcasts do MSDN são transmissões ao vivo e gratuitas, realizadas por especialistas Microsoft ou líderes da comunidade, que detalham recursos de produtos, solucionam dúvidas de usuários e fazem demonstrações de novas tecnologias.

Task-based Asynchronous Pattern (TAP)

O padrão Task-based Asynchronous Pattern (TAP) corresponde a uma evolução do padrão Event-based Asynchronous Pattern (EAP) para programação assíncrona na plataforma .NET.

O TAP é um novo padrão no .NET Framework baseado nos tipos Task e Task do namespace System.Threading.Tasks. O padrão é implementado por um único método nomeado NomeOperacaoAsync, que deve retornar Task ou Task, baseado no tipo de retorno void ou TResult, respectivamente, do método síncrono correspondente (NomeOperacao). Se a classe já tiver um método NomeOperacaoAsync, então deve-se usar NomeOperacaoTaskAsync.

C# 5: async e await

O suporte a funções assíncronas será incorporado à linguagem C# na versão 5. Para isto, serão introduzidas duas novas palavras-chaves na linguagem: 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 na chamada de funções com a palavra-chave async na assinatura.

Apresentação teórica

Na parte teórica, eu mostrei informações sobre o padrão Task-based Asynchronous Pattern (TAP) e sobre o novo suporte à programação assíncrona na linguagem C# 5 com a introdução das palavras-chaves async e await, incluindo os seguintes tópicos:

  • Operação síncrona versus operação assíncrona
  • Programação assíncrona atualmente
  • Task-based Asynchronous Pattern (TAP)
  • Visual Studio Async CTP
  • Async CTP (SP1 Refresh)
  • Programação assíncrona com C# 5
  • Artigos e vídeos recomendados
  • Downloads recomendados

Slides da apresentação


Demonstração

Na apresentação, eu realizei uma demonstração de uma implementação do padrão Task-based Asynchronous Pattern (TAP) numa classe para cálculo da soma dos termos de uma série convergente. Para a demonstração, eu criei uma solução nomeada TapCS5AsyncAwait no Visual Studio 2010 e desenvolvi dois projetos: uma Class Library nomeada Msdn.Webcasts.Matematica.Series, com a implementação do padrão TAP, e uma Console Application nomeada SerieLeibniz para testar uma chamada assíncrona para somar os primeiros termos da série de Leibniz.

Na implementação da Class Library foram desenvolvidas duas classes: ResultadoSerieConvergente e SerieConvergente, conforme ilustrado no diagrama de classes abaixo.

ResultadoSerieConvergente
Classe ResultadoSerieConvergente
SerieConvergente
Classe SerieConvergente

Na aplicação console SerieLeibniz, eu referenciei a biblioteca de séries convergentes para calcular, de forma assíncrona, a convergência da soma dos primeiros termos da série de Leibniz. Abaixo, segue um exemplo da saída da aplicação na tentativa de calcular a convergência da soma dos 50 milhões primeiros termos da série de Leibniz. A aplicação é cancelada depois de 3 segundos, uma vez que o resultado ainda não havia sido calculado. A ideia foi demonstrar uma chamada assíncrona com opção de cancelamento.

TesteSerieLeibniz
Cancelamento da Série de Leibniz para 50 milhões de termos depois de 3 segundos

O código da demonstração pode ser baixado em:
Solução do Visual Studio 2010 com a demonstração do padrão Task-based Asynchronous Pattern (TAP)

Vídeo da apresentação

Assista ao vídeo da apresentação do Webcast no site da Microsoft em:
MSDN Webcast: C# 5 – Task-based Asynchronous Pattern (TAP), async e await