PDC 09 – Dia 3

O terceiro e último dia do PDC 09, que aconteceu em 19/11, não teve keynote. Portanto, tivemos o dia inteiro com sessões. Aliás, todos os vídeos e apresentações (PPTs) estão disponíveis para download, gratuitamente, no site do PDC. É uma ótima oportunidade para aqueles não puderam ir fisicamente ao evento ou, para aqueles que foram, assistir a alguma sessão que não conseguiu ver.

Nesse dia, a maioria das sessões que acompanhei foi relacionada a assuntos de deployment de aplicações, testes e qualidade de software. Confesso que fiquei surpreso, positivamente, com o que estão preparando para o Visual Studio 2010. Atualmente, existem vários problemas que podem impactar a produtividade de um projeto de software: o deploy dos builds pode ser propenso a erros e demorar muito se for feito de forma manual, existe dificuldade de se testar a aplicação e os bugs são difíceis de serem reproduzidos.

O Visual Studio Team Lab Management 2010 permite fazer o deployment e executar testes automaticamente, em ambientes virtualizados de teste e homologação. Assim, é possível possuir N máquinas virtuais, cada uma contemplando uma determinada situação de teste, não sendo mais necessário montar os ambientes para cada caso. Além disso, ele gerencia esses ambientes virtuais de modo que, caso seja necessário, possa voltar para a situação inicial rapidamente. Depois do deploy, é tirado um snapshot com o estado em que o ambiente se encontra após as modificações. Se algum dos testes automatizados falhar na execução, é possível ter acesso ao snapshot e reproduzir o erro facilmente. Também é gravado um vídeo com os testes manuais que foram feitos, o que também facilita na reprodução de bugs, pois nesse caso é possível ver exatamente a situação que causou o problema.

Outra funcionalidade que será muito útil é o IntelliTrace. Hoje, é comum ter no meio do código de nossa aplicação, código para instrumentalizar a geração de logs e informações para que possamos rastrear problemas. O que o IntelliTrace faz é gerar essa instrumentalização automaticamente, pois ele grava todo o fluxo de execução da aplicação (por quais métodos ele entrou e saiu) e dados relativos ao programa (parâmetros passados e valores retornados). Com base nessas informações armazenadas, é possível carregar o Visual Studio 2010 exatamente com a mesma situação na qual o bug ocorreu, podendo realizar o debug a partir de então. Ou seja, é possível debugar uma situação que ocorreu no passado, e não somente o estado da aplicação que está sendo executada no momento.

 

Também foi mostrada uma funcionalidade do Visual Studio 2010, Test Impact Analysis, que faz a análise de impacto de testes. Funciona assim: quando uma mudança é feita no código, ela analisa quais os testes que deverão ser executados para garantir que a mudança não irá fazer com que a aplicação deixe de funcionar. Ou seja, ela aponta automaticamente quais testes serão impactos pela alteração do código. Assim, somente executam-se os testes que realmente importam, não gastando tempo com testes desnecessários e nem testando menos do que o suficiente para garantir que nenhum bug foi introduzido na alteração. Também é possível utilizar a função de Gated Checkin em conjunto, que só permite o checkin de código caso determinadas regras tenham sido cumpridas, como por exemplo, somente após a compilação do programa sem erros, se os testes automatizados terem sido executados com sucesso, entre outras que podem ser definidas.

Essas são só algumas das novidades do Visual Studio 2010, no que se refere ao gerenciamento do ciclo de vida da aplicação. Caso tenha ficado interessado, sugiro fortemente que assista às sessões do PDC sobre esse assunto. Como disse anteriormente, fiquei impressionado com as facilidades que serão oferecidas e permitirão ganhos de produtividade.

 

PDC 09 - Dia 2

O segundo dia do PDC 09 começou com o keynote de Steven Sinofsky, presidente da divisão do Windows e Windows Live; Scott Guthrie, vice-presidente da plataforma de desenvolvimento .NET; e Kurt DelBene, vice-presidente sênior do grupo de produtividade de negócios do Office. O keynote também já está disponível no site do PDC.

Com relação ao Windows, não houve nenhuma grande divulgação em si. A apresentação de Sinofsky  ficou restrita a como a Microsoft conduziu o desenvolvimento do Windows 7, o que fez com que, até o momento, ele tenha sido muito bem sucedido. O que me chamou atenção foram alguns dados da telemetria coletados durante as versões CTPs e betas do Windows. São números impressionantes, que mostram como as pessoas estão utilizando o sistema, o que permite fornecer subsídios para eventuais mudanças no funcionamento de alguma característica. Para vocês terem uma idéia do nível de detalhe, eles sabem até a quantidade de cliques dados no botão “Iniciar” do Windows. Sugiro que vejam a gravação do vídeo para obter mais informações.

No Office, o principal anúncio foi a liberação, para o público em geral, da versão beta do Office 2010, que pode ser baixado gratuitamente. Também se falou muito sobre o Sharepoint e sua integração com o Visual Studio 2010, e foi possível perceber que esse é um produto que tem crescido muito em importância para a Microsoft.

 

Mas foi na apresentação de Scott Guthrie que foram feitas as divulgações mais impactantes. Se no primeiro dia o assunto dominante foi Windows Azure, podemos dizer que o Silverlight foi o tema do segundo dia. Apesar de só ter dois anos de vida, o Silverlight já se encontra instalado em 45% dos dispositivos conectados a Internet no mundo, segundo a Microsoft. A adoção tem crescido muito rapidamente com vários sites já fazendo uso do mesmo. O lançamento de novas versões também apresenta um ritmo impressionante, pois nesses dois anos partiu-se da versão 1 até o beta da versão 4, divulgado durante o PDC e cujo download já está liberado.

Entre as principais novidades do Silverlight 4, estão o suporte ao uso de webcam e microfone, suporte a impressão, edição de texto no formato Rich Text, acesso ao clipboard, menus de contexto acessados com o botão direito do mouse, exibição de HTML dentro de uma aplicação Silverlight e arrastar-e-soltar de arquivos locais diretamente para uma aplicação Silverlight. Agora também é possível compartilhar exatamente o mesmo assemblie .NET entre uma aplicação Silverlight 4.0 e uma aplicação .NET 4.0. Outra funcionalidade nova possível será executar uma aplicação Silverlight out-of-the-browser fora do contexto de segurança da sandbox, claro que desde que o usuário permita. E por fim, o Silverlight 4 terá suporte ao browser Chrome do Google. A versão final do Silverlight 4 está prevista para ser lançada em meados de 2010.

Abaixo, mais alguns links sobre como foi o segundo dia do PDC 09, segundo a visão de outros brasileiros presentes no evento:

Dia 2 do PDC 2009 – por Giovanni Bassi

pdc09: segundo dia do evento! – por Waldemir Cambiucci

 

 

 

PDC 09 - Dia 1

Na terça-feira, 17/11, o PDC 09 começou oficialmente. O dia iniciou com os keynotes de Ray Ozzie, Chief Software Architect e substituto de Bill Gates na Microsoft, e Bob Muglia, presidente da divisão de Server and Tools (inclusive, já é possível assistir à gravação ou fazer o download do keynote no site do evento). Como não poderia ser diferente, o assunto principal foi Windows Azure e Cloud Computing, ou computação na nuvem. Definitivamente, esse é a grande tendência do momento (se é que restava alguma dúvida em relação a isso) já que não só a Microsoft, mas todas as grandes empresas de tecnologia possuem alguma iniciativa nesse campo, como Google, Amazon, IBM, etc.

Se dividirmos a história da informática em “eras”, estamos atualmente em seu quinto estágio. O primeiro durou até o fim dos anos 70 e era dominado pelos Mainframes. Nos anos 80 veio a segunda era, com a popularização dos PCs e o surgimento da arquitetura cliente-servidor. Nos anos 90, apareceu, para as massas, uma coisa chamada Internet, que mudaria a vida de todos, principalmente através da web. Na virada do século, veio o quarto estágio, no qual ficou estabelecido o conceito de serviços/SOA. Por fim, entra o estágio no qual estamos atualmente, representado pela nuvem, onde os serviços ficam disponíveis e a infra-estrutura é tratada como se fosse eletricidade, de forma transparente, fazendo com que até mesmo nos esqueçamos que ela existe.

Pode parecer algo ainda distante para muitos, mas já existem empresas implantando sistemas em produção e aproveitando-se das vantagens que a nuvem oferece. E durante o keynote, foram mostrados vários casos que já estão utilizando o Windows Azure, apesar dele só começar a ser comercializado em 2010. O principal benefício é ter uma infra-estrutura de TI dimensionada exatamente para as necessidades do negócio, nem mais e nem menos, pagando somente por que é utilizado. Assim, evita-se que haja uma infra-estrutura superdimensionada só para atender aumentos temporários de demanda, o que caracteriza desperdício, e também se evita a indisponibilidade do serviço caso ocorra um aumento de demanda não previsto. Foi mostrado o exemplo da empresa Kelley Blue Book, que comercializa carros. Eles possuíam dois datacenters, sendo que um deles ficava totalmente ocioso, funcionando como backup para alguma eventualidade. Com o Azure, esse tipo de custo foi eliminado. Além disso, antigamente, levavam 6 semanas para disponibilizar novo hardware para o site deles. Agora, aproveitando-se da capacidade elástica da nuvem, são necessários apenas 6 minutos para aumentar a capacidade de processamento. E quando a mesma não é mais necessária, volta-se a situação anterior rapidamente.

A nuvem do Azure

Esse tipo de infra-estrutura exigirá um novo modelo de gerenciamento e de aplicação, que são diferentes do que temos atualmente. Questões como escalabilidade, orientação a serviços, disponibilidade, elasticidade, entre outras, devem ser consideradas.

Também foram anunciados novos serviços e produtos, como o Microsoft Pinpoint, uma espécie de marketplace para profissionais e empresas de TI oferecerem seus produtos; o Microsoft Dallas, que dá acesso a conjuntos de dados, quaisquer que sejam eles, pagos ou não, para serem utilizados nas aplicações; e o Projeto Sydney, que fornecerá a conectividade entre a nuvem do Azure e o ambiente interno das empresas. Aliás, essa é uma característica muito importante para que o conceito de computação na nuvem decole. Na minha opinião, o futuro será formado por um ambiente misto, com parte da infra-estrutura e dados mantidos internamente na empresa e parte suportado por uma nuvem pública como o Azure.

Saindo do assunto Windows Azure, outra sessão que achei interessante e que vale alguns comentários foi sobre o futuro do ASP.NET. Em linhas gerais, o que estão avaliando para as próximas versões do ASP.NET são: utilização do pattern ActiveRecord para acesso a dados no ASP.NET MVC e WebForms; suporte a funcionalidades do HTML 5, como vídeo, drag and drop e armazenamento de dados offline; melhorias na manipulação de imagens; envio automático de e-mail para confirmação de cadastro em um site, útil para se certificar que o e-mail é válido; notificação sobre progresso de upload de arquivos; melhor suporte a CSS Sprites. Aliás, esse é um conceito interessante: com os CSS Sprites é possível, através de CSS,  agrupar vários arquivos de imagens e tratá-los como se fossem uma única imagem. A vantagem é que o browser só necessita de uma única conexão com o servidor para obter o arquivo, ao invés do que aconteceria caso essa técnica não fosse aplicada (seria necessária uma conexão para cada uma das imagens). Isso aumenta a velocidade com que os elementos da página são baixados, tornando a navegação mais ágil.

Abaixo, seguem links para posts sobre o primeiro dia do PDC, com mais informações sobre o que está acontecendo, escritos por outros brasileiros que também estão aqui em Los Angeles:

Logo mais escreverei sobre como foi o segundo dia do PDC 09. Houve muitas novidades sobre o Silverlight. Se você quiser saber o que está acontecendo no PDC 09 em tempo real, acompanhe-me pelo twitter.

PDC 09 - Dia 0

Como escrevi no último post, estou em Los Angeles, para participar do PDC - Professional Developers Conference, que é um evento voltado para desenvolvedores e arquitetos de software, no qual são mostradas as tecnologias de longo prazo e tendências da plataforma de desenvolvimento da Microsoft.

Apesar do evento só começar oficialmente no dia 17, em 16/11 ocorreu o que foi chamada de “pré-conferência”, na qual foram dados workshops que ocuparam todo o dia, sobre vários assuntos. O workshop que assisti foi o Microsoft Technology Overview, apresentado por Michele Leroux Bustamante. Partiu-se do princípio de que há uma quantidade absurda de tecnologias a serem consideradas no desenvolvimento de software, fazendo com que muitas vezes não saibamos nem mesmo por onde começar. Pegue como exemplo as tecnologias de acesso a dados. No .NET Framework 1.X, devia-se escolher, basicamente, entre DataSets e DataReaders. No .NET Framework 2.0, foram introduzidos os DataSources. Já no .NET Framework 3.5, a grande atração foi o Linq To Sql. E agora, fala-se sobre o Entity Framework e o ADO. NET Data Services.  Esse é só um exemplo, sendo que muitos outros podem ser encontrados. O objetivo do workshop era equalizar o conhecimento de todas as tecnologias de desenvolvimento da Microsoft, apresentando a evolução das mesmas ao longo do tempo e algumas tendências.

Os pontos que achei interessante foram com relação às tendências para linguagens de programação na visão da Microsoft. O C# e o Visual Basic estão cada vez mais parecidos em termos de características, o que vai continuar acontecendo nas próximas versões. Ou seja, a linguagem que você escolhe para desenvolver é uma questão de gosto pessoal e deve ter pouca influência no resultado final. O que realmente importa é a plataforma sobre a qual a aplicação será executada, no caso, o .NET Framework. Outras apostas são programação declarativa, linguagens dinâmicas e programação funcional (C# e Visual Basic estão recebendo elementos de linguagens funcionais gradativamente, e o F#, uma linguagem totalmente funcional, será lançado com o Visual Studio 2010, em março do ano que vem). Outro destaque vai para computação paralela, ou seja, aproveitar da melhor forma os processadores multi-cores disponíveis atualmente no mercado, com a utilização de tecnologias e ferramentas que facilitem essa tarefa. 

Um ponto que foi reforçado durante todo o workshop foi a importância da consistência nos critérios para escolha das tecnologias a serem utilizar nos projetos. Windows Forms ou WPF? WPF ou Silverlight? Silverlight ou ASP.NET? WebForms ou MVC? Linq to Sql ou Entity Framework? Não importa qual tecnologia seja escolhida, desde que o processo de escolha seja consistente, criterioso, consciente, com base em uma sólida arquitetura e de acordo com as reais necessidades da aplicação. Caso contrário, haverá um apanhado de tecnologias e produtos cuja integração não será fácil.

Esse é um breve resumo do que foi falado, com o que eu considerei como principais pontos, mas muitos outros assuntos foram abordados, como por exemplo, acesso a dados, desenvolvimento de aplicações Windows, desenvolvimento Web e, como não poderia deixar de faltar, cloud computing e Windows Azure. Como escrevi no início, todas as tecnologias de desenvolvimento da Microsoft foram apresentadas. Como esse é um assunto extenso, o workshop, em alguns momentos, acabou ficando genérico e superficial. Além disso, para quem já tinha alguma noção dessas tecnologias, ficou um pouco cansativo, mas acredito que foi proveitoso para aqueles que precisavam se atualizar no que hoje é considerado o estado da arte tecnológico do mundo Microsoft.

O PDC 09 vai começar

PDC 09

O PDC - Professional Developers Conference, é o evento da Microsoft voltado para desenvolvedores e arquitetos de software, no qual são mostradas as tecnologias da plataforma de desenvolvimento da Microsoft. Nesse ano, o evento vai começar oficialmente no dia 17/11 em Los Angeles, nos EUA. Se você me acompanha pelo twitter, já deve saber que, graças a uma oportunidade no trabalho, já estou em Los Angeles para acompanhar o evento pessoalmente pela primeira vez.

A expectativa é alta, pois normalmente são feitos grandes anúncios no PDC. Foi assim quando a Microsoft anunciou o .NET Framework no PDC de 2000, e o Windows Azure em 2008, só para ficar em alguns exemplos.

Irei fazer uma cobertura ao vivo pelo twitter, escrevendo sobre as principais novidades que aparecerem por lá. Além disso, pretendo escrever um resumo sobre cada dia de evento aqui no blog. Por falar nisso, vocês devem ter notado que o ritmo de atualizações aqui do blog está devagar. Ultimamente, tenho dado preferência ao twitter, onde estou sendo mais participativo. Portanto, se você quiser ficar por dentro do que vai rolar no PDC, acompanhe o blog ou minha conta no twitter.