RSS feed
Melhorias da IntelliSense para JavaScript com o VS 2010 - ScottGu's Blog em Português

Melhorias da IntelliSense para JavaScript com o VS 2010


Este é o vigésimo de uma série de posts que estou escrevendo sobre o próximo lançamento do VS 2010 e .NET 4.

O post de hoje abrange algumas das melhorias que estão chegando com a IntelliSense para JavaScript no VS 2010 e no Visual Web Developer 2010 Express. Você vai perceber no VS 2010 que a IntelliSense para JavaScript é carregada de forma muito mais rápida para arquivos e bibliotecas de script e que a IntelliSense agora oferece dicas para completar código em cenários mais avançados se compararmos com versões prévias do Visual Studio.

[Além do blog, eu também estou agora utilizando o Twitter para atualizações rápidas e para compartilhar links. Siga-me em: twitter.com/scottgu]

IntelliSense para JavaScript Melhorada

Prover Intellisense para uma linguagem dinâmica igual à JavaScript é mais complicado do que prover IntelliSense para uma linguagem estaticamente tipada igual a VB e C#. Inferir corretamente o formato e estrutura de varíaveis, métodos, etc é praticamente impossível sem executar virtualmente o código propriamente dito – isto porque JavaScript como linguagem é flexível o bastante para dinamicamente modificar e transformar estas estruturas no tempo de execução. 

O editor de código do VS 2010 agora tem a inteligência necessária para realizar esse tipo de execução virtual do código à medida em que você o escreve - e é assim que a IntelliSense é mantida precisa e completa. A seguir está uma explicação simples que mostra quão rica e flexível a IntelliSense se apresenta na versão final do VS 2010.

Cenário 1: Inferência Básica de Tipos

Quando você declara uma variável em JavaScript, você não precisa declarar o seu tipo. Em vez disso, o tipo da variável é baseado no valor atribuído a ela. Haja vista que o VS 2010 executa o código virtualmente dentro do editor, ele pode inferir dinamicamente o tipo de uma variável, e fornecer o código IntelliSense apropriado com base no valor atribuído a uma variável.

Por exemplo, observe a seguir que o VS 2010 fornece ajuda para completar o código para uma string (porque nós atribuímos uma string na variável "foo"):

imagem

Se nós mais tarde atribuirmos um valor numérico para "foo", a ajuda para completar o código (após a atribuição) automaticamente muda para prover IntelliSense para um número:

imagem

Cenário 2: Intellisense para Quando Manipulamos Objetos do Browser

É bastante comum com JavaScript a manipulação do DOM (modelo de objetos de uma página), bem como trabalhar com objetos do browser disponíveis no lado do cliente/usuário. 

Versões anteriores do Visual Studio proporcionavam ajuda para completar código JavaScript tendo em vista os objetos padrão do browser - mas não forneciam muita ajuda nos cenários mais avançados (como a criação de variáveis e métodos dinâmicos). A execução virtual de código do VS 2010 dentro do editor agora nos permite oferecer intellisense rica para um conjunto mais amplo de cenários.

Por exemplo, a seguir estamos usando o objeto window do browser para criar uma variável global chamada "bar". Observe como podemos obter intellisense (com a inferência do tipo correto para uma string) com o VS 2010, quando mais tarde tentamos usar a variável bar:

imagem

Quando nós atribuímos um valor numérico para a variável "bar" (ao invés de uma string), o motor da intellisense do VS 2010 infere corretamente seu tipo e modifica a ajuda para completar a instrução adequadamente de forma que a ajuda seja referente a um número:

imagem

Cenário 3: Mostrando todo o poder da IntelliSense

Como o VS 2010 executa o código virtualmente dentro do editor, ele é capaz de lidar com várias situações (tanto práticas quanto estranhas) que você apresenta a ele - e ainda é capaz de fornecer a inferência de tipos e IntelliSense precisamente.

Por exemplo, a seguir nós estamos usando um loop for e o objeto window do browser para criar e nomear múltiplas variáveis dinâmicas (bar1, bar2, bar3 ... bar9).  Observe como o motor da IntelliSense do editor identifica e provê ajuda para completar o código da instrução nos oferecendo como opção todas as variáveis dinamicamente criadas:

imagem

Como variáveis adicionadas através do objeto window do browser também são variáveis globais - elas agora também aparecem na caixa de seleção de variáveis globais da intellisense:

imagem

Melhor ainda - inferência de tipo ainda é completamente suportada. Assim, se atribuirmos uma string a uma variável dinamicamente nomeada nós teremos a inferência de tipo para uma string. Se atribuirmos um número nós teremos a inferência de tipo para um número. 

Apenas por diversão (e para mostrar!) podemos ajustar nosso loop for para atribuirmos uma string nas variáveis numeradas pares (bar2, bar4, bar6, etc) e atribuir um número nas variáveis numeradas que são ímpares (bar1, bar3, bar5, etc):

imagem

Observe acima como nós temos ajuda para completar o código da instrução para uma string para a variável "bar2". 

Observe a seguir que para a variável "bar1" temos a ajuda para completar o código com referência a um número:

imagem 

Este não é simplesmente um truque maneiro...

Embora o exemplo acima seja um pouco artificial, a abordagem para criar variáveis, métodos e tratadores de evento dinamicamente no tempo de execução é bastante comum em muitas bibliotecas Javascript. Muitas das bibliotecas mais populares usam estas técnicas para manter o tamanho do download da biblioteca de scripts tão pequeno quanto possível. O suporte do VS 2010 para analisar e executar virtualmente bibliotecas que usam estas técnicas garante que você obtenha melhor código Intellisense quando você utilizá-las.

Resumo

O Visual Studio 2010 (e o Visual Web Developer 2010 Express que é grátis) agora oferecem suporte intellisense muito mais rico para JavaScript. Este suporte funciona com praticamente todas as bibliotecas JavaScript populares. Ele deverá ajudar a fornecer uma experiência de desenvolvimento muito melhor quando você escrever código JavaScript para ser executado no lado do cliente/usuário permitindo cenários AJAX dentro suas aplicações ASP.NET.

Espero que ajude,

Scott

P.S. Você pode ler o meu post anterior sobre a IntelliSense para JavaScript com o VS 2008 (em Inglês) para aprender mais sobre a nossa intellisense para JavaScript anterior (e alguns dos cenários que esta suportava). Obviamente, o VS 2010 suporta todos os cenários previamente possíveis com o VS 2008.

 

Texto traduzido do post original por Leniel Macaferi.

Published Friday, April 09, 2010 1:56 AM by Leniel Macaferi

Comments

# Série de posts sobre Visual Studio 2010 e .NET 4 - ScottGu's Blog em Portugu??s

Pingback from  Série de posts sobre Visual Studio 2010 e .NET 4 - ScottGu's Blog em Portugu??s

Leave a Comment

(required) 
(required) 
(optional)
(required)