Toolbox

C# JavaScript, blog de Eric Lippert e muito mais

Scott Mitchell

Todos os preços foram confirmados em 19 de novembro de 2008 e estão sujeitos a alteração. As opiniões expressas nesta coluna são exclusivas do autor e não refletem, necessariamente, as opiniões da Microsoft.

Sumário

Criar JavaScript para aplicativos AJAX usando C# e Visual Studio
Blogs importantes
Verificar a ortografia de comentários, cadeias de caracteres, marcação e arquivos de recurso
Para sua estante

Criar JavaScript para aplicativos AJAX usando C# e Visual Studio

Antigamente, JavaScript era considerada uma linguagem de brinquedo que era útil para validação de entrada simples e manipulação de DOM (Document Object Model). Na verdade, trata-se de uma linguagem avançada e com recursos sofisticados que potencializa os sites habilitados para AJAX atualmente.

Embora a predominância e o papel do JavaScript nos aplicativos Web modernos tenham sido consideravelmente ampliados nos últimos anos, ainda existe uma diferença perceptível no tempo de design durante a escrita de código JavaScript em comparação com código C#.

O Visual Studio oferece suporte à depuração e ao IntelliSense para JavaScript, mas muitos avisos e erros de JavaScript não podem ser detectados até o tempo de execução. Por outro lado, C# oferece verificação de tipo em tempo de compilação; semântica mais robusta e orientada a objeto; e ferramentas para refatoração, criação de documentação técnica e navegação de classes. Além disso, a maioria dos desenvolvedores de ASP.NET está mais familiarizada com C# do que com JavaScript.

Não seria ótimo se você pudesse escrever código C# em vez de JavaScript? Isso é possível com o Script# (versão 0.5.1), que se trata de um compilador, um tempo de execução e uma estrutura gratuitos criados por Nikhil Kothari, arquiteto de software da Microsoft. O compilador do Script# pega o código C# e o converte no código JavaScript equivalente.

Use o Script# para criar funções JavaScript curtas e unitárias ou manipuladores de eventos, bem como bibliotecas JavaScript maiores. Você pode usá-lo para criar comportamentos e componentes AJAX ASP.NET ou gadgets da Barra Lateral do Windows Vista. O compilador do Script# pode usar arquivos .resx para gerar arquivos de script localizados e pode ser configurado para gerar scripts de depuração ou de versão. (Os scripts de depuração possuem espaços em branco e nomes de variáveis descritivos para facilitar a leitura, enquanto os scripts de versão têm seus espaços em branco desnecessários removidos e renomeação de variáveis para simplificar a compactação de código.) Resumindo, o Script# proporciona todos os benefícios de trabalhar com código C# – erros em tempo de compilação, familiaridade com a semântica e a sintaxe de OOP no C# e melhor suporte a ferramentas – ao mesmo tempo em que gera o código JavaScript necessário para o aplicativo Web ou os gadgets da Barra Lateral.

Além do compilador, o Script# inclui um tempo de execução e uma estrutura. Tanto o tempo de execução como a estrutura possuem uma implementação de servidor que você programa ao escrever código C# e uma implementação de cliente que é usada pelo código JavaScript gerado pelo compilador do Script#.

O tempo de execução define o sistema de tipos e é obrigatório. A estrutura é opcional, mas oferece APIs para executar tarefas comuns como solicitações HTTP, serialização JSON, detecção de navegador, etc. Ela também inclui controles de interface do usuário e APIs para trabalhar com o controle do Silverlight no navegador, para acessar o armazenamento RSS no Internet Explorer 7 e para acessar o Microsoft Virtual Earth a partir do navegador.

Lembre-se de que a finalidade do Script# não é converter aplicativos C# existentes em aplicativos Web habilitados para AJAX. Em vez disso, o Script# permite que os desenvolvedores criem aplicativos Web ou gadgets da Barra Lateral escrevendo código C#, que depois é convertido em código JavaScript.

Entretanto, como não há uma correspondência um-para-um entre C# e JavaScript, nem todos os recursos da linguagem C# estarão disponíveis quando você usar o Script#. Por exemplo, propriedades somente gravação não são permitidas, assim como certas construções e palavras-chave, como goto, using, lock e sizeof.

Preço: gratuito.

projects.nikhilk.net/ScriptSharp

Blogs importantes

Os ingredientes mais importantes para um blog técnico realmente excelente incluem: postagens freqüentes, pertinentes e especializadas; análises detalhadas de conceitos ou tecnologias importantes; e uma voz ou um estilo exclusivo. Você encontrará esses ingredientes nas proporções certas no blog de Eric Lippert.

Eric é engenheiro sênior de design de software da Microsoft e trabalhou com equipes de C# e de idiomas de script. Seu blog oferece muitas postagens ótimas que enfocam segurança, desempenho e qualidade de código, juntamente com entradas sobre recursos e semântica de linguagem como expressões lambda, imutabilidade e covariância/contravariância. Ele explora muitos desses tópicos em detalhes, geralmente englobando várias postagens no blog.

Há uma série de 5 partes sobre expressão lambda versus métodos anônimos, uma série de 11 partes sobre imutabilidade no C# e uma série de 5 partes sobre semântica de membros protegidos. Você também encontrará postagens com idéias e opiniões de Eric sobre maneiras de usar (ou não) vários recursos de linguagem. Leia sua introdução sobre matrizes no artigo "Fabulous Adventures In Coding" em seu blog.

Embora muitas das entradas no blog analisem tópicos complexos, Eric tem o dom de explicar os conceitos e a teoria de forma prática e simples.

blogs.msdn.com/ericlippert

ericlippert.gif

Blogs de Eric Lippert sobre qualidade, desempenho e segurança de código (clique na imagem para ampliá-la)

Verificar a ortografia de comentários, cadeias de caracteres, marcação e arquivos de recurso

Os compiladores funcionam como um verificador de ortografia de tipos. Se você trocar duas letras em um nome de método ou digitar incorretamente um nome de variável, o compilador relatará um erro de compilação. Felizmente, é fácil identificar esses erros, pois o Visual Studio sublinha o problema de ortografia com uma linha ondulada.

Entretanto, observe que o compilador não funciona como verificador de ortografia para comentários de código-fonte; cadeias de caracteres no código ou em arquivos de recurso; ou marcação HTML, XML ou XAML. É muito fácil um comentário escrito incorretamente ir parar na documentação técnica – ou pior, uma cadeia de caracteres com erro de ortografia passar pelo controle de qualidade e entrar em produção.

A boa notícia é que existem ferramentas capazes de verificar a ortografia de cadeias, comentários, marcação e outros conteúdos opacos para o compilador. Uma delas é o IntelliSpell 2.0, da ComponentOne, que trabalha de forma bastante semelhante ao verificador de ortografia do Microsoft Office Word. O IntelliSpell sublinha com uma linha ondulada as palavras escritas de forma incorreta. Basta clicar na palavra com o botão direito do mouse para ver uma lista de possíveis correções. Esses erros de ortografia também são enumerados na janela Lista de Tarefas.

Você pode corrigi-los nessa janela ou ir direto para a palavra escrita incorretamente clicando nela duas vezes na Lista de Tarefas. Também pode executar o verificador de ortografia selecionando a opção de menu no menu Ferramentas ou na barra de ferramentas do IntelliSpell. O IntelliSpell também pode ser configurado para verificar a ortografia automaticamente à medida que você digita e para executar o verificador de ortografia após cada compilação.

Por padrão, o IntelliSpell verifica a ortografia em todos os arquivos de código, páginas da Web e arquivos de texto, de recurso e XML (inclusive arquivos de configuração). Ele ignora palavras com maiúsculas e minúsculas, palavras com números e endereços de arquivo e de Internet, embora essas regras e os tipos de arquivo cuja ortografia será verificada sejam configuráveis. Além disso, o IntelliSpell também oferece dicionários ortográficos em 16 idiomas diferentes, que poderão ser usados individualmente ou em conjunto quando você estiver verificando a ortografia de projetos localizados.

O IntelliSpell é oferecido em duas edições: uma Community Edition gratuita e uma Professional Edition que custa US$ 79,99. A Community Edition tem os principais recursos – integração com o Visual Studio, sublinhado de palavras escritas incorretamente, sugestões de ortografia através de um menu de contexto, etc – mas falta-lhe alguns dos recursos encontrados na Professional Edition.

Com a Community Edition, só é possível verificar a ortografia de um único arquivo de cada vez. Ao contrário da Professional Edition, que é capaz de verificar a ortografia de uma solução ou de um projeto inteiro. Além disso, recursos como verificação de ortografia durante a digitação, verificação de ortografia de projetos localizados e a capacidade de criar dicionários personalizados não estão incluídos na Community Edition.

Preço: a Community Edition é gratuita. A Professional Edition custa US$ 79,99.

componentone.com/

intellispell.gif

O IntelliSpell verifica a ortografia de cadeias de caracteres, comentários e marcação (clique na imagem para ampliá-la)

Para sua estante

Em todas as profissões ou hobbies, há certas áreas que qualquer pessoa, independentemente da experiência, deve estudar. Por exemplo, todo jogador de golfe, a despeito de seu nível de habilidade, pode praticar para melhorar seu jogo curto.

Para desenvolvedores de software, nunca é demais aprender sobre a sintaxe e os recursos do SQL. E, embora haja vários artigos online com dicas e truques de SQL, descobri que a melhor forma de aprimorar minhas habilidades em SQL é ler metodicamente um livro sobre o assunto.

Terminei recentemente o livro Pro T-SQL 2008 Programmer's Guide (Apress), de Michael Coles, que fornece uma análise completa dos recursos de linguagem e da sintaxe do T-SQL. O livro começa examinando os novos recursos do T-SQL 2008, como a instrução MERGE e novos tipos de dados. Depois, o autor passa para as construções T-SQL principais – funções definidas pelo usuário; procedimentos armazenados; gatilhos; suporte a XML, XQuery e XPath. Ele prossegue abordando criptografia, expressões de tabela comuns e funções em janela, programação CLR de SQL e tratamento de erros, entre outros. Cada um desses tópicos tem seu próprio capítulo com exemplos e uma discussão detalhada. E cada capítulo termina com uma série de exercícios, cujas respostas são fornecidas no apêndice.

Gostei principalmente do capítulo sobre ajuste de desempenho. Ele começa com uma visão geral do modo como o SQL Server organiza os dados no disco e de como a organização afeta o desempenho, juntamente com dicas para economizar espaço em disco e armazenar dados esparsos. Em seguida, Coles aborda os benefícios dos índices em termos de desempenho e compara/contrasta índices filtrados, clusterizados e não-clusterizados. O capítulo termina com uma discussão sobre a análise de planos de consulta e dicas para otimizar consultas.

O Pro T-SQL 2008 Programmer's Guide supõe que o leitor já esteja familiarizado com os conceitos básicos do T-SQL – não há discussões sobre instruções SELECT, INSERT, UPDATE ou DELETE em nível iniciante. Além disso, esse livro se concentra no T-SQL e não explora administração de bancos de dados, embora descreva ferramentas como SQL Server Management Studio, SQL Profiler, SQLCMD e BCP em um capítulo curto. Também há um capítulo que mostra duas maneiras diferentes de fazer a interface com o SQL Server a partir de um aplicativo cliente do Microsoft .NET Framework: usando LINQ to SQL ou o provedor ADO.NET SqlClient.

O tempo empregado para aprender novas habilidades em SQL e praticar as antigas é sempre um tempo bem gasto. O Pro T-SQL 2008 Programmer's Guide, com uma prosa simples, exemplos diversos e exercícios no final de cada capítulo, é uma ótima maneira de aprender sobre os recursos mais recentes do SQL Server 2008 e reforçar o conhecimento que você já tem do SQL.

Preço: US$ 52,99.

apress.com/

bookcov.gif

Envie suas dúvidas e comentários para Scott pelo email toolsmm@microsoft.com.

Scott Mitchell, autor de diversos livros e fundador da 4GuysFromRolla.com, é um MVP que trabalha com tecnologias Web da Microsoft desde 1998. Scott é consultor autônomo, instrutor e escritor. Entre em contato com ele pelo endereço Mitchell@4guysfromrolla.com ou por meio de seu blog em ScottOnWriting.NET.