Pergunta

Estamos desenvolvendo um aplicativo com componentes em múltiplas camadas físicas, compartilhando muitas montagens, bem como ter alguns exclusivos para cada camada.

Eu estou querendo saber o que a estratégia típica versão é para a liberação hot-fixes, ou apenas alguns componentes da aplicação.

O nosso software de acompanhamento de questões contém um número de versão para o produto inteiro. Se a versão atual é 1.4.5 e uma correcção é necessária, as questões para o hotfix está para ser lançado contra 1.4.6. Todos os conjuntos afetados pelas correções para 1.4.6 são versões 1.4.6. Se nós distribuídos apenas os arquivos que vamos acabar com alguns arquivos na versão 1.4.5 e alguns em 1.4.6.

Uma solução poderia ser a reconstruir e liberar toda a aplicação como 1.4.6, mas isso seria necessário vários componentes nas várias máquinas a reafectar e resultam em paralisações desnecessárias dos componentes que não chegou a mudar.

Que estratégias têm as pessoas postas em prática para este problema? É apenas uma questão de aceitar que alguns arquivos terão diferentes números de versão? No passado eu descobri que isso causa confusão com os clientes (nível 1) equipe de suporte.

Foi útil?

Solução

Você colocar uma pergunta interessante.

É realmente uma decisão política que você precisa fazer para decidir o que sua implantação e estratégia de versão será, e considerar as vantagens e desvantagens de vários fatores (alguns dos quais você já observamos, tais como confusão do cliente).

Uma das coisas que você poderia fazer é dissociar a liberação e controle de versão de seus níveis individuais, que permitem que você tenha o controle de versão consistente dentro de uma camada com redução da sobrecarga implantação hotfix. Você também precisará fator as assembleias ordinárias em um pacote e versão separada que independente também.

Este pode ser um exagero, portanto, uma alternativa seria fazer o seu controle de versão mais fácil de entender. Por exemplo, você pode reservar uma parte do seu número de versão para indicar hotfixes. Por exemplo, se 1.4.5.0 é o lançamento oficial, a correcção seria 1.4.5.1 e isso pode ser facilmente entendido como parte do lançamento oficial 1.4.5.

Você também pode usar outras versões de montagem, como o AssemblyInformationalVersion para armazenar informações de versão para os usuários. (Confira meu blog para obter mais detalhes sobre AssemblyInformationalVersion e montagem de versão em .NET.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top