Como controle de origem de instalação com múltiplos produtos todos dependentes de uma única biblioteca de classes

StackOverflow https://stackoverflow.com/questions/1406653

Pergunta

Eu sou o CTO e único desenvolvedor para a minha empresa. Estou ficando pronto para contratar o nosso primeiro desenvolvedor e, possivelmente, uma segunda dentro dos próximos 6-12 meses. Eu tenho vergonha de dizer que eu nunca usei controle de código fonte como parte do meu trabalho. Eu acho que ser uma equipe de desenvolvimento 1-membro me permitiu ser um pouco preguiçoso. Não é que eu não queria, eu só tenho um pouco de um bloqueio mental sobre como começar com ele.

Temos 5 aplicações web que eu construir e manter. Usamos ASP.NET, e cada Web referências de aplicativos uma única Biblioteca de classes .NET (DLL) que foi copiado para a pasta "bin" para cada aplicativo. Eu tenho vindo a desenvolver com uma única "solução" Visual Studio que inclui a biblioteca de classes e de todas as aplicações web. Um pouco inchado, tenho certeza, mas este método tornou fácil para mim para minimizar erros, permitindo-me para fazer global localizar e substituir operações em todos os meus aplicativos (e a biblioteca de classes) ao mesmo tempo.

Eu percebo que a implementação de controle de código fonte é uma grande mudança para o meu trabalho, por si só, mas também a introdução de outro desenvolvedor em meu processo me tem um pouco sobrecarregado. Eu estou procurando alguma ajuda sobre como desenvolver um fluxo de trabalho que permitirá a minha pequena equipe para mover-se rapidamente, sem processos complicados. Eu gostaria de evitar discussões sobre qual sistema SCC para escolher (vamos usar Mercurial). Estou mais interessado em discutir a estrutura e fluxo de trabalho aspectos desta.

Aqui estão as perguntas que eu preciso de ajuda com:

  1. Eu deveria dividir cada aplicativo em um "projeto" separado ou mantê-los todos juntos para que possamos continuar a beneficiar de localizar e substituir global de operações quando necessário. Estou preocupado com a dividi-los por causa da situação de biblioteca de classe (ver # 2).

  2. Se dividir as aplicações em projetos separados, eu não tenho certeza de como proceder com a biblioteca de classes que cada projeto precisa de uma cópia do. Por exemplo, digamos que as mudanças para um dos aplicativos (chamemos-lhe "projeto 1") requer uma mudança para a biblioteca de classes ... se a biblioteca de classes é em um projeto separado (chamemos-lhe "projeto 2"), ele parece "confuso" para mim que o projeto 1 seria dependente das últimas alterações no projeto 2, a fim de funcionar corretamente. Ou, você simplesmente fazer as alterações para projetar 2 (a biblioteca de classes), vê-los, e, em seguida, copiar a dll recém-compilados em projeto 1 (mas não deve a nova cópia da dll que está sendo copiado para projeto 1 ser gravado em o SCC de alguma forma). Estou ficando confuso como eu escrever este ...

Agradecemos antecipadamente a sua ajuda.

Foi útil?

Solução

Em primeiro lugar, parabéns por tomar a decisão de finalmente usar controle de origem. Eu sei que mudar seus hábitos pode ser frustrante, mas no longo prazo, eu tenho certeza que você vai ver os benefícios.

  1. Não há nada de errado com uma solução que tem vários projetos na mesma. Eu geralmente manter mina para cerca de 10, mas isso é simplesmente para melhorar os tempos de carregamento. Se mantê-los juntos funciona melhor para você, deixá-lo assim. O uso de controle de origem não terá qualquer efeito sobre isso.
  2. Na medida em que a biblioteca de classes, eu acho que o que você precisa fazer é mudar a forma como você vai fazer alterações para o projeto de biblioteca, em vez de como você usa os projetos que fazem referência a ele. Implementar testes de unidade sobre o projeto de biblioteca para fazer cumprir compatibilidade com versões anteriores para que você saiba que deixar cair a mais recente versão da biblioteca não vai quebrar seu aplicativo. Você provavelmente vai encontrar isso não será verdade algumas vezes, mas como você desenvolver mais testes de unidade para casos extremos alça isso vai acontecer cada vez menos.

Outras dicas

Você pode ter vários projetos em uma única solução Visual Studio. O que eu fiz no passado é ter tanto o projeto ASP.NET eo projeto biblioteca de classes na mesma solução. Você pode ter sua referência de projeto ASP.NET projeto de biblioteca de classe (Add Reference e, em seguida, vá para a guia Projetos para mostrar outros projetos na mesma solução). Dessa forma, sempre que mudar a biblioteca de classes, a aplicação ASP.NET será construído usando a versão mais recente da biblioteca de classes. Você pode soluções de configuração múltiplas -. Um para cada aplicativo ASP.NET com cada solução, incluindo o projeto libary classe

Você também pode configurar uma solução grande, com todos os seus projetos ASP.NET, bem como sua biblioteca de classes, mas que pode ficar um pouco difícil de trabalhar, especialmente com vários desenvolvedores trabalhando em diferentes páginas ASP.NET.

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