none
Integração TFS entre CRM 2011 Online utilizando Windows Service + WCF RRS feed

  • Pergunta

  • Pessoal,
    Tenho uma situação um pouco complicada aqui.
    Estou desenvolvendo uma integração entre TFS e Dynamics CRM utilizando Windows Services, mas agora, quase no final surgiu uma dúvida sobre a forma como estou fazendo isso, se é a mais correta ou se estou criando um Frankenstein!!
    Criei um Windows Service que ao iniciar, cria um WCF Service muito simples de forma imperativa, ou seja, via código. Após isso, é feita a conexão com o TFS (Local) e caso a conexão seja realizada, são criados as subscrições para monitorar um evento de alteração de Work Items.
    Feito isso, o TFS começa a enviar para o serviço WCF, as notificações de alterações, que são enviadas a cada 2 minutos (padrão TFS). Neste ponto, as informações enviadas pelo TFS (em XML) seriam recuperadas e enviadas ao Dynamics CRM Online. É aqui que começa o questionamento de tudo.
    Como o TFS pode enviar essas informações a cada dois minutos e as mesmas podem chegar todas juntas, pensei em criar algo como uma fila onde essas notificações recebidas do TFS fossem armazenadas para serem enviadas ao CRM posteriormente. Para o envio ao CRM, pensei em criar algo que ficasse verificando essa fila de tempos em tempos (um Timer) e enviando para o Dynamics. O motivo de querer criar esta fila e este timer é fato da conexão com o CRM Online não ser muito rápida, o que poderia gerar problemas.
    Isso tudo em um Windows Service pode não ser a solução mais adequada ?
    Este questionamento surgiu agora por que encontrei alguns artigos dizendo que utilizar um Windows Service para executar tarefas periódicas (principalmente com timers) não é uma boa prática.
    vlw
    Marcos
    quinta-feira, 12 de maio de 2011 15:03

Respostas

  • Bom dia Marcos,

    realmente existe uma desvantagem em utilizar windows service para tarefas periódicas, pois trataria-se de um serviço trabalhando constantemente, mesmo quando o timer não for acionado. Creio que o mais adequado seria criar uma rotina batch e utilizar o agendador de tarefas do windows para gerenciar as execuções, porém vale verificar se a periodicidade de execução pode ser atingida pelo agendador do windows.

    Abraços,


    Daniel Cheida de Oliveira
    sexta-feira, 28 de outubro de 2011 12:42