| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2011 09:52:41
|
thiosa
HelloWorld
Membro desde: 03/09/2010 10:36:25
Mensagens: 12
Offline
|
Olá,
Trabalho em uma empresa onde se desenvolve em VB 6 / Access 2003 (Desktop) e ASP / PHP (Web). Estávamos brigando por uma tecnologia nova a alguns anos e eis que agora recebemos autorização para usar o ilustre Netbeans 6.0 apenas para desktop, já que não temos ainda um servidor com Tomcat (empresa publica é muito burocrática).
Antes de sair escrevendo códigos, precisamos criar certos padrões para que não haja descontrole. Assim, precisamos criar componentes que serão utilizados por todos os aplicativos desktop, mas não temos a experiência para decidir qual é a maneira mais adequada de se fazer isso.
Além disso, minha unidade trabalha em um ambiente de intranet com aproximadamente 300 estações ligadas. Fica muito complicado, a cada vez que houver uma atualização de versão de um software (e não são poucos), sairmos trocando o jar de estação em estação.
Nesse contexto precisamos criar um ambiente de atualização automática dos softwares e dos componentes que serão compartilhados entre eles. Alguém pode me ajudar a pensar como montar esse ambiente?
Um exemplo de componente compartilhado é uma classe especializada em manipular o Internet Explorer, por intermédio de ActiveX, para que possamos acessar sites internos e fazer uma espécie de bot.
Desde já agradeço.
Thiago Rosa
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2011 10:03:14
|
dieguittom
Debugger
![[Avatar]](/images/avatar/0f1a72f50209b6e1215572f7ba91eccc.jpg)
Membro desde: 18/05/2011 21:47:39
Mensagens: 54
Offline
|
Processo de atualização automática é meio complicado e trabalhoso.
O ideal, já que existem muitas estações de trabalho é desenvolver um sistema web. Assim não será nescessário fazer atualizações em clientes
|
Diego
http://www.morgado.blog.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2011 10:12:14
|
dieguittom
Debugger
![[Avatar]](/images/avatar/0f1a72f50209b6e1215572f7ba91eccc.jpg)
Membro desde: 18/05/2011 21:47:39
Mensagens: 54
Offline
|
Você também pode dar uma estudada em applet. Um software java vindo da web (navegador) mas sedo executado na máquina do cliente. Talvez possa resolver seu problema
|
Diego
http://www.morgado.blog.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2011 10:18:38
|
OliveirakunJava
Java Ninja
![[Avatar]](/images/avatar/d4cb74874cebc08e5b8001772876a9ae.jpg)
Membro desde: 29/05/2008 20:50:47
Mensagens: 279
Localização: Diadema - SP
Offline
|
Applet é uma tecnologia ultrapassada que não deu muito certo, uma boa solução para atualizações automáticas de aplicações desktop é o Java Web Start:
http://www.java.com/pt_BR/download/faq/java_webstart.xml
|
Francis Borges Oliveira
SCJP 6
SCWCD 5
Java no Renkinjutsushi!! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2011 10:24:07
|
dieguittom
Debugger
![[Avatar]](/images/avatar/0f1a72f50209b6e1215572f7ba91eccc.jpg)
Membro desde: 18/05/2011 21:47:39
Mensagens: 54
Offline
|
Applet é uma tecnologia ultrapassada que não deu muito certo
Isso é verdade, ultrapassada sim
Mas o ideal mesmo seria um sistema web
|
Diego
http://www.morgado.blog.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2011 10:36:38
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Sim, é importante criar padrões. Mas se as aplicações que rodam na sua emprewsa foram feitas com VB, provavelmente não seguem nenhum padrão.
Padrões visuais de aplicações devem ser determinadas por especialistas em design gráfico. Gente que sabe qual distância deve ficar entre botões, qual o tamanho ideal de botão e principalmemente quais os tamanhos de tela do sistema (que dificilmente precisam ser mais do que 2)
Para possibilitar a equipe de desenvolvimento seguir os padrões, normalmente é preciso ditar e seguir uma regrinha bem simples:
Ninguém usará nenhuma ferramenta gráfica de criar telas e arrastar e colar componentes
Em outras palavras, depois que o designer gráfico definiu os padrões, estes devem ser seguidos a risca e para isto poder acontecer, não se pode permitir a criação automática de nada. Assim se evita ficar com sistemas com cara de VB com cada tela de um tamanho.
Se for uma aplicação Java do tipo swing usando Java Web Start, todos os requisitos de atualização serão atendidos. PORÉM só adote esta solução caso sua aplicação precise acessar periféricos do tipo impressora fiscal, leitor de cheque ou cartão, balança e demais coisas que são dificeis (mas não impossíveis) de serem acessadas em páginas web.
Caso contrário, desenvolva uma aplicação web cujo resultado será MUITO melhor.
Abraços
Luca
This message was edited 1 time. Last update was at 18/06/2011 10:37:48
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2011 11:01:43
|
thiosa
HelloWorld
Membro desde: 03/09/2010 10:36:25
Mensagens: 12
Offline
|
Olá
Os padrões a que me refiro não são visuais. Embora os softwares serem em VB, conseguimos criar alguns padrões de acesso ao banco com classes. Claro que a porcaria do VB não é orientado a objetos, mas ele possui algumas facilidades que nos permite criar um DAO, um VO entre outros =).
Como estamos engatinhando em desenvolvimento java para nossa necessidade, vamos montar primeiro todo o ambiente. Depois pensaremos em padrão visual, acesso ao banco (JPA, Hibernate, etc). Não conseguimos ainda criar aplicação web porque não possuímos um servidor Tomcat (está em negociação).
O nosso problema agora é em saber se vale a pena criar jar externo e acessar via URLClassLoader, ou se é melhor deixar uma pasta de componentes no classpath. Minha experiencia em URLClassLoader foi triste, porque eu consegui carregar o JAR externo, criei uma interface no aplicativo que carrega o JAR IDENTICA às assinaturas do componente mas o Java lançou erro de cast:
Quanto a atualização, pensei em criar um aplicativo "Launcher" que ve se há moificação no JAR do aplicativo do servidor, troca o mesmo e o executa em seguida. Isso é válido?
This message was edited 1 time. Last update was at 18/06/2011 11:03:18
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2011 11:31:10
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Se você está começando, nada de pensar em ClassLoader. E use os padrões mais simples ou mesmo não use nenhum.
Design Patterns normalmente não devem ser usados por quem está começando. Primeiro a gente deve experimentar e só depois procurar saber se existe algo com mesmo jeitão que resolva de forma mais genérica.
Exemplo: VO.
Se seu VO é um Value Object, isto é, um objeto sem identidade conceitual (não é uma entity) que representa apenas um aspecto descritivo do domínio (descreve apenas coisas como cores, moedas, etc. que são atributos de uma entity) tal como define o Eric Evans no seu excelente livro Domain Driven Design então OK.
Mas se o que você entende como Value Object é um valor composto a partir do servidor com aquele modelo anêmico lotado de getters e setter que os "doutores" da Sun recomendavam e até cobravam em provas de certificação, então sugiro que jogue fora porque é pura poluição.
Abraços
Luca Bastos
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2011 12:44:52
|
thiosa
HelloWorld
Membro desde: 03/09/2010 10:36:25
Mensagens: 12
Offline
|
Luca wrote:Olá
Se você está começando, nada de pensar em ClassLoader. E use os padrões mais simples ou mesmo não use nenhum.
Design Patterns normalmente não devem ser usados por quem está começando. Primeiro a gente deve experimentar e só depois procurar saber se existe algo com mesmo jeitão que resolva de forma mais genérica.
Exemplo: VO.
Se seu VO é um Value Object, isto é, um objeto sem identidade conceitual (não é uma entity) que representa apenas um aspecto descritivo do domínio (descreve apenas coisas como cores, moedas, etc. que são atributos de uma entity) tal como define o Eric Evans no seu excelente livro Domain Driven Design então OK.
Mas se o que você entende como Value Object é um valor composto a partir do servidor com aquele modelo anêmico lotado de getters e setter que os "doutores" da Sun recomendavam e até cobravam em provas de certificação, então sugiro que jogue fora porque é pura poluição.
Abraços
Luca Bastos
Usamos o VO no VB para representar uma tupla do banco. Usamos o DAO para executar o CRUD (do mesmo jeito que aprendi a uns tempos atrás na Caelum rs).
Acabamos saindo um pouco do que eu preciso entender. Mesmo que o ClassLoader seja complicado, se for a melhor solução, pode apostar que vou estudá-lo muito bem antes de começar a usar. Quero montar uma arquitetura onde os meus softwares sejam capazes de carregar os recursos compartilhados sem que eles fiquem presos. Por exemplo, se eu tenho 50 máquinas com 3 softwares diferentes e utilizando os componentes compartilhados, mas surgiu uma modificação de um desses componentes de última hora. Eu quero poder atualizar o recurso sem que seja necessário derrubar os 50 softwares abertos. Não importa que o recurso dos 50 fique desatualizado enquanto estiverem utilizando aquela instancia do aplicativo, mas quando eles fecharem a instância e abrirem outra, o aplicativo deve obter o recurso atualizado.
E ainda, a idéia de um aplicativo launcher para trocar o jar do software se houver atualização é legal?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2011 12:50:28
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Nada sei dos VOs do VB. Se são iguais aos da Sun, então são puro lixo em 99,999% das vezes.
Faça uma aplicação web... resolve todos os seus problemas e caso precise acessar algum periférico crie uma applet com este intuito.
Fuja de Swing e todas as demais complicações. E se mesmo assim ainda insiste em usar Swing, como já escrevi, não use o Netbeans para desenhar telas. Escreva os códigos dos componentes tal como os padrões definidos pelo designer gráfico e inclua no CÓDIGO (nunca na tela do Netbeans)
Abraços
Luca Bastos
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
|
|