MENU CARREGADO POR ATUALIZACAO
Galera boa tarde
Alguem pode me dizer como sao feitos menus carregados no sistema por metodo de atualizaçao? Um exemplo disso programas do microsoft office que quando voce faz uma atualizaçao de alguma funcionalidade aparece um menu especifico a mais na barra de menu's. Outro excemplo quando agente instala um comunicador de mensagens instantaneas o outlook adiciona funcionalidades e opcoes de menu vinculados a esse tipo de aplicativo.
Se alguem puder me dar uma dica de apostila ou entende do que estou falando eu agradeco muito. A minha intencao seria construir um sistema disponibilizado por modulos em que nao precisa ficar habilitando e desabilitando esses acessos conforme pacotes de aquisiçao como muitos fazem, e sim atualizar alguns arquivos para que esse acesso ocorra dentro da aplicacao já rodando.
Valeu!
Alguem pode me dizer como sao feitos menus carregados no sistema por metodo de atualizaçao? Um exemplo disso programas do microsoft office que quando voce faz uma atualizaçao de alguma funcionalidade aparece um menu especifico a mais na barra de menu's. Outro excemplo quando agente instala um comunicador de mensagens instantaneas o outlook adiciona funcionalidades e opcoes de menu vinculados a esse tipo de aplicativo.
Se alguem puder me dar uma dica de apostila ou entende do que estou falando eu agradeco muito. A minha intencao seria construir um sistema disponibilizado por modulos em que nao precisa ficar habilitando e desabilitando esses acessos conforme pacotes de aquisiçao como muitos fazem, e sim atualizar alguns arquivos para que esse acesso ocorra dentro da aplicacao já rodando.
Valeu!
Olá vinicius,
Estes [Ô]menus[Ô] são criados ao meu ver de duas formas.
1- Patch no aplicativo ... vc gera um aplicativo que modifica o seu somente com as diferenças.
2- Plug-ins (mais viável)
vc pode criar dlls pararelas que o seu programa interpreta e acopla ao sistema..
para fazer isso você precisa utilizar interfaces e o usar o Reflection do .net para carregar os assemblies em tempo de execução
Método:
crie um diretório onde seu programa armazene os plugins
> Use o IO.Directory para fazer a listagem das DLL
> Use o System.Reflection para carrega-las
> Use o GetType para descobrir os tipos de resources dentro do seu assembly
A partir do type instancie seu menu e adicione em tempo de execução ao seu aplicativo
Se você criar uma interface você pode controlar mais facilmente todo o fluxo do seu aplicativo ... adicionando botoes a barras de tarefas, criando novos formularios e etc... tudo atraves do seu plug-in
Estou fazendo um artigo sobre o assunto, logo que terminar postarei :D
Estes [Ô]menus[Ô] são criados ao meu ver de duas formas.
1- Patch no aplicativo ... vc gera um aplicativo que modifica o seu somente com as diferenças.
2- Plug-ins (mais viável)
vc pode criar dlls pararelas que o seu programa interpreta e acopla ao sistema..
para fazer isso você precisa utilizar interfaces e o usar o Reflection do .net para carregar os assemblies em tempo de execução
Método:
crie um diretório onde seu programa armazene os plugins
> Use o IO.Directory para fazer a listagem das DLL
> Use o System.Reflection para carrega-las
> Use o GetType para descobrir os tipos de resources dentro do seu assembly
A partir do type instancie seu menu e adicione em tempo de execução ao seu aplicativo
Se você criar uma interface você pode controlar mais facilmente todo o fluxo do seu aplicativo ... adicionando botoes a barras de tarefas, criando novos formularios e etc... tudo atraves do seu plug-in
Estou fazendo um artigo sobre o assunto, logo que terminar postarei :D
Olá Spritu boa tarde
Obrigado por responder meu topico que achei que nem iria ter respostas. Eu ainda tenho muito o que aprender em programação. Estou aprendendo sozinho sem curso, só pesquisando principalmente aqui no site e com ajuda de muitos estou ate desenvolvendo um sistema. Gostaria de saber se vc ou alguem que ver este topico pode me indicar um exemplo de projeto com esse tipo de funcionalidade. Eu ja vi empresas que disponibilizam sistemas atraves de modulos conforme aquilo que vc adquiriu. Porem esses modulos sao executaveis que voce chama atraves de uma interface principal, ou seja um link para executar um outro executavel. Mas nao e isso que eu quero.
Minha intensao e fazer meu sistema tambem por modulos de funcionalidades, mas que esta opcao apareca somente apos agregar estes modulos junto a aquilo que o cliente adquiriu, sem ter que ficar aparecendo no menu principal por exemplo uma opcao para [Ô]financeiro[Ô] sendo que o cliente nao o adquiriu.
Eu citei o exemplo da Microsof por que vc nao quiser usar mais aquela atualizacao voce tem a opcao de desinstala-la sem ter que reinstalar a versao anterior, como se fosse uma restauracao de sistema. Nao sei se vc me entendeu.
De qualquer forma estarei aguardando seu arqtigo a respeito.
Obrigado!
Obrigado por responder meu topico que achei que nem iria ter respostas. Eu ainda tenho muito o que aprender em programação. Estou aprendendo sozinho sem curso, só pesquisando principalmente aqui no site e com ajuda de muitos estou ate desenvolvendo um sistema. Gostaria de saber se vc ou alguem que ver este topico pode me indicar um exemplo de projeto com esse tipo de funcionalidade. Eu ja vi empresas que disponibilizam sistemas atraves de modulos conforme aquilo que vc adquiriu. Porem esses modulos sao executaveis que voce chama atraves de uma interface principal, ou seja um link para executar um outro executavel. Mas nao e isso que eu quero.
Minha intensao e fazer meu sistema tambem por modulos de funcionalidades, mas que esta opcao apareca somente apos agregar estes modulos junto a aquilo que o cliente adquiriu, sem ter que ficar aparecendo no menu principal por exemplo uma opcao para [Ô]financeiro[Ô] sendo que o cliente nao o adquiriu.
Eu citei o exemplo da Microsof por que vc nao quiser usar mais aquela atualizacao voce tem a opcao de desinstala-la sem ter que reinstalar a versao anterior, como se fosse uma restauracao de sistema. Nao sei se vc me entendeu.
De qualquer forma estarei aguardando seu arqtigo a respeito.
Obrigado!
Tópico encerrado , respostas não são mais permitidas