sexta-feira, 9 de novembro de 2012

PowerBuilder x TFS Source Control

Neste post eu explico como configurar o PowerBuilder para utilizar o Team Foundation Server Source Control como controlador de versão dos objetos.

De antemão, gostaria de listar aqui os benefícios e limitações desta integração. Os principais benefícios são:

  • Performance: Os check-ins, check-outs, atualização de status de objetos e outras operações são mais velozes do que outros sistemas controladores de versão;
  • Associação de check-ins com WorkItens do TFS: Para quem já utiliza o Team Foundation Server como sistema gerenciador de projetos, pode associar o check-in dos objetos à um WorkItem, proporcionando uma completa rastreabilidade do que é produzido. Isto significa que, através do WorkItem, é possível visualizar todos os objetos alterados para o tal;
  • Rastreabilidade a nível de código: O Source Control permite que o usuário abra o código fonte de um objeto registrado e exiba em qual check-in foi inserido ou alterado cada parte do código. Isto significa que o usuário pode, por exemplo, visualizar quem e porque inseriu aquele "IF" que está ocasionando um bug no sistema.
Como nem tudo são flores, o Source Control também possui seus problemas. Porém, o único que considero  relevante citar é a forma como ele define o status de cada objeto. O controle é feito através de um "flag"  atribuído a cada objeto, que define se o objeto no "workspace" do usuário está atualizado conforme última versão ou não. Isto significa que a atualização de status dos objetos não é feita através de um "diff", como em outros sistema controladores de versão, a exemplo do Microsoft Visual Source Safe. O problema disto é que se o usuário não realizar corretamente as operações, terá uma dor de cabeça com os status dos objetos. O Source Control poderá exibir que o objeto está atualizado, porém não estará.

Bem, o primeiro passo para configurar a integração é baixar e instalar o plug-in que permite que o PowerBuilder se integre ao Source Control. Este plug-in é fornecido pela própria Microsoft.
Acesse este link para baixar o plug-in compatível com suas configurações: Team Foundation Server MSSCCI Provider

Se ainda não possui o seu projeto criado no Source Control, crie-o. Para isto, abra o Team Explorer no Visual Studio e clique em adicionar (seu usuário precisará ter autorização para tal).

Após isto, abra o PowerBuilder e, em seguida, o workspace do projeto que deseja "versionar". Clique com o botão direito do mouse no workspace e acesse "Propriedades". Na aba "SourceControl", selecione "Microsoft Team Foundation Server" (ver imagem 1).

Imagem 1
Esta opção será exibida somente se você estiver instalado corretamente o plug-in mencionado anteriormente. Nos campos seguintes defina o usuário e selecione o projeto do TFS. O PowerBuilder disponibiliza algumas opções para tratar a integração:
  • Requires comments on chek-in: Obriga ao desenvolvedor a informar um comentário no momento que efetuar o check-in de um objeto. Sugiro habilitar esta opção;
  • This project requires that I sometimes work offline: Desabilita a conexão automática ao sistema controlador de versão quando você abre o workspace. Sugiro desabilitar esta opção;
  • Delete PowerBuilder-genereated object files: Para realizar algumas operações internas como a comparação de objetos ("Show differences"), o PowerBuilder precisa gerar arquivos fisicamente na pasta onde está localizada a PBL em questão. Marcando esta opção o PowerBuilder irá excluir estes arquivos gerados. Deixe esta opção habilitada;
  • Perform diff on status update: Verifica quais objetos locais estão diferentes do servidor, permitindo que o desenvolvedor identifique que já existe uma versão mais atual. Esta opção não funciona corretamente com o Source Control. Deixe esta opção desabilitada.
  • Suppress prompts to overwrite read-only files: É comum que os sistemas controladores de versão, inclusive o Source Control, gerem os arquivos versionados como "read only" na pasta de trabalho do desenvolvedor, a fim de evitar uma edição desses arquivos sem um prévio check-out. Como PowerBuilder exporta arquivos para esta pasta e encontra o arquivo como "read only",  ele irá solicitar ao usuário se deseja substituir o arquivo ou não. Selecionando esta opção, esse tipo de solicitação ao usuário não será realizado. Deixe esta opção habilitada;
  • Show warning when opening objects not checked out: Oculta mensagens exibidas ao abrir objetos que não estão em check-out. Deixe esta opção habilitada.

Nenhum comentário:

Postar um comentário