Códigos melhores

Criando códigos melhores com o Visual Studio 2010

Doug Turnure

Há 13 anos, a Microsoft distribuiu pela primeira vez o Visual Studio, seu principal ambiente de desenvolvimento integrado de longa duração. A versão inaugural de 1997 iniciou o alinhamento das versões 5 do Visual Basic e do Visual C++ em um IDE comum. Foi incluída uma Enterprise Edition com um então conhecido conjunto de tecnologias, incluindo o Visual InterDev, o Microsoft Transaction Server e o Visual SourceSafe 5.0. A principal finalidade dessa versão era ajudar os desenvolvedores na criação de aplicativos distribuídos com componentes, como aplicativos cliente/servidor e para a Web.

Desde então, nós, desenvolvedores, percorremos um longo caminho. Embora o cenário dos códigos ainda seja dominado por formas modificadas das arquiteturas cliente/servidor e da Web, o escopo e as demandas desses aplicativos ultrapassaram o âmbito dos sistemas homogêneos e das chamadas entre objetos fortemente tipadas.

Agora, o REST (Representational State Transfer) e as tecnologias relacionadas estão se tornando mecanismos de comunicação base convencionais. Os aplicativos começam a encontrar espaço em arquiteturas baseadas em nuvem, colocando a escalabilidade, a confiabilidade e a segurança dos dados nas mãos de terceiros. Além disso, os padrões de aplicativos Web estão se alinhando com estilos e padrões comuns. Até mesmo o hardware está mudando, conforme as tecnologias de chip atuais permitem que a velocidade dos processadores atinja os picos teóricos e os sistemas de vários núcleos oferecem uma nova forma de obter cada vez mais desempenho de um único computador.

É nesse mundo, com sua demanda sem precedentes por software e desenvolvedores de software, que chega o Visual Studio 2010. E, carregado de novas funcionalidades, ele está preparado para suprir os crescentes requisitos de software em um universo que agora se estende por diversas plataformas, núcleos, estilos e padrões. Este artigo abordará alguma das formas notáveis como o Visual Studio 2010 enfrenta os desafios atuais para ajudar os desenvolvedores a criar soluções que possam prosperar no complexo setor em que residem. Nem todas as novas funcionalidades serão discutidas; o objetivo deste artigo é destacar alguns recursos específicos que os desenvolvedores podem usar imediatamente em seu trabalho diário. As listas completas de recursos estão disponíveis na documentação do produto.

Aperfeiçoamentos ao IDE do Visual Studio

Conforme o desenvolvimento de software abrange cenários cada vez mais complexos, muitas vezes os desenvolvedores se sentem pressionados para serem mais produtivos. O Visual Studio 2010 adiciona ao próprio editor diversos novos recursos visuais que ajudam na produtividade. Três deles serão abordados nesta seção.

Um dos aperfeiçoamentos mais simples do IDE do Visual Studio 2010 que deve ser testado é a capacidade de arrastar uma janela filho para fora da janela pai do IDE. O preço dos monitores se tornou bastante acessível, de forma que os desenvolvedores podem usar dois (ou mais) deles em seu trabalho, e esse novo recurso permite a disseminação da codificação e a criação de janelas em várias telas.

Como funciona Basta clicar na guia da janela e arrastá-la para fora da janela do IDE do Visual Studio. A janela será reencaixada facilmente, clicando na barra de título e arrastando-a de volta à área do IDE, alinhando a barra de título com as guias das outras janelas. Ao reencaixar, você receberá uma pista visual quando a janela estiver alinhada corretamente: ela ficará sombreada para indicar que está pronta para ser reencaixada quando for liberada. A Figura 1 mostra uma janela de código que foi puxada para fora da janela que contém o IDE.

Figure 1 Untethering a Window from the IDE
Figura 1 Soltando uma janela do IDE

Um outro ótimo recurso do editor do Visual Studio 2010 é a capacidade de selecionar em caixa e editar um bloco de texto vertical. Às vezes, é necessário editar uma lista de itens estendida, e você se pega repetindo uma conhecida sequência rápida do teclado (por exemplo, teclando repetidamente “n+seta para baixo+seta para voltar”). Talvez esse não seja o problema mais frequente que você enfrenta, mas ele pode ocorrer ocasionalmente, e vários desenvolvedores desejariam poder selecionar um bloco vertical inteiro e aplicar uma alteração comum a todas as linhas de uma vez. O Visual Studio 2010 apresenta esta funcionalidade de edição em bloco.

Como funciona Pressione e mantenha pressionada a tecla Alt e faça a seleção vertical que você deseja editar. A área realçada funcionará da mesma forma que uma edição de linha simples, mas as edições serão duplicadas simultaneamente em todas as linhas selecionadas, como mostrado na Figura 2*.*

Figure 2: box selecting
Figura 2 Seleção em bloco

Também há um útil recurso de realce de referências no código. No editor, quando você clicar em uma variável, um objeto, um método, uma propriedade, um tipo ou em outro símbolo, todas as referências a esse símbolo no código serão realçadas para ajudá-lo a descobrir rapidamente onde o item está sendo usado.

Como funciona Escolha um tipo/variável/método/item que quiser e simplesmente clique nele; todas as outras instâncias serão realçadas. A Figura 3 mostra isso para uma variável denominada jumpList; observe o sombreamento cinza de todos os usos no código depois de sua seleção com um clique do mouse.

Figure 3 Highlighted Symbols
Figura 3 Símbolos realçados

Suporte à programação paralela

Aprofundando-nos um pouco mais nas novas funcionalidades do IDE, o próximo novo recurso significativo a ser abordado é o suporte à programação paralela. O Visual Studio 2010 fornece ferramentas de diagnóstico para ajudar a depurar e analisar aplicativos paralelos. No entanto, antes de passar para as ferramentas, discutirei rapidamente o que é a programação paralela e poderemos ver como o tempo de execução e as bibliotecas implementam essas novas funcionalidades.

Muitos dos computadores de desenvolvedores padrão modernos têm vários núcleos, ou seja, têm dois ou mais processadores individuais, e a tendência atual aponta para computadores com muitos mais núcleos. Além da pura inovação, outros fatores, como a conservação de energia e as limitações realistas de velocidade de clock, consumo de energia e calor, estão influenciando a tendência por sistemas de vários núcleos. Alguns líderes do setor preveem que, nos próximos anos, os computadores convencionais terão 50 ou mais núcleos.

Isso introduz um único problema. Antes da revolução dos vários núcleos, computadores mais rápidos significavam aplicativos executados mais rápido. Contudo, os softwares vinculados a um único núcleo (como a maioria dos softwares atuais) não tiram proveito dessa arquitetura emergente. Portanto, é fundamental enfocar o avanço das arquiteturas de vários núcleos. Antes do Visual Studio 2010 e do .NET Framework 4, era difícil criar código que pudesse usar mais de um núcleo. Para enfrentar esse desafio, esta versão inclui algumas atualizações do tempo de execução, além de alguns novos tipos, bibliotecas e ferramentas, para ajudar os desenvolvedores a aproveitar os sistemas de vários núcleos.

O .NET Framework 4 inclui Extensões Paralelas com três componentes: uma nova TPL (Task Parallel Library), um novo Mecanismo de Execução PLINQ e diversas novas CDSs (Coordination Data Structures). A TPL contém duas classes principais. Uma delas, System.Threading.Tasks.Parallel, inclui construções paralelas, como versões paralelas dos métodos For e ForEach. Como indicado pelo nome, o Mecanismo de Execução PLINQ é uma versão em paralelo do LINQ to Objects, que fornece uma classe ParallelEnumerable no lugar da classe Enumerable do LINQ. O uso do PLINQ é semelhante, mas não idêntico, ao uso do LINQ to Objects. Por fim, a CDS inclui um grupo de coleções thread-safe e primitivos de sincronização que simplificam cenários paralelos. A CDS inclui os participantes conhecidos que seriam esperados em coleções thread-safe (ConcurrentDictionary, ConcurrentQueue e ConcurrentStack, por exemplo) e em tipos de sincronização (SemaphoreSlim, SpinLock, SpinWait e outros).

O Visual Studio 2010 traz o suporte a extensões paralelas através de uma nova janela Parallel Stacks, uma janela Parallel Tasks e um Concurrency Visualizer. Todas essas janelas foram criadas para fornecer uma ideia melhor de onde ocorrem diversas tarefas em um determinado momento de sua execução. A janela Parallel Stacks mostra como várias tarefas percorrem seus caminhos exclusivos e exibe as pilhas de chamadas das tarefas. Você tem a opção de exibi-la em termos de abstração de tarefas ou diretamente como threads. A Figura 4 mostra a janela Parallel Stacks em tempo de execução, exibindo a opção de exibição de abstração de tarefas.

Figure 4 Parallel Stacks Window in Visual Studio 2010
Figura 4 Janela Parallel Stacks no Visual Studio 2010

A janela Parallel Tasks foi adicionada especificamente para dar suporte ao novo modelo de programação baseado em tarefas. Quando seu aplicativo está no modo de interrupção, você pode usá-la para ver, por exemplo, a lista de tarefas, o método em execução no momento para cada tarefa, o thread afiliado, o domínio do aplicativo, a identificação da tarefa e muito mais. A janela é muito mais que uma simples exibição estática; é possível clicar em uma tarefa específica e o IDE mostrará seu status, explicitando o código em execução no momento. A Figura 5 mostra essa janela para um aplicativo de exemplo. Usar essa janela lado a lado com a janela Parallel Stacks é uma excelente maneira de exibir rapidamente o código em execução.

Figure 5 Parallel Tasks Window in Visual Studio 2010
Figura 5 Janela Parallel Tasks no Visual Studio 2010

Por fim, para obter uma análise mais aprofundada de um aplicativo paralelo, o Visual Studio 2010 apresenta um novo Concurrency Visualizer. Essa janela é muito mais complexa do que as outras duas e não dá suporte, no momento, a projetos Web. Sua finalidade é fornecer uma ideia de como seu aplicativo interage com o ambiente em cenários com vários núcleos e multi-threaded. Existem três modos de exibição:

  • O modo de exibição CPU Utilization mostra a atividade do processador.
  • O modo de exibição Threads mostra como os threads do seu aplicativo interagem.
  • O modo de exibição Cores fornece ideias específicas de como seus threads migram entre os núcleos.

O Concurrency Visualizer depende do Rastreamento de Eventos para Windows, ou seja, ele deve ser executado no Windows Vista ou posterior. As exibições, do texto básico até exibições gráficas completas, localizam ineficiências no código decorrentes de carga distribuída de forma inadequada entre as CPUs, afunilamentos de execução, contenções e outros possíveis inibidores de desempenho. A Figura 6 mostra o Concurrency Visualizer exibindo o uso de threads para um aplicativo com perfil.

Figure 6 The Concurrency Visualizer in Visual Studio 2010
Figura 6 O Concurrency Visualizer no Visual Studio 2010

Atualizações da Web

Juntamente com as atualizações gerais discutidas, você encontrará alguns aperfeiçoamentos notáveis para os desenvolvedores da Web que mudarem para o Visual Studio 2010. Claro, agora as novas ferramentas de modelo de programação MVC (Model-View-Controller) estão incluídas, e vou abordá-las na próxima seção. E há experiências aprimoradas de desenvolvimento da Web para tecnologias Web do lado do cliente e do servidor, além de um novo modelo de implantação na Web com um clique. Porém, vou começar com o ASP.NET AJAX e as novas funcionalidades associadas do IDE.

As ferramentas do ASP.NET AJAX existiam desde o Visual Studio 2008. No entanto, os modelos centrados no servidor fizeram alguns desenvolvedores acreditarem que ele não agregava um valor significativo ao desenvolvimento do lado do cliente. As funcionalidades do lado do cliente sempre estiveram presentes, mas o Visual Studio 2010 oferece um suporte adicional que realmente traz à tona as funcionalidades do lado do cliente e do servidor do ASP.NET AJAX. Os modelos e controles do lado do cliente compreendem uma parte significativa da lista de novos recursos, pois eles permitem aproveitar as funcionalidades aprimoradas de acesso a dados do cliente; porém, também vale a pena abordar vários outros novos itens, como a integração com o jQuery.

Antes do Visual Studio 2010 e do .NET Framework 4, se você desejasse usar o download de software e incorporar a Biblioteca do Microsoft AJAX ao Visual Studio, tudo isso era inserido na sua página ao adicionar o ScriptManager. Nesta versão, a Biblioteca do Microsoft AJAX e o AJAX Control Toolkit foram combinados. Além disso, a equipe do Microsoft AJAX refatorou as bibliotecas, de forma que agora você pode solicitar as peças individuais desejadas, em vez de ser obrigado a optar por tudo ou nada. É possível especificar um modo, solicitando todas, nenhuma ou peças específicas da Biblioteca do Microsoft AJAX.

Como funciona Basta incluir o atributo AjaxFrameworkMode na marca ScriptManager. Você pode defini-lo como Disabled, Enabled ou Explicit:

<asp:ScriptManager ... AjaxFrameworkMode="Disabled"/>

Disabled significa que você não deseja que as estruturas do Microsoft AJAX sejam carregadas. Enabled significa que você deseja seguir o comportamento das versões existentes (carregando a biblioteca completa). Explicit permite especificar quais arquivos da Biblioteca do Microsoft AJAX você deseja carregar. É possível confirmar isso no tempo de execução, usando View Source com a página carregada.

De forma semelhante, o novo atributo de CDN (Content Delivery Network) permite usar as versões mais atualizadas de bibliotecas de scripts. Antes, você incluía no seu projeto bibliotecas de scripts como jQuery ou Microsoft AJAX, e as versões incluídas eram aquelas que você mantinha para aquela versão. Agora, você pode solicitar que a versão mais recente seja baixada da Web, em vez de preencher suas soluções com uma versão fixa.

Como funciona Você pode incluir o atributo EnableCdn na marca asp:ScriptManager, definindo-o como “true”:

<asp:ScriptManager ... EnableCdn="true"/>

O ASP.NET AJAX 4.0 também permite definir modelos que são puramente do lado do cliente. Você configura um espaço reservado <ItemTemplate> e permite que o cliente faça a renderização com base nos valores de tempo de execução, como um objeto associado a JSON. O tempo de execução faz a instanciação em seu nome e você não precisa codificar o DOM para fazê-la funcionar.

Uma das adições mais úteis ao ASP.NET AJAX 4.0 é o acesso aprimorado a dados do cliente, que usa um novo controle DataView e modelos de cliente para oferecer acesso fácil e associação bidirecional de dados no cliente. Ele foi criado para utilizar Serviços Web ASMX, Serviços WCF, Serviços de Dados WCF, Controladores MVC ou qualquer coisa que retorne JSON, e isso é feito totalmente a partir de código do lado do cliente.

O controle DataView é o principal controle para dar suporte a modelos de cliente. Ele funciona de forma semelhante a um controle ListView, mas é totalmente implementado no código do cliente. Com ele, é possível definir um modelo no cliente, obter os dados em tempo de execução e, então, formatar os registros conforme eles são exibidos.

Como funciona Você pode definir o estágio com uma configuração muito básica: crie um Modelo de Dados de Entidade sobre o banco de dados SQL Northwind e use um Serviço de Dados WCF simples que o obtém de forma direta, sem alterações; assim, a tabela Employees deve estar disponível para consulta. Com esse pano de fundo, selecione o controle que deve atuar como modelo e dê a ele um atributo ID e um atributo class=“sys-template”. Quando você criar a exibição de dados, o ID será usado para representar o destino dos dados obtidos na associação. A associação pode ser manual, mas também existe uma sintaxe que usa chaves para inserir o nome do campo diretamente na marcação, que será substituída quando os dados forem buscados e associados a ela. Existem diversas sintaxes para realizar isso, mas uma das formas mais legíveis de criar o script e a marcação para essa execução é usando chaves duplas, como mostrado na Figura 7*.*

Figura 7 Acesso a dados aprimorado com o controle DataView

...
   <script type="text/javascript">
    Sys.require([Sys.components.dataView, 
                 Sys.components.adoNetServiceProxy], function () {
            
       var adoNetDataServiceProxy = 
         new Sys.Data.AdoNetServiceProxy('NWDataService.svc');
         
       Sys.create.dataView("#employeetemplate", {
         dataProvider: adoNetDataServiceProxy,
         fetchOperation: "Employees",
         autoFetch: true
            });
       });
    </script>
</head>
<body>
  <div id="employeetemplate" class="sys-template">
      <span>{{ FirstName }}</span><br/> 
  </div>
</body>

Um outro ponto a ser observado em relação ao ASP.NET AJAX é que ele foi configurado para se integrar de forma muito mais próxima com o jQuery. Para permitir que desenvolvedores de jQuery tirem vantagem dos controles do ASP.NET AJAX, agora todos os controles do AJAX Control Toolkit são expostos automaticamente como plug-ins do jQuery. Ou seja, os desenvolvedores de jQuery podem usar os controles sem precisar alterar seu estilo de desenvolvimento. Você pode considerá-los simplesmente como extensões do jQuery.

Além do território do ASP.NET AJAX, existem muitas outras ótimas melhorias da experiência de programação do ASP.NET. O roteamento de URL com Web Forms dá às URLs uma aparência lógica e limpa, muito mais amigável em termos de SEO (otimização do mecanismo de pesquisa) e mais legível. Você pode definir roteiros no arquivo global.asax, que mapeia as solicitações para os recursos apropriados. Além de ajudar a aperfeiçoar a SEO, as páginas podem usar um caminho previsível para o usuário, como mostrado na Figura 8.

Figura 8 Aperfeiçoamentos de roteamento de URL no Visual Studio 2010

New URL Routing Format:
    /CurrentPosition/Bob/Tester

Old URL Style:
    /CurrentPositions.aspx?name="Bob"&role="Tester"

Existem várias outras melhorias relacionadas à Web que valem a pena discutir, como sites de início, HTML mais limpo e arquivos de configuração menores, mas não posso abordá-las todas aqui, então vou avançar para as adições de ferramentas MVC.

Integração com o MVC

O padrão de arquitetura MVC é uma forma popular de criar aplicativos Web fáceis de manter e testar com limites bem-conhecidos e uma categorização clara do código por função. O MVC é um estilo de programação do ASP.NET que aproveita totalmente a estrutura do ASP.NET. É uma alternativa para o Web Forms, mas não uma substituição; os dois modelos funcionam muito bem para determinados cenários e conjuntos de habilidades. Agora, os desenvolvedores têm uma opção de modelos de programação para aplicativos Web, com base no ASP.NET e com suporte integral no Visual Studio 2010.

A versão 2 do MVC e suas ferramentas afiliadas, compiladas entre as versões do Visual Studio, foram integradas em um IDE do Visual Studio 2010 com dois modelos de projeto, como mostrado na Figura 9.

Figure 9 MVC Project Templates in Visual Studio 2010
Figura 9 Modelos de projeto MVC no Visual Studio 2010

Com o lançamento do Visual Studio 2010, o modelo de programação MVC se concentrou em três áreas principais de aperfeiçoamento. A primeira é uma melhor separação de preocupações. Isso significa um código mais fácil de manter por meio de itens como um novo método RenderAction para compor a separação da lógica comercial e de Áreas, que permitem criar “subaplicativos” para dividir a funcionalidade no seu aplicativo. A segunda área de aperfeiçoamento é um melhor histórico de validação, facilitado por meio de Data Annotations e da melhor exibição de regras de validação para o cliente. Por fim, há aperfeiçoamentos nos auxiliares. Agora, há auxiliares fortemente tipados, além de auxiliares com modelos, que permitem gerar interfaces do usuário para entidades automaticamente.

Como funciona  O RenderAction facilita o compartilhamento de uma peça de lógica por vários Controladores. Para chamar o método RenderAction da sua Exibição, use o seguinte script (que chama a ação NewEmployee no HRController):

<%  Html.RenderAction("NewEmployee" "HRController"); %>

Integração com o SharePoint

Uma outra integração significativa das ferramentas no Visual Studio 2010 é a adição de modelos para o SharePoint Foundation (anteriormente chamado Windows SharePoint Services). O Visual Studio 2010 é fornecido com 12 novos modelos para o SharePoint Foundation, além dos modelos SharePoint 2007 Sequential e State Machine Workflow do suplemento Visual Studio Tools for Office do Visual Studio 2008. Esses modelos conferem um status de alta qualidade ao desenvolvimento do SharePoint, com um foco sobre a produtividade e a implantação flexível.

O próprio SharePoint Foundation está mudando sua utilização principal, passando de um simples portal que você pode estender a uma plataforma para a criação de aplicativos desde o início, usando componentes como gerenciamento de usuários, a infraestrutura de listas subjacente e o modelo de sites. Há avanços significativos no acesso a dados, na integração de aplicativos de linha de negócios e no fluxo de trabalho. Sem falar no modelo de implantação mais flexível. Agora, muitas empresas têm grandes instalações do SharePoint e são necessariamente mais cuidadosas em relação à implantação ad hoc de novos aplicativos do SharePoint. O novo modelo de implantação flexível representa a possibilidade de colocar suas novas instalações em áreas de segurança para grupos específicos, em vez de exigir sua implantação em todo o ecossistema do SharePoint.

O Visual Studio 2010 aperfeiçoou bastante as opções de ferramentas para a compilação de aplicativos do SharePoint. É verdade que já existiam funcionalidades poderosas para isso, mas a curva de aprendizagem inicial era bastante desfavorável. Com esta versão, você encontrará um suporte excelente para o SharePoint diretamente nas ferramentas. Isso inclui a depuração completa integrada, ferramentas de implantação flexíveis e suporte a design aperfeiçoado para BCS (Serviços de Corporativos de Conectividade), Fluxo de Trabalho, LINQ para o SharePoint e Web Parts visuais. Também existe uma ponte aprimorada para a importação de itens da ferramenta SharePoint Designer no Visual Studio 2010.

Como funciona A criação de uma Web Part visual é consideravelmente mais fácil no Visual Studio 2010 com a nova superfície de design. Comece escolhendo iniciar um novo projeto e selecionando SharePoint | Visual Web Part, como mostrado na Figura 10*.*

Figure 10 SharePoint Visual Web Part Template in Visual Studio 2010
Figura 10 Modelo de Web Part visual do SharePoint no Visual Studio 2010

Para isso, é necessário que o SharePoint seja instalado no computador do desenvolvedor, mas isso não é tão difícil como antes. Se estiver usando o Windows Vista SP1 (ou posterior) ou o Windows 7, agora você pode instalar o SharePoint neste computador de forma direta e sem se preocupar com a instalação do Windows Server ou a configuração de uma VM para ele.

Será solicitado que você informe ao Visual Studio 2010 onde deseja instalar a solução para depuração. Depois que o editor estiver aberto, você poderá clicar na guia inferior esquerda Design e começar a construir visualmente sua Web Part, bastando arrastar e soltar controles na superfície. Talvez seja necessário abrir a caixa de ferramentas (menu Exibir | Caixa de Ferramentas), caso ela ainda não esteja sendo exibida.

Desenvolvimento do Windows 7

Com a crescente popularidade do Windows 7, os desenvolvedores podem começar a adicionar funcionalidades a seus aplicativos para aproveitar algumas das experiências avançadas disponíveis na nova plataforma. Os desenvolvedores podem adicionar funcionalidades específicas do Windows 7 de diversas maneiras. Uma das novas funcionalidades populares é a nova Barra de Tarefas. Considerando sua rápida aceitação pelos usuários e sua facilidade de programação, ela ocupa uma posição favorável para o uso em aplicativos destinados ao Windows 7.

A Barra de Tarefas substitui a barra de tarefas de Início Rápido das versões anteriores do Windows. A Barra de Tarefas é executada na parte inferior (por padrão) da tela do Windows 7 e permite a “fixação” de aplicativos. Além disso, com ela os aplicativos podem incorporar elementos como listas de atalhos, que são conjuntos de links rápidos que podem ser obtidos clicando com o botão direito do mouse nos ícones encaixados, e visualizações da barra de tarefas, que são exibições em miniatura das janelas abertas de um aplicativo. A Barra de Tarefas pode ser programada facilmente por código gerenciado (através do Windows 7 API Code Pack) e não gerenciado, e deve ser um alvo preciso dos desenvolvedores que desejam tirar proveito da criação de aplicativos executados no Windows 7.

Como funciona Para fixar e desafixar aplicativos da Barra de Tarefas, os usuários devem simplesmente clicar com o botão direito do mouse nos ícones no menu Iniciar, no Explorer ou na própria Barra de Tarefas. Para fixar um aplicativo, clique com o botão direito do mouse no ícone do aplicativo (não em um documento, mas no próprio aplicativo) e selecione “Fixar na barra de tarefas”. Para removê-lo da Barra de Tarefas, repita a operação, mas selecione “Desafixar este programa da Barra de Tarefas”.

A Barra de Tarefas oferece aperfeiçoamentos de aparência e funcionais para seus aplicativos. Qualquer programa pode ser fixado na Barra de Tarefas, esteja ele em execução ou não. O ícone fixado pode iniciar o aplicativo ou servir para representar janelas minimizadas. Quando você coloca o cursor sobre um ícone na barra de tarefas e o aplicativo está em execução, é gerado um agradável efeito visual chamado HotTracking. O HotTracking utiliza a cor dominante do ícone para realçá-lo. Claro que você também terá uma visualização das instâncias do aplicativo em execução logo acima do ícone fixado.

A Barra de Tarefas também tem um recurso denominado Aero Peek. Para vê-lo, posicione o cursor sobre a visualização de uma janela e ela será ajustada na frente com as outras janelas esmaecidas. Essa é uma maneira excelente para os usuários darem uma olhada rápida em uma janela oculta ou minimizada sem alterar o foco, nem precisar pressionar nenhuma tecla.

Para acompanhar aplicativos, as instâncias de aplicativos em execução recebem uma identificação de aplicativo e são alinhadas com o ícone do seu aplicativo na Barra de Tarefas. Como desenvolvedor, você pode usar as classes TaskbarManager e JumpList para interagir com a Barra de Tarefas a partir de seus aplicativos por programação. Para usar essas classes, será necessário baixar e referenciar os assemblies no Windows 7 API Code Pack gratuito em code.msdn.microsoft.com/WindowsAPICodePack.

Este code pack foi criado pela equipe do SDK do Windows e permite trabalhar com a Barra de Tarefas por programação. Ele também contém vários aplicativos de exemplo com melhorias do Windows 7. Você realmente define uma referência aos assemblies compilados (neste exemplo, a navegação para o projeto da Barra de Tarefas) no seu código.

Você também tem a flexibilidade de fornecer a mesma identificação de aplicativo ou identificações de aplicativo exclusivas a várias instâncias de um aplicativo para poder agrupá-las ou separá-las na Barra de Tarefas. Para dar identificações exclusivas a diferentes instâncias de um aplicativo, é necessário definir a identificação do aplicativo antes de chamar Application.Run. Se você quiser apenas que as janelas filho tenham seus próprios ícones na Barra de Tarefas, poderá alterar sua identificação de aplicativo a qualquer momento.

Como funciona Para que uma janela filho tenha seu próprio ícone na Barra de Tarefas, use a classe JumpList e chame o método estático CreateJumpListForIndividualWindow, passando uma identificação de aplicativo da janela filho e o identificador da janela. O código tem a seguinte aparência:

childWindowJumpList = JumpList.CreateJumpListForIndividualWindow(
childWindowApplicationId, this.Handle);

Integração com o Windows Azure

A computação em nuvem está emergindo rapidamente como uma alternativa viável às soluções de arquitetura de hospedagem na Web e no local tradicionais. Em resumo, trata-se da ideia de passar parte das suas soluções de software (ou todas) para uma empresa hospedar tudo em um grande data center, com colocação em escala de acordo com a demanda e alta confiabilidade. O Windows Azure é a plataforma de serviços e computação em nuvem da Microsoft. Ele consiste em três conjuntos de serviços: Windows Azure, SQL Azure e Windows Azure Platform AppFabric.

O Windows Azure é o ambiente para hospedar aplicativos, que pode ser considerado como o sistema operacional na nuvem. O SQL Azure é, basicamente, o banco de dados na nuvem. E o Windows Azure AppFabric é um conjunto de blocos de construção comuns usados por aplicativos hospedados na nuvem. No momento, o Windows Azure AppFabric inclui dois serviços: o Serviço de Controle de Acesso (para autenticação federada e autorização baseada em declarações) e o Barramento de Serviço (para conectividade entre soluções na nuvem e soluções no local).

O Visual Studio 2010 inclui vários modelos de projeto para criar soluções da Plataforma Windows Azure. Para o VB.NET e o C#, existem quatro modelos diferentes para funções da Web e um para uma função de trabalho. Também há um modelo de projeto de função de trabalho para o F#. Cada modelo de função da Web para o VB.NET e o C# inclui um para ASP.NET, MVC com ASP.NET, Serviços WCF e CGI.

Uma característica exclusiva do trabalho com projetos da Plataforma Windows Azure no Visual Studio 2010 é que você pode selecionar várias funções para seu projeto ao criá-lo. Por exemplo, é possível criar um novo projeto com uma função da Web do ASP.NET MVC no C# e uma função de trabalho no VB.NET. Por isso, a experiência proporcionada por Novo | Projeto é um pouco diferente para aplicativos em nuvem; você realmente seleciona as funções em uma caixa de diálogo e não através do paradigma de seleção simples observado na maioria dos outros modelos de projeto.

Como funciona Para criar um projeto voltado à Plataforma Windows Azure no Visual Studio 2010, selecione Nuvem na lista de Modelos Instalados, como mostrado na Figura 11*.*

Figure 11 Selecting a Cloud Project Type in Visual Studio 2010
Figura 11 Selecionando um tipo de projeto em nuvem no Visual Studio 2010

Será exibida uma caixa de diálogo pop-up na qual você poderá selecionar as funções desejadas, com cada função tendo potencialmente um tipo e/ou uma linguagem diferente. A Figura 12 mostra um novo projeto de serviço em nuvem do Windows Azure com uma Função da Web do ASP.NET MVC, duas Funções de Trabalho do VB.NET e uma Função de Trabalho do F#.

Figure 12 Setting up a Cloud Service Project with Multiple Roles and Languages
Figura 12 Configurando um projeto de serviço em nuvem com várias funções e linguagens

Multiplataforma

A multiplataforma propriamente dita não é realmente uma novidade no Visual Studio 2010. No entanto, vale a pena examinar seu novo recurso de extensibilidade. De certa forma, é surpreendente observar que muitas pessoas não se dão conta dos benefícios da multiplataforma e como ela permite usar o Visual Studio 2010 para criar soluções que poderão ser executadas em versões anteriores do .NET Framework. A multiplataforma existe para as equipes de desenvolvimento que desejam aproveitar as ferramentas mais recentes, com seus recursos de editor aperfeiçoado e de depuração avançada, mas que ainda não estão preparadas para mudar seu código (ou talvez seus clientes) para o .NET Framework 4. Com a multiplataforma, você tem a opção de criar aplicativos para o .NET Framework versões 2.0, 3.0, 3.5 ou 4.

Como funciona Ao iniciar um novo projeto, basta selecionar a estrutura de destino na lista suspensa, como mostrado na Figura 13*.*

Figure 13 Selecting a Target Framework Version Via Multi-Targeting
Figura 13 Selecionando a versão da estrutura de destino através da multiplataforma

Uma nova opção denominada <More Frameworks…> (observe a entrada final na caixa suspensa circulada na Figura 13) permite a extensibilidade das estruturas de destino com suporte. Assim, potencialmente, no futuro será possível adicionar outras versões da estrutura e, talvez, até outros perfis do .NET Framework. Provavelmente, essas adições seriam instaladas através do MSI, mas, eventualmente, elas poderiam ser adicionadas manualmente com um arquivo de descrição XML e copiando os assemblies da estrutura diretamente no computador.

E muito mais

Existem vários outros novos recursos no Visual Studio 2010, muito mais do que eu pude abordar neste artigo. É difícil ignorar a página inicial personalizável, que oferece ótimas oportunidades para as empresas criarem relações entre recursos específicos da empresa. E há as atualizações do C++/ANSI, a Ajuda atualizada continuamente, a nova linguagem de programação F#, melhorias da Entity Framework, visualizações de código e diversos outros recursos novos que valem a pena ser aprendidos. Essas funcionalidades servem para posicionar melhor o Visual Studio 2010 como uma ferramenta de desenvolvimento atraente, capaz de oferecer o tipo de software atualmente esperado pelo setor. Esperamos que agora você tenha uma ideia melhor do que está disponível no Visual Studio 2010. Se desejar experimentar, baixe uma cópia de avaliação em microsoft.com/vstudio

Doug Turnure é gerente de programa da equipe do Visual Studio da Microsoft, que enfoca principalmente os comentários de clientes e a adoção da solução. Em momentos diferentes de sua carreira, ele atuou como desenvolvedor, criador, instrutor, participante do Twitter, marketeiro e palestrante ocasional em conferências. No momento, Turnure curte viver em Seattle, depois de jurar por vários anos que nunca se mudaria para lá.

Agradecemos aos seguintes especialistas técnicos pela revisão deste artigo: Miguel Castro, Mark Dunn e Jim Wooley