Modularizar um Sistema

15/04/2014

0

Boa tarde.

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

William Maximo

Responder

Posts

15/04/2014

Alex Lekao

Oi Willian,

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
Responder

15/04/2014

William Maximo

Então, acontece que hoje por exemplo, tenho dois clientes, que no caso um trabalha com uma transportadora e o cadastro de cliente possui informações diferentes do outro cliente, que trabalha com venda de materiais elétricos.
Neste caso, fica complicado oferecer as mesmas informações para ambos, pois os campos utilizados por um, não são aproveitados por outros.
Responder

23/04/2014

Joel Rodrigues

Você pode dividir o sistema em vários projetos. No Visual Studio, você criaria uma Solution pricipal e dentro dela adicionaria os Projects referentes a cada módulo. A aplicação principal pode ter apenas um form onde ficarão os menus para os demais forms, que estarão contidos em Class Libraries (DLL's).
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.
Responder

28/04/2014

William Maximo

Você pode dividir o sistema em vários projetos. No Visual Studio, você criaria uma Solution pricipal e dentro dela adicionaria os Projects referentes a cada módulo. A aplicação principal pode ter apenas um form onde ficarão os menus para os demais forms, que estarão contidos em Class Libraries (DLL's).
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.
Responder

28/04/2014

Alex Lekao

O que eu ja vi em algumas empresas de software, eh que eles colocam os campos, se nao foram utilizados o cara "simplesmente ignora". rsrsrs

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

Então, acontece que hoje por exemplo, tenho dois clientes, que no caso um trabalha com uma transportadora e o cadastro de cliente possui informações diferentes do outro cliente, que trabalha com venda de materiais elétricos.
Neste caso, fica complicado oferecer as mesmas informações para ambos, pois os campos utilizados por um, não são aproveitados por outros.
Responder

19/05/2014

William Maximo

O que eu ja vi em algumas empresas de software, eh que eles colocam os campos, se nao foram utilizados o cara "simplesmente ignora". rsrsrs

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

Então, acontece que hoje por exemplo, tenho dois clientes, que no caso um trabalha com uma transportadora e o cadastro de cliente possui informações diferentes do outro cliente, que trabalha com venda de materiais elétricos.
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.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar