segunda-feira, agosto 04, 2008

Migrando para o Visual Studio Team System

Vamos imaginar a seguinte situação, você é um dos responsáveis pela área de TI de sua empresa, você acabou de sair de uma palestra sobre Team System e ficou fascinado com a ferramenta. Você viu o novo Source Control e sentiu vontade de jogar o seu controlador de versão atual no lixo, adorou a integração com o Sharepoint através do Portal do Projeto, ficou muito interessado no gerenciamento de work items e quando viu as dezenas de relatórios apresentando diversas métricas do seu projeto, pensou: “É tudo o que eu sempre quis!”.

Esse é o sentimento da maioria das pessoas quando conhecem o Team System pela primeira vez. O segundo sentimento e a pergunta que sempre o acompanha é “Na minha empresa eu uso Java, Eclipse, CVS, VB6, Source Safe, ClearQuest, ferramentas proprietárias, etc. Como faço pra substituir tudo isso pelo Team System? É possível?”.

Bom, se não fosse possível ou se o produto não fosse tão bom, eu não estaria fazendo toda essa propaganda, não é mesmo? Vamos ver abaixo então alguns cenários e como resolvê-los.

Cenário 1: Migrando Work Items do ClearQuest para o Team System
Existe uma ferramenta que vem com o próprio Team System chamada CQConverter. Essa ferramenta permite fazer a conversão do ClearQuest schema, defeitos e controle de mudança para o Team System. Há um documento bem detalhado chamado Migrating Source Control and Defect or Change Tracking to Team Foundation que mostra o todo o processo de migração além de guias passo a passo mostrando como executá-lo.

Cenário 2: Migrando Work Items de uma ferramenta proprietária para o Team System
Para migrar os dados de uma ferramenta proprietária, você terá um pouco mais de trabalho, já que terá que “meter a mão na massa”, mas nada muito complexo. O Team Foundation Server oferece um SDK bastante completo que te permite fazer praticamente tudo através de código .Net.

Basicamente, você precisará escrever um programa que fará a leitura do Data Source de sua ferramenta proprietária e copiar esses dados para o Team System usando o SDK. Veja abaixo um exemplo de como criar Work Item através do C#.

//Adicionar essas referencias
Microsoft.TeamFoundation.Client;
Microsoft.TeamFoundation.WorkItemTracking.Client


//TFS
NetworkCredential teamFoundationCredential = new NetworkCredential(”sUserName”, “sPassword”);
TeamFoundationServer tfs = new TeamFoundationServer(”http://yourServer:8080″, teamFoundationCredential);
tfs.EnsureAuthenticated();

WorkItemStore workItemStore = (WorkItemStore)tfs.GetService(typeof(WorkItemStore));
Project tfsProject = workItemStore.Projects[sProjectName];
WorkItemType wiType = tfsProject.WorkItemTypes[”Requirement”];

WorkItem workItem = new WorkItem(wiType);
workItem.Title = “Title”;
workItem.Description = “Desc”;
workItem.Fields[”Requirement Type”].Value = “functional”;
workItem.State = “Proposed”;
workItem.Reason = “New”;
workItem.Fields[”Triage”].Value = “triaged”;
workItem.Fields[”Assigned to”].Value = “production”;
workItem.Links.Add(new Hyperlink(@”C:\bla.txt”));
workItem.Save();

Cenário 3: Migrando Código Fonte do Source Safe para o Team System
No cenário 1, vimos que o Team System já vem com uma ferramenta nativa para efetuar a migração de Work Items do ClearQuest. Ele traz também outro conversor chamado VSSConverter que permite fazer a migração de arquivos do Source Safe para o Team System. Todo o procedimento pode ser visto neste artigo http://msdn.microsoft.com/en-us/library/ms253186.aspx

Cenário 4: Migrando Código Fonte do StarTeam / CVS para o Team System
Uma empresa parceira da Microsoft criou recentemente uma ferramenta de migração chamada Timely Migration. Essa ferramenta te ajudará a migrar projetos do CVS ou StarTeam para o Team System.

De acordo com o site do produto, ele é capaz de migrar Branches, Labels e todo o histórico sem perda nenhuma de dados.

Cenário 5: Utilizando o Eclipse com o Team System
Já fiz um post sobre isso, mas acho interessante referenciá-lo aqui novamente apenas para termos a cobertura de vários cenários de migração e integração. Confiram em http://andrediasbr.blogspot.com/2008/07/utilizando-team-system-com-eclipse.html

Cenário 6: Utilizando VB6, Visual C++ 6.0, Enterprise Architect 6.1 e outros com o Team System
Mais uma vez, um cenário que eu já tinha abordado aqui no blog. O único detalhe é que o post comenta sobre o plug-in para se conectar ao VSTS 2005. Para utilizar esses clients com o VSTS 2008 acesse Visual Studio Team System 2008 Team Foundation Server MSSCCI Provider.

Bom, acredito que esses 6 cenários cobrem a maioria das necessidades das empresas, mas se você tiver algum outro, entre em contato que tentaremos achar outras soluções.

Abraços
André Dias

Um comentário:

Luiz Henrique C. Corrêa disse...

Olá. Estamos iniciando os estudos e planejamento para instalação/adoção do VSTS na nossa empresa. Ainda estamos engatinhando, e gostaria de agradecer os posts que vc vem escrevendo com suas experiências com o produto... todos estão sendo muito valiosos para nós.
Parabéns.
abraço.