quarta-feira, dezembro 19, 2007

Números do Team System na Microsoft

Visitando o Blog da Aline Frias, encontrei uma informação super interessante sobre a utlização do Visual Studio Team System e do Team Foundation Server na própria Microsoft. É isso aí! A MS utilizando seus próprios produtos e com números realmente impressionantes. Confiram:

  • Projetos no Team Foundation Server: 1.355 (taxa de crescimento de >100 novos projetos/mês)

  • Usuários Ativos: 8.452 (grupos que já usam TFS: MSIT, DevDiv, SQL, Office, Windows, MSCOM e Windows Live/MSN)

  • Work Items: 1.254.266

  • Arquivos de Código-Fonte: 27.311.195 (isso mesmo, mais de 27 milhões de arquivos-fonte!)

Os números foram enviados pelo Joe Schwetz, Group Manager do time de TFS.

Abraços
André Dias

Entity Framework para Oracle, DB2 e outros bancos

Há alguns meses, eu publiquei um post sobre o LINQ to SQL (até então conhecido como DLinq) trabalhar exclusivamente com SQL Server e falando que a tendência era de que a Microsoft iria disponibilizar um Object Model para parceiros estenderem.

Pois bem, parece que a tendência se confirmou e hoje o David Sceppa, Program Manager do ADO.NET, divulgou uma lista de parceiros que estão trabalhando em providers do Entity Framework para Oracle, DB2, MySQL e muitos outros. Confira a lista completa dos parceiros e providers abaixo:


  • Core Lab - fornecendo drivers para Oracle, MySQL, PostgreSQL e SQLite

  • IBM - fornecendo drivers para IBM DB2 data server e Informix Dynamic Server (IDS)

  • MySQL AB - fornecendo drivers para MySQL

  • Npgsql - fornecendo drivers para PostgreSQL database versões 7.3+ e 8.x

  • OpenLink Software - fornecendo drivers para Oracle, Informix, Ingres, Sybase, MySQL, PostgreSQL, DB2, Progress e Microsoft SQL Server, e qualquer data source acessível via OpenLink ODBC ou JDBC bridge drivers

  • Phoenix Software International - fornecendo drivers para SQLite databases

  • Sybase - fornecendo drivers para SQL Anywhere databases

  • VistaDB Software - fornecendo drivers para to VistaDB databases

  • Firebird - fornecendo drivers para Firebird

Pena que alguns deles são pagos, mas acredito que teremos em breve bons providers free.

Abraços
André Dias

domingo, dezembro 16, 2007

Está realmente mais fácil desenvolver software?

Apesar de não ser muito velho, eu tive a oportunidade de escrever alguns programinhas em linguagens procedurais como o Cobol e Clipper. Para fazer esses programinhas, que ainda vemos em padarias e farmácias, eu não usava mais que um Edit do MS-DOS, um compilador e um link editor.

Eu escrevia as dezenas de .PRGs, não tinha que saber nada além da linguagem e quando queria "abusar" um pouquinho, usava no máximo uma biblioteca gráfica chamada CLBC.

Bons tempos! Eu era feliz e não sabia!

Há duas semanas, eu participei do TechEd 2007, um evento fantástico, muita coisa nova, mas uma afirmação que vi em várias palestras me fez para para pensar um instante. Está realmente mais fácil desenvolver softwares?

Antes mesmo de escrever uma linha de código, eu tenho que ler caso de uso, entender o diagrama de classes, ver o comportamento dinâmico através do diagrama de sequência, analisar o MER, dar uma passada pelo documento de requisitos não funcionais e ver o que vai se aplicar ao caso de uso que irei desenvolver, planejar testes unitários, só para citar alguns.

E na hora de codificar, o que irei usar? Silverlight, WPF, ASP.NET Ajax, ADO Entity Framework, LINQ, WCF, WF, ASP.NET MVC, .NET Framework 3.5, SQL 2008, DSL. Isso listando apenas tecnologias Microsoft. Se abrirmos o leque para outras empresas ou open source, a coisa fica ainda pior (ou melhor?).

O que mais chama a atenção disso tudo, é que são produtos / tecnologias que não possuem mais que dois anos de vida, sem contar que algumas nem foram lançadas oficialmente. E o VB6, DAO, RDO, ADO, ActiveX, ASP 3, DTS, COM+, Remoting, ASP.NET WebServices que eu usava até algum tempo atrás?

Tenho notado que a cada 2 anos em média, eu tenho que reaprender a fazer software para não ficar desatualizado. E nem sempre você tem a possibilidade de se tornar especialista num produto / tecnologia para utilizá-lo, ou seja, você acaba perdendo muito tempo em erros bobos que acabam consumindo todo o tempo que você "ganharia" utilizando a nova tecnologia.

É, a cada dois anos eu aprendo um monte de tecnologias novas para resolver problemas que as tecnologias do passado diziam que resolveria :-)..

Concluindo, se está mais fácil desenvolver eu não sei, quando eu usava Clipper eu não tinha toda a integração e necessidades que temos hoje, mas que está cada vez mais complicado acompanhar essa evolução tecnológica, está!!! Sabe o que é pior? EU ADORO ISSO!!!

Viva a tecnologia :-p

Abraços
André Dias

Liberação do primeiro CTP do ASP.NET MVC

Semana passada, Scott Guthrie anunciou em seu blog a liberação do primeiro CTP do ASP.NET 3.5 Extensions. Esse novo pacote de extensão do ASP.NET contém os seguintes componentes:
  • ASP.NET Ajax Improvements
  • ASP.NET MVC
  • ASP.NET Dynamic Data Support
  • ASP.NET Silverlight Support
  • ADO.NET Data Services
Como a minha praia é mais arquitetura de software e acesso a dados, de todo esse conjunto de componentes, os que mais me interessam são ASP.NET MVC e ADO.NET Data Services.

Se você também está interessado em aprender um pouco sobre o design pattern Model-View-Controller (MVC), seguem abaixo alguns links que te darão uma boa base de como implementar essa arquitetura em sua aplicação:

ASP.NET MVC Framework (Part 0): What is it?
ASP.NET MVC Framework (Part 1): Building an MVC Application
ASP.NET MVC Framework (Part 2): URL Routing
ASP.NET MVC Framework (Part 3): Passing ViewData from Controllers to Views
ASP.NET MVC Framework (Part 4): Handling Form Edit and Post Scenarios
Scott Hanselman's ASP.NET MVC First Look Screencast
TDD and Dependency Injection with the ASP.NET MVC Framework
Writing Unit Tests for Controller Actions

É, parece que alguns anos após abandonar o Java e o Struts, voltarei a programar com esse conceito na veia (nem vem com aquela história de que ASP.NET já implementa MVC com Page Controller desde a versão 1.0, que não cola) :-)

Abraços
André Dias

quarta-feira, dezembro 12, 2007

Como alterar o Team Foundation Server no Project 2007

Há alguns meses, implantamos o Team System na empresa para avaliarmos o produto. Foi uma instalação Single Server, apenas um projeto de avaliação e muuuuita experiência. Os resultados foram tão bons que hoje temos todos os projetos da empresa hospedados nele e dezenas de desenvolvedores conectados no Team Foundation Server e integração com Excel, Project, desenvolvimento externo, continuous integration, etc.

Acontece que o número de acessos aumentou, os recursos utilizados também e vimos a necessidade de migrar o Team System para uma arquitetura distribuída. Então, colocamos o Team System em algumas máquina, restauramos o Backup e fizemos a migração com sucesso.

Colocamos o servidor novo no ar, notificamos os desenvolvedores e analistas para apontarem para o novo servidor e quando achávamos que estava tudo bem, me aparece um gerente dizendo que não conseguia mais atualizar o MS Project Professional 2007 que estava conectado ao Team System.

Após muito pesquisar, qual é a solução que a Microsoft oferece? Criar um project do zero, importar os Work Items e fazer uma espécie de Merge na unha. Confesso que não acreditei quando vi que tanto o MS Project quanto o Excel não permitem alterar o endereço do Servidor do Team System.

Uma gambiarra que fizemos para resolver o problema temporariamente, foi alterar o arquivo hosts do Windows para apontar o nome do servidor antigo para o IP do novo servidor, mas não recomendo ninguém a fazer isso, pois é muuuuita gambiarra :-) Foi apenas uma solução temporária que encontramos.

Enquanto não achamos uma solução melhor, vou seguir o que a Microsoft indicou no artigo Reconnect a Microsoft Project File to Team Foundation Server.

Mas que foi um belo balde de água fria, num momento que estávamos super empolgados com os testes e planejamento de migração para o VSTS 2008, foi !! Espero que em breve saia algum patch pra isso.

Abraços
André Dias

segunda-feira, dezembro 10, 2007

Especificação do Team System code name Rosario disponível

Eu já tinha me surpreendido com a participação dos Product Managers do Team System participando de fóruns para colher feedbacks e sugestões da comunidade, mas confesso que nunca imaginei ver a Microsoft abrindo a especificação do produto para podermos opinar de verdade.

Navegando atrás de informações sobre o Visual Studio Team System code name Rosario encontrei um blog falando que junto com o CTP de novembro, a MS liberou algumas especificações do que será implementado e um fórum específico para discutir as features que são importantes para o produto.

Atualmente, existem 3 especificações disponíveis:

  1. Visa melhorar o processo de adição de arquivos no Version Control, justificando que na versão atual a experiência de adicionar arquivos é complexa e tem um workflow não-linear, especialmente para arquivos em localizações não mapeadas.


  2. Foca em melhorar a experiência de achar o history para um item no Version Control. Algumas mudanças serão feitas na janela do ChangeSet para fornecer recursos para rastrear em branches e merges. Isso eu já tinha sentido falta, pois quando você faz um branch, você perde todo o histórico.


  3. Trata da melhora do processo de Labeling no Version Control. A especificação diz que é processo é muito complexo para uma tarefa que deveria ser simples e que muitas opções estão disponíveis para processos triviais.

Todas essas especificações podem ser encontradas em http://msdn2.microsoft.com/en-us/teamsystem/bb936702.aspx e sugestões e comentários sobre as especificações podem ser postadas no fórum específico.

Só pra fechar, gostaria de dizer que achei essa iniciativa da Microsoft fantástica e adoraria que isso fosse estendido a outros produtos / tecnologias como .NET Framework e Entity Framework.


André Dias

sábado, dezembro 08, 2007

Resumo TechEd 2007 - Dia 7

Esse é o último post da série com o Resumo do TechEd 2007 e caso você não tenha lido o resumo dos outros dois dias, recomendo a leitura dos dois posts abaixo:

Resumo TechEd 2007 - Dia 5
Resumo TechEd 2007 - Dia 6

Vamos as palestras:

  • Software + Services

Palestra realizada pelo Otavio Coelho, arquiteto da MS, onde foi comentado sobre os benefícios de aplicações que utilizam o conceito Software + Services. Um exemplo deste conceito é a plataforma Live da Microsoft onde você tem um client que te permite trabalhar desconectado e ao mesmo tempo utiliza serviçoes na Web. O Windows Live Mail é um exemplo perfeito disso.

Falou também sobre os desafios da SOA, principalmente sobre a dificuldade de como escolher o que deve ser SOA ou não dentro da sua aplicação e também sobre o SOAMM (SOA Maturity Model), um modelo de maturidade para SOA recentemente lançado pela Microsoft que classifica a maturidade em 4 níveis: básica, padrão, avançada e dinâmica.

Eu queria ter participado mais desta palestra, no entanto, cheguei atrasado e tive que sair mais cedo, mas de qualquer forma foi uma apresentação muito rica em conceitos de arquitetura.



  • Composite Applications e Office Business Applications (OBA)

Mais uma palestra para abrir a mente, pelo menos a minha :-) Eu que até hoje trabalhei muito pouco com desenvolvimento na plataforma Office, pude ver como está fácil usar o Office como plataforma de desenvolvimento. Criar Ribbons, Forms Region e Task Panes está muito fácil e oferece uma experiência para o usuário incrível.

Muito conteúdo sobre o assunto, pode ser encontrado no blog do palestrante, Waldemir Cambiucci.

  • Construindo Aplicações Windows Communication Foundation e Windows Workflow Foundation com Microsoft Visual Studio 2008

Mais uma palestra do Waldemir e mais um show de palestra. Inicialmente, essa palestra seria dada pelo Marcelo Uemura, desenvolvedor do Windows Workflow Foundation, mas por problemas de saúde ele não pôde comparecer.

A palestra começou com uma comparação bem engraçada, porém fundamental para o entendimento do WCF. O exemplo citado foi que no COM+ você tem um série de recursos que o servidor disponibiliza pra você e que você não precisa se preocupar com a configuração e no WCF você tem a liberdade de escolher cada um desses recursos, combinando vários deles, por exemplo: hosting, protocolos, encoders, comportamento de transações, concorrência e por aí vai, porém agora você vai precisar saber pra que serve cada um desses recursos para tirar o melhor proveito da plataforma.

Depois disso, foi passado uma visão geral da arquitetura do WCF, foi citado os principais componentes (contratos de dados e serviços, bindings, endpoints, behaviors) e como eles se relacionam e uma demo pra esclarecer melhor todo o conceito.

Em seguida, foi apresentado o Windows Workflow Foundation trabalhando como um consumidor do WCF e ficou bem claro a facilidade de desenhar processos de negócio com o WF. Um workflow de demonstração foi montado utilizando atividades palalelas, atividades condicionais e de código e algumas delas consumindo serviços WFC.

Uma palestra bem completa demonstrando a integração dos dois principais pilares do .NET Framework 3.0.



  • Arquitetura de Infra-estrutura para a Web

Palestra dada por Fernando Gebara que começou falando sobre a importância de tratar intranet, internet e extranet da mesma forma do ponto de vista de segurança, já que 80% dos ataques são de origens internas ou com a ajuda de alguém interno.

Comentou também sobre a diferença do conhecimento prévio dos usuários da inter, extra e intranet, já que conhecemos nossos usuários da intra e a extra, mas não da internet e com isso podemos aplicar role-based security para determinar o que estará disponível ou não para os usuários.

Foi comentado também da importância da padronização de hardware para a manutenção da rede e que a virtualização pode ser um grande aliado para a recuperação de máquinas rapidamente. E nessa discussão, citou um dado sobre um dos datacenter da Microsoft que deixou muita gente surpreso. Ele citou que existe um datacenter com mais de 60.000 computadores que são administrados apenas por 5 pessoas.

Foi uma palestra bastante teórica, mas que falou de pontos que parecem ser óbvios, mas que nem sempre damos a devida atenção.

  • Desenvolvendo Soluções de BI: criação de dashboards e scorecards e o Microsoft Performance Point 2007

Essa eu realmente caí de paraquedas. Eu estava agendado em um outra palestra, mas o tema sobre BI acabou me interessando e resolvi olhar um pouco pra esse mundo que não conheço praticamente nada. O que eu vi, foi um monte de siglas novas, produtos novos, conceitos que eu não sabia definir muito bem, mas que já estão na minha lista de estudos.

Inicialmente o Christiano Santos mostrou como está fácil criar indicadores no Excel 2007. Mostrou vários recursos da ferramenta para destacar células, apresentar setas de indicação, imagens customizadas de modo a deixar muito mais fácil a leitura dos dados.

Em seguida, fez a publicação desta planilha no Excel Services, um recurso que vêm com o Sharepoint Server 2007 e que permite a visualização da planilha na web. O interessante desse produto é que você pode escolher publicar a planilha inteira, escolher algumas worksheets ou até mesmo só alguns objetos da planilha que você deseja publicar.

Depois disso foi passado os serviços disponíveis no Sharepoint Server 2007 e alguns sites de demonstração apresentando dashboards, scorecards e um novo produto, o Microsoft PerformancePoint Server 2007 que pelo que deu pra entender é um sistema de gerenciamento empresarial que une monitoramento, análise e planejamento.

Bom galera, com isso finalizo o resumo do TechEd 2007 e agora os próximos posts deverão apronfundar nos temas que mais me chamaram a atenção durante o evento (Entity Framework, Visual Studio Tester Edition, Integração do Team System e Project Server) e algumas novidades que forem aparecendo pelo trabalho.

Um abraço

André Dias