Desenvolvimento - Visual Studio

Porque adotar o Visual Studio 2010?

Neste artigo vou mostrar as melhores justificativas para se adotar o Visual Studio 2010 (VS 2010) assim como as novas tecnologias.

por Renato Haddad



Tecnologias

Visual Studio 2010, ASP.NET 4, Silverlight 4, Entity Framework 4, WPF, Diagramas, Arquitetura, Cloud Computing

Sumário

Neste artigo vou mostrar as melhores justificativas para se adotar o Visual Studio 2010 (VS 2010) assim como as novas tecnologias.

Introdução

A Microsoft lançou oficialmente dia 14 de abril de 2010 a versão do VS 2010, o qual traz diversas melhorias em todos os aspectos, focando a produtividade do desenvolvedor, melhorias no gerenciamento do ciclo de vida de uma aplicação, novidades de testes, novas funcionalidades do Silverlight 4, melhorias consideráveis no Entity Framework 4, a IDE do VS 2010 ficou muito mais fácil de entender, customizar e trabalhar. Isto tudo sem comentar sobre as melhorias nas linguagens C# 4, VB.NET 10, F# e a quantidade de novidades da IDE.

Melhorias na IDE do Visual Studio 2010

Só pra começar, toda a interface do VS 2010 é desenhada em Windows Presentation Foundation (WPF), o que facilita e muito os recursos da IDE como customização total da janela de Start do programa, o gerenciamento de qualquer janela existente, por exemplo, propriedades, debug e Solution Explorer podem ser desvinculadas da IDE, ou seja, se você tiver um monitor estendido é possível arrastar para este monitor qualquer uma das janelas. O gerador de código automático para classes, enum, interface e propriedades feito com apenas o CTRL + ponto permite ao desenvolvedor escrever um código de uma classe, atribuir propriedades e métodos sem a mesma existir. Em seguida, com o CTRL + ponto você manda gerar a classe completa. Isto facilita muito a vida de quem não tem familiaridade com criação de classes. Este recurso é muito usado em testes usando TDD (Test Driven Development).

Existem novas janelas como Call Hierarchy para pesquisar onde que um método é usado em todo o projeto, Arquitecture Explorer (esta é a minha preferida) para explorar a arquitetura da aplicação em nível de namespaces e classes.  Esta funcionalidade é excelente para quem quer conhecer a aplicação como um todo, navegar graficamente pelas classes, namespaces, gerar gráfico de dependência, e principalmente para o uso de novos desenvolvedores e arquitetos que entraram no projeto recentemente.

Highlight é um recurso novo para destacar um objeto, variável ou item de um código o qual se repete diversas vezes, proporcionando visualmente a localização do mesmo.

Entity Framework 4

Se antes desta versão você tinha certo receio de usar o Entity Framework (EF), seus problemas acabaram! O Entity Framework 4 está consideravelmente fácil de usar, a representação gráfica do ORM (Modelo de objeto relacional) está mais clara com entidades relacionadas, mostrando as propriedades de navegação, criação automática de chaves entre entidades, tipos complexos e mapeamento do modelo lógico e físico.

Um dos melhores recursos do EF 4 chama-se Model First, o qual permite desenhar todas as entidades com as devidas propriedades, relacionamentos, implementar a programação em toda a aplicação. Isto facilita muito porque o desenvolvedor pode criar a aplicação, e se preciso alterar ou corrigir o ORM antes mesmo de criar o banco de dados. Ao final de tudo criado, você deverá criar o banco de dados baseado no ORM. Perceba a vantagem deste modelo porque tudo o que um desenvolvedor quer é criar a aplicação sem ter que depender do banco de dados, hora porque depende do DBA, hora precisa finalizar os detalhes com o cliente final, ou seja, será que é preciso criar o banco de dados antes? O recurso do Model First dá ao time de desenvolvimento agilidade para produzir, corrigir a aplicação antes mesmo de existir o banco. E qual banco de dados usar? Aqui vai mais uma vantagem, você cria toda a aplicação e ao final decide qual será o banco: SQL Server, Oracle, MySql, DB2, etc.

O Lazy Loading é um recurso que permite dizer ao ORM que as entidades relacionadas deverão ser carregadas somente no momento que em o código solicitá-los. Isto significa dizer que quando o aplicativo carregar todos os pedidos, os detalhes dos pedidos serão carregados somente quando precisar. No entanto, o truque está todo no relacionamento das entidades no ORM, sem precisar adicionar nenhum código como Include ou fazer qualquer outro código para relacionar as entidades com a respectiva chave.

Já Stored Procedures todos sabem o que significa, onde usá-las, vantagens de desvantagens. No EF 4 você precisa apenas adicionar ao ORM todas as SPs a serem usadas no aplicativo. Em seguida, para o modelo lógico, é preciso na janela do Model Browser incluir as funções (Function Import). Neste momento você dará o nome que quiser as funções apontando diretamente para as SPs existentes no ORM. Quando uma Stored Procedure é inserida no ORM e atribuímos uma função para a mesma, é possível definir o tipo de dado de retorno, podendo ser uma classe, texto, inteiro, etc.

ASP.NET 4 Web Forms

Para quem usa Web Forms existem algumas melhorias do ponto de vista dos desenvolvedores. Vou listar as principais, por exemplo, nomear controles com o ClientID: agora é possível definir a propriedade ClientID de cada um dos controles ou de toda a página com a finalidade de gerar no cliente (entenda-se navegador) nomes inteligíveis. Isto porque o ASP.NET não nomeia os controles claramente, e agora com esta propriedade tudo ficará mais claro, principalmente se você usa JavaScript para referenciar controles. Se a propriedade ClientID estiver como Static, o nome final do controle será exatamente aquele que você definiu no design da página. Se você quer ver a sua página nos mecanismos de busca na WEB através do (SEO - Search Engine Otimization) agora temos as tags Keywords e Description que colocamos no cabeçalho da página para que estas sejam inseridas nos mecanismos de busca. Outra melhoria importante é o famoso View State das páginas e controles. O View State é a forma que o ASP.NET mantém as informações entre as idas e vindas do servidor. No entanto, nem todos os controles precisam estar no View State, ocasionando um tamanho muito grande da página, e sem necessidade. Agora é possível você desabilitar (ViewStateMode = Disabled) para toda a página e habilitar somente o View State dos controles necessários para manter as informações. E por falar em tráfego entre o cliente e o servidor, manter dados na sessão é um fator crítico nas aplicações. Agora é possível comprimir o tamanho da sessão, caso use o IIS 7.5, basta no Web.config setar a tag SessionState para compressionEnabled=true. A última das novidades que quero destacar é o Web Deploy, ou seja, a maneira de como fazer a instalação de aplicações ASP.NET no servidor. Normalmente temos diversos ambientes, desenvolvimento, testes, produção, homologação, etc e, para cada ambiente há diversas configurações que armazenamos no Web.Config.  Muitos desenvolvedores mantém diversas cópias do Web.Config justamente para manter as diferentes configurações. Ou ainda, enchem o Web.Config com diversos comentários para ilustrar quais configurações usar em cada ambiente. Isto torna a parte de administração muito confusa Agora, no ASP.NET 4 você tem disponível um conceito de criar diversas configurações do arquivo Web.Config, e através do conceito de Transform, quando fizer o deploy da aplicação, é gerado um único Web.Config de acordo com o ambiente setado. Com isto, cada ambiente tem um arquivo separado contendo todas as particulares configurações, e no momento do deploy, o Visual Studio 2010 faz um merge para atender a vossa necessidade.

Linguagens VB.NET 10 e C# 4

Ouço muito nas palestras que ministro que o VB.NET não é uma linguagem profissional, e desde 2001 quando o VB.NET foi criado, venho defendendo este mito no mercado. Para se ter uma ideia, no VB.NET 10, 100% que se faz com o C#, você faz com o VB.NET, isto porque o VB.NET incorporou conceitos de propriedades anônimos, inferência de tipos, melhorias em expressões lambdas. E, para quem programa em VB.NET agora não é mais preciso usar o caractere underline (_) para quebrar linhas de códigos em 90% dos casos. Finalmente o time de VB implementou isto. Já o C# e o VB.NET temos o uso das linguagens dinâmicas (DLR), paralelismo, o que permite usar dos recursos de multitarefa para diversos códigos onde o framework é que gerencia.

Silverlight 4, RIA Services (LOB), Blend 4, WCF Data Services, Windows Phone

Silverlight, este é o nome da vez em 2010. Desde o lançamento do Silverlight eu nunca vi tanto se falar em uma tecnologia que o mercado vai adotar. Na versão 4 do Silverlight você terá mais facilidade em desenvolver e implementar códigos, interfaces de usuários e serviços. E o que vai mudar na minha aplicação WEB? Tudo muda, desde o layout até a forma de montar a arquitetura, as camadas, os serviços. Do ponto de vista do desenvolvedor é preciso aprender muitas coisas novas, a começar pela linguagem de marcação XAML (pronuncia-se zémel), o qual define a estrutura do layout, os controles, as animações, enfim, é como o HTML é para o ASP.NET. O melhor de tudo é que se você aprender XAML, você estará preparado para desenvolver aplicações para WPF (Windows Presentation Foundation), Silverlight e Windows Phone 7. Atualmente a quantidade de recursos que o Silverlight 4 fornece é digno de criarmos uma aplicação muito profissional. Agora, o melhor de tudo é que temos o RIA Services (LOB – Line Of Business) que é uma maneira de se criar aplicações Silverlight RIA Services voltada à serviços, com muita rapidez e recursos de todo o framework. A integração com o Entity Framework, LINQ, WCF e todas as tecnologias da Microsoft é 100%. Se você usa Web Services, vale a pena estudar WCF Data Services porque basicamente tudo o que estiver relacionado à serviços será em WCF (Wndows Communication Foundation), o qual provê muitos recursos de comunicação, acesso a dados, REST (Representational State Transfer), permite fazer manutenção de dados diretamente nas entidades, há recursos de permitir acesso somente de leitura, gravação e com usar somente usuários autenticados. Por fim, está chegando a nova geração de telefones voltados ao usuário final com o Windows Phone 7, e o que você precisa aprender é o XAML. O VS 2010 tem templates somente para o WP7.

E o Blend 4, onde que entra nesta história toda? O Blend 4 é uma fantástica ferramenta da Microsoft para nos auxiliar no design das aplicações que usam XAML, 100% integrada com o Visual Studio 2010, ou seja, se você deixar ambos abertos realizando alterações distintas, quando alternar para a outra ferramenta usando o ALT + TAB, por exemplo, tudo é atualizado automaticamente. O Blend nos ajudará muito para fazer e melhorar o layout, animações e objetos, pois no VS 2010 você terá que escrever em XAML (linguagem) e no Blend, devido a interface tudo é visual.

Já o WCF Data Services controla toda a parte de serviços, expor Domain Services para encapsular um modelo de dados relacional criado no Entity Framework, o qual será a fonte de serviços para a aplicação Silverlight. Assim você poderá trocar informações com outras aplicações e plataformas.

Por fim o tão esperado Windows Phone 7. Sabe qual é a linguagem a ser usada para criar o design das aplicações WP 7? É o XAML, isto mesmo o eXtensible Application Markup Language. E os códigos, classes, etc, obviamente em C# ou VB.NET. E sabe qual é a ferramenta mais produtiva para o design? É o Blend 4, que é 100% integrado ao Visual Studio 2010. Perceba que se você aprender XAML você estará no caminho certo para desenvolvedor aplicações para WPF, Silverlight e WP 7.

Windows Azure, SQL Azure, Cloud Computing

Muito se fala em colocar os dados e aplicações nas nuvens. E como criar uma aplicação para ser instalada nas nuvens? Use o Visual Studio 2010 o qual tem um template para Windows Azure Cloud Service que permite criar uma aplicação ou um serviço a ser instalado nas nuvens. E o que são as nuvens? São os servidores da Microsoft para hospedar a sua aplicação, serviço ou banco de dados. Este é um serviço pago bilhetado de acordo com o pacote que você contratar. E o banco de dados SQL Server, é possível colocar nas nuvens? Claro, quando você estiver autenticado, basta usar a ferramenta de transferência da estrutura do banco e para os dados você pode pegar no www.codeplex.com (repositório de códigos free) uma aplicação que transfere todos os dados para as nuvens. O fato é que nem todo tipo de campo é suportado no SQL Azure, por exemplo, tipo de campo geográfico a ser usado em mapas. Já o SQL ANSI gerado para o SQL Azure tem algumas distinções na sintaxe sendo preciso escrever SQL ANSI. O melhor de tudo é usar o Entity Framework que o compilador monta todas as instruções SQL sem errar, é claro.

O que muda na minha forma de desenvolver? Muda muito pouco, você pode desenvolver toda a aplicação localmente com o banco de dados local, inclusive com o Entity Framework 4 e todos os recursos que o VS 2010 oferece. Após testada a aplicação, você muda a string de conexão do arquivo de configuração para apontar para o seu banco de dados que está nas nuvens. Em seguida, recompile a aplicação e transfira para as nuvens novamente.

Já tenho uma aplicação pronta e rodando, o que é preciso alterar para coloca-la nas nuvens? Se você usa acesso a dados onde escreve o SQL ANSI, terá que avaliar a sintaxe gerada, já expliquei isto anteriormente. Se você consome serviços via WCF ou Web Services não precisa mudar nada, pois a aplicação apenas consome os dados. No mais é super tranquilo, provavelmente 90% da sua aplicação rodará sem problemas, enquanto que os 10% restantes deixo esta margem para casos complexos.

E qual a vantagem de colocar o banco de dados nas nuvens? Fatores como performance, escalabilidade, necessidade de muito processamento são identificadores críticos para se colocar nas nuvens. Quero dizer que se estes fatores te preocupam atualmente, não pense duas vezes em jogar para as nuvens, pois a Microsoft garante 99,99% de estar no ar sempre. Outro fator importante é que você não precisa comprar servidores, SQL Server, contratar um especialista no produto, se preocupar com atualizações do software, segurança, pois tudo isto já está nos servidores que você contratou da MS.

Pare, pense, reflita muito, use a planilha de ROI disponível no site do Azure para avaliação e simular se vale a pena ou não, converse com empresas que foram para as nuvens e decida. Lembre-se que existem cenários para todo tipo de aplicação.

Porque adotar o .NET Framework 4.0 e quais as vantagens?

O .Net Framework 4.0 tem novas classes e APIs que foram criadas justamente para atender estas novas necessidades, tanto em nível da linguagem (dinâmica, por exemplo), quanto plataforma e serviços como Azure, WCF, Silverlight, LINQ, entre outras. Em relação às vantagens, eu listei diversas no decorrer do artigo, e na minha opinião duas se destacam: total integração com tudo o que se fizer em .NET Framework 4; fácil aprendizado devido a padronização dos códigos e implementação.

Mapa de estudo, por onde seguir, qual o meu plano de estudo?

O primeiro passo é estudar uma linguagem, C# ou VB.NET. Em seguida decida o foco de estudo, aplicações Desktop ou WEB. Se for Desktop, estude Windows Presentation Foundation (WPF), se for WEB estude ASP.NET, ASP.NET MVC, Silverlight 4.

O pré-requisito é estudar banco de dados, você desenvolvedor não precisa aprender o SQL Server, Oracle ou qualquer outo banco de dados, foque no Entity Framework 4.

Para complementar os estudos, invista o conhecimento no LINQ (Language Integrated Query) pois absolutamente tudo usa o LINQ, todos os produtos da MS usam o LINQ, ou seja, junto com as linguagens C# ou VB.NET, invista no LINQ.

Se a sua aplicação precisar ser orientada à serviços estude Windows Communication Foundation (WCF.

Conclusão

Resolvi escrever este artigo para orienta-lo nas novidades da plataforma, ferramenta, linguagens e tipos de aplicações. Fique à vontade para me contatar, tirar dúvidas e navegue no site da Microsoft, cada produto tem uma página com as devidas características.

Renato Haddad

Renato Haddad - MVP, MCPD e MCTS, palestrante em eventos da Microsoft em diversos países, ministra treinamentos focados em produtividade com o VS.NET 2008, ASP.NET 3.5, Reporting Services e Windows Mobile.