none
Um cliente com duas empresas. RRS feed

  • Pergunta

  • Olá bom dia,

    Estou com a seguinte situacao: Tenho um cliente que tem duas empresas e quer utilizar o mesmo software (C#.Net) nas duas empresas.
    A situacao atual é, antes havia um só projeto no Visual Studio para uma empresa, agora ele abriu a segunda empresa e quer utilizar o mesmo software para a segunda empresa.

    As regras de negocio sao as mesmas, porém há algumas diferencas como por exemplo, logo e textos que sao exibidos nos relatorios. A premissa é: As duas empresas devem usar o mesmo software, com "quase" o mesmo source-code e banco de dados.
    Me pergunto como fazer isso da melhor forma. Me veem em mentes duas possiveis solucoes:

    1- Separar os projetos "Empresa1" e "Empresa2". Ponto negativo, toda vez que fazer uma alteracao, terei que alterar nos dois projetos, "na mao" pelo que eu sei. Por isso passivel de erros.

    2- Ter um só projeto "Empresa" e dentro do source verificar onde estao as diferencas e dar um jeito de centralizar elas em um ponto(ou arquivo) e usar a algo do tipo "#if Empresa1 #if Empresa2" e na hora de compilar e disponibilizar uma versao de producao definir pra qual empresa é a versao.

    Até entao, nunca tive a necessidade de fazer algo desse tipo, entao nao tenho experiencia com isso. Alguem ai pode me ajudar com ideias/sugestoes ?

    Desde já agradeco a atencao de todos

    Olavo Neto

    sexta-feira, 28 de outubro de 2016 14:35

Todas as Respostas

  • Olavo,

    Isto depende do budget e tempo disponível. Para UI (user interface) muito pode ser resolvido com a criação de Resources nos projetos (tanto para substituição de texto quando imagens), mas para regras de negócio diferentes (e outros elementos de código), uma boa opção é utilizar Injeção de Dependência/Inversão de Controle.

    Caso não conheça, seguem alguns links de referência:

    https://docs.asp.net/en/latest/fundamentals/dependency-injection.html

    http://www.martinfowler.com/articles/injection.html

    Mas também dá pra simplificar se o nível de diferença é pequeno e o tempo também. Você pode usar Factory pattern para retornar a implementação da empresa correta.


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    sexta-feira, 28 de outubro de 2016 14:56