Controle de versão / ALM

Se você é, ou deseja ser, usuário de subversion, este é um artigo interessante para atividades não tão básicas, porém desejadas.

Este artigo é genérico, sobre controle de versão. Um ótimo documento de como organizar e gerenciar suas branches.

O Time DevDiv é responsável pelo Team Foundation Server e com certeza seu maior cliente. Uma série de posts está apresentando como eles utilizam o TFS internamente. Por enquanto o foco é gerência de projetos, através do issue tracking. Este é o último post, mas vale ler todos.

Arquitetura

Mr. I.M. Right discorre sobre resilência de um aplicativo através de sua capacidade de auto-regeneração. Parece viagem, mas não é.

< Notícias >

Arquitetura

Rob Conery está publicando uma série de vídeos sobre o ASP.NET MVC do ponto de vista de quem está começando a trabalhar com o framework. A série já está na Parte 8, mas vale a pena assistir do início.

Greg Young está publicando uma série sobre Distributed DDD (Domain Driven Design), ou seja como distribuir sua aplicação, onde implementar as mensagens, etc.

Udi Dahan, desenvolvedor do NServiceBus, escreveu um excelente artigo sobre arquitetura e serviços de longa duração. Um caso real que resultou no desenvolvimento do NServiceBus.

Ferramentas

lançado o Json.Net 2.0, James Newton-King lista as novidades desta versão.

Linguagens

Depois a sessão de sobre a Spec# no ALT.net de Seattle parece que todos se apaixonaram por esta extensão do C# desenvolvida pelo Microsoft Research. Você ver o vídeo da apresentação aqui, ou ler Matthew Podwysocki explicando algumas de suas funcionalidades, ou ainda escutar a entrevista no Hanselminutes do “pai” da linguagem, Rustan Leino.

< Notícias >

UI / WPF

A Mindscape, empresa responsável pelo Lightspeed, lançou mais um produto: WPF Elements, para se juntar ao WPF Porperty grid em sua linha de controle de UI para WPF.

Nova versão do ASP.NET Dynamic data.


Cloud

TreeSharp, uma Biblioteca C# para acessar o S3, serviço de storage da Amazon.


REST

Rick Strahl ensina como configurar o WCF para ASP.NET Ajax e RESTfull services.


LINQ

Visual LINQ, para quem gosta de designers visuais.


Testes unitários

Lançado o xUnit.net 1.0. Ainda estou procurando entender qual o objetivo de YAUTF (Yet another Unit test framework).

Um AutoMocking container feito com o Unity.


ALM

Mingle 2.0 anunciado pela Thougth studios. Várias novidades.

Testes unitários

Scott Guthrie apresenta testes unitários para aplicações Silverlight


Arquitetura

O Enterprise library 4.0 está a caminho, o time de Patterns & Practices já liberou o primeiro CTP.

O mesmo time também liberou o Unity 1.0, framework de Dependency Injection.

Rocky Lhotka lançou o CSLA .Net versão 3.5. Algumas semanas atrás o autor deu uma entrevista para o Hanselminutes falando sobre acesso a dados.

< Notícias >

VSTS

um utilitário muito útil, que mostra a história do objeto no controle de versão, na IDE.


Ferramentas

SubSonic: 2.1 Beta 2 disponível para download.

Gallio, a plataforma de automação do time do MBUnit, está disponível na versão Alpha 2.

Lançado o DotNetOpenId 0.1.2

LightSpeed 2 está no forno, com suporte ao LINQ.

Ayende anuncia o NHibernate 2.0 Alpha


MVC ASP.NET

Uma das vantagens do MVC ASP.NET é a fácil integração com bibliotecas Javascript. Veja o preview 2 da jQuery for MVC ASP.NET


Agile

A VersionOne disponibilizou uma versão hospedada gratuita para até 5 usuário de seu aplicativo de gerenciamento de software ágil.

Outro software de gerenciamento de projectos, ScrumWorks Pro, tem nova versão.

< Notícias >

LINQ

Ivan Carrero mostra como acessar o Youtube utilizando o XML to LINQ.

Um LINQ Framework design guideline

LLBLGen, a ferramenta de ORM do ploêmico Frans Bouma, lançou o LINQ to LLBLGen beta. Frans está publicando todo o processo de criar esta funcionalidade em seu blog.


Testes

Utilizando NBehave + Watin para desenvolver testes de aceitação em BDD

Liberado o xUnit.net 1.0 RC2


Ferramentas

SubSonic: 2.1 Beta 2 disponível. O projeto ganhou também um web-site novo, movido à Grafitti


VSTS

Marcus Garcia nos apresenta um Post It para Visual Studio


MVC ASP.NET

ScottGu surpreende mais uma vez, publicando o código-fonte do MVC ASP.NET no codeplex.

Da série não desenvolva o que você pode integrar

Deixe de lado a síndrome de NIH (Not invented here) e abra seus olhos para o que já existe de ferramentas no mercado. Laurent Kempé está publicando uma série sobre o Lucene.Net e como integrá-lo a sua aplicação para realizar buscas nos seus objetos de negócio.


Visual Studio

Um visualizador de gráficos (desenhos) para o debugger.


Ioc containers (Inversão de Controle)

A MSDN de março vem com um ótimo artigo sobre desacoplamento e Ioc. Hanselman fez uma lista dos Ioc containers disponíveis para .Net


MVC ASP.NET e Webforms

Haack publicou um utilitário para testar o seu routing. Um pouco antes ele havia publicado como utilizar o router do MVC em uma aplicação Webforms. Agora urls amigáveis não são mais exclusividade das aplicações MVC.

Silverlight

Para quem estava esperando os controles visuais para Silverlight a Julie Lerman mostra as opções que vem com o 2.0


CTPs e novas versões

O 2o CTP do Microsoft Sync Framework já está disponível para download.

ASP.NET MVC Preview 2 lançado.

O CLR Addin Team, responsável pelo namespace System.Addin, do .Net Framework 3.5, que visa facilitar a criação de aplicações "addin-aware", está publicando exemplos e utilitários em um novo projeto do Codeplex. As novidades você pode acompanhar pelo blog do time.

Aqui você pode pegar o primeiro drop do Prism. Além da aplicação de referência, um stock trader, utilizando o framework para criação de composite applications, ele vem com testes unitários e testes de aceitação. Não olhei, mas deve ser uma boa referência.

FxCop 1.35, versão final.

SubSonic: 2.1 Beta 2 disponível para download e cheio de novidades

JSon.Net 2.0 Beta 2 foi lançado com várias melhorias, inclusive no LINQ to JSON.

TFS / VSTS

Dica do meu amigo Marcus Garcia, Build recipes, um wiki com "receitas" de scripts de build em MSBuild. São pequenos exemplos de script com funções comuns, como "criar um instalador WiX"

Dicas para melhorar suas configurações de debug do VS

Novo Visual Studio Gallery, com addins e utilitários para o VS, incluindo o VSTrac, que integra o controle de tickets do Trac na IDE.


Testes

Novidades no mundo das ferramentas de testes para .Net. O NBehave, sobrevivente da fusão com o NSpec, irá utilizar a Gallio engine. Esta última é uma empreitada do pessoal do MBUnit para criar uma plataforma exntensível para ferramentas de testes. Joe Ocampo dá mais detalhes sobre o futuro do NBehave.


Arquitetura

Os projetos Contrib estão na moda, agora é a vez do EF Contrib. Com um plugin de geração de código e um pós-compilador que "introduz" o EF no seu código.

Faz bastante tempo que não falo sobre processos e metodologias, tenho dedicado mais tempo para o conteúdo técnico do blog. Porém, vou interromper o jejum para falar de um assunto que toma cada vez mais espaço em grupos de discussão e artigos e que me interessa bastante: A relação entre metodologias ágeis e certificações de processos, como CMMI e Mps.br.

Interesso-me primeiro porque não é à toa que este assunto ganha volume. Existe uma demanda comercial crescente para adquirir certificações. Segundo porque, já que é uma realidade, espero que esta mescla se dê da melhor forma possível para as empresas.

Antes, porém, gostaria de reafirmar que acho isto triste. Afirmar que uma empresa certificada é automaticamente melhor que outra não certificada, é uma grande falácia. O CMMI, e seu irmão tupiniquim, Mps.br, buscam a melhoria contínua do processo e, indiretamente, a melhoria da qualidade do produto final. No entanto, este relacionamento é indireto e incerto. Qual é exatamente este coeficiente? Quanto devo investir no meu processo para alcançar uma desejada qualidade de produto?

Mas voltando ao assunto principal, é possível alcançar as exigências das certificações sem comprometer sua metodologia ágil? Sinceramente não sei, mas acho improvável. Ambos buscam resolver os mesmos problemas, mas os princípios e as bases que os suportam são divergentes.

Artigos sobre o assunto, sejam teóricos ou estudo de casos, são uma interessante fonte de informação para empresas interessadas em “agilizar” seu processo certificado ou certificar seu processo ágil. Eu já li alguns destes artigos entre eles Scrum and CMMI Level 5: The Magic Potion for Code Warriors, cujo um dos autores é nada mais que Jeff Sutherland, e Utilizando Metodologias Ágeis Metodologias Ágeis para atingir para atingir MPS.BR nível F na MPS.BR nível F na Powerlogic, publicado na 3ª edição da revista Visão Ágil.

O que sinto falta em todos estes artigos que li até hoje foi de uma análise do ponto de vista dos princípios ao invés das práticas. Afinal, as práticas são implantadas sempre observando os princípios definidos (leia aqui para mais detalhes). Sem princípios e objetivos claros não é possível estabelecer um conjunto de práticas consistentes, que se complementam e se fortalecem.

É muito fácil adaptar, flexibilizar ou até “entortar” as práticas para atingir os objetivos da certificação. No final você tem basicamente as mesmas práticas, umas um pouco alteradas, algumas novas, outras deixadas de lado. Por tudo isto, analisar o resultado do ponto de vista das práticas é como dizer: “bom, as se a maior parte das práticas sobreviveu, então continuo alcançando meus objetivos”.

Seria muito importante analisar o processo final do ponto de vista dos princípios e objetivos inicialmente definidos. Até que ponto o novo conjunto de práticas me ajuda ou atrapalha a atingir aqueles objetivos e obedecem aqueles princípios que foram propostos?

Por exemplo, de que adianta ter sprints entre 15 a 30 dias se ao final de cada sprint não tenho uma versão pronta para produção? Ou se esta versão não é utilizada em cenários reais para que o feedback do cliente/usuário e seja capturado?

Se medirmos os princípios, veremos que o feedback constante e freqüente dos clientes não está sendo alcançado. O mesmo não acontece se olharmos para as práticas.

Afinal de contas, tudo vale nas metodologias ágeis, contanto que você continue buscando melhorar o processo para alcançar os princípios e objetivos estabelecidos.