Modularizar um Sistema
15/04/2014
0
Trabalho com Visual Studio utilizando VB.Net com linguagem e possuo um software, mas que infelizmente não foi desenvolvido sobre nenhuma arquitetura.
Todos os recursos estão embutidos no exe e gostaria de saber uma maneira de poder modularizar o sistema, para evitar de sempre que precisar atualizar algum recurso, tem que recompilar a Solution inteira. Estou querendo mudar para ter a opção de oferecer para determinados clientes somente alguns recursos, como controle de cliente, controle de fornecedor, controle de produto, e assim por diante. Outra duvida também é relação a ter mais de uma interface para um mesmo controle, caso a atual satisfaça as necessidades do meu cliente, como eu poderia ter mais de um Controle de Cliente dentro da Solution, para alterar elas para o cliente.
Desde já agradeço.
William Maximo
Posts
15/04/2014
Alex Lekao
Eu nao trabalho com programacao, mas o que eu tenho visto pelas empresas de software que ja trabalhei eh que o software para cadastros eh unico, e todo os clientes terao o mesmo.
E os demais modulos sao de acordo com cada perfil de cliente.
Nao sei se seria especificamente isso que vc estava querendo, mas o q eu ja vi e que pode ser o ideal para o caso.
Em uma das software houses que trabalhei o cadastro era realmente um para todos inclusive as versoes Light do sistema, porque caso o cliente resolvesse migrar para uma versao mais robusta, os campos ja poderiam estar preenchido com parametrizacoes que talvez nao precisem ser retrainadas caso acontecesse a mudanca.
Espero ter ajudado.
Abraco.
Alex - Lekao
15/04/2014
William Maximo
Neste caso, fica complicado oferecer as mesmas informações para ambos, pois os campos utilizados por um, não são aproveitados por outros.
23/04/2014
Joel Rodrigues
Dessa forma, se você precisar alterar apenas um form, por exemplo, basta recompilar a DLL onde ele está contido e substituir no cliente, sem alterar as demais partes do projeto.
Existe ainda uma forma de deixar isso ainda mais dinâmico, que seria utilizando Reflection para ler cada DLL e criar um item no menu principal para cada form contido nelas. Essa é uma abordagem mais complexa, mas perfeitamente factível.
28/04/2014
William Maximo
Dessa forma, se você precisar alterar apenas um form, por exemplo, basta recompilar a DLL onde ele está contido e substituir no cliente, sem alterar as demais partes do projeto.
Existe ainda uma forma de deixar isso ainda mais dinâmico, que seria utilizando Reflection para ler cada DLL e criar um item no menu principal para cada form contido nelas. Essa é uma abordagem mais complexa, mas perfeitamente factível.
Obrigado pela resposta.
Eu estava pesquisando a respeito de usar as Class Libraries, e referencia-las no projeto principal, o único ponto é que não consegui encontrar um método para centralizar as DLL numa pasta só, tipo >arquivos de programa > meu software > DLL.
Usando a Reflection é possível centraliza-las, mas agora não me recordo o problema que encontrei ao tentar fazer isso.
28/04/2014
Alex Lekao
uma outra coisa, que acredito que esteja englobado no que o Joel esta sugerindo, eh vc trabalhar com tipo de cliente seu, no caso dos clientes que foram do mesmo ramo, durante a compilacao ativa os campos no formulario e os que forem de outro tipo, ativa os campos para aquele nicho, nao sei se seria isso o ideal, mas ja vi fazerem assim tbm em uma Software house que trabalhei a alguns anos atraz. rsrsr
Abraco.
Alex - Lekao
Neste caso, fica complicado oferecer as mesmas informações para ambos, pois os campos utilizados por um, não são aproveitados por outros.
19/05/2014
William Maximo
uma outra coisa, que acredito que esteja englobado no que o Joel esta sugerindo, eh vc trabalhar com tipo de cliente seu, no caso dos clientes que foram do mesmo ramo, durante a compilacao ativa os campos no formulario e os que forem de outro tipo, ativa os campos para aquele nicho, nao sei se seria isso o ideal, mas ja vi fazerem assim tbm em uma Software house que trabalhei a alguns anos atraz. rsrsr
Abraco.
Alex - Lekao
Neste caso, fica complicado oferecer as mesmas informações para ambos, pois os campos utilizados por um, não são aproveitados por outros.
Eu vou utilizar DLL para separar o sistema em módulos.
Futuramente posto aqui o resultado, para dizer se facilitou ou dificultou o sistema.
Obrigado.
Clique aqui para fazer login e interagir na Comunidade :)