Desenvolver ERP em WEB ou Desktop?

41 respostas
E

Pessoal. Irei iniciar um projeto porém estou com esse paradigma.

Desenvolver para WEB, acredito que seja o futuro dos softwares.
Aonde vc quiser, aonde vc estiver vc poderá fazer o que quiser.

Agora, desenvolver um ERP para WEB (uso Struts), não consigo ter a flexibilidade e obter o grau de complexidade que posso ter ao desenvolver para Desktop. Certo? ou não?

41 Respostas

M

Eric,

Acho que você deve ver o perfil dos desenvolvedores deste projeto. Como tenho mais experiência em Desktop, tenho a tendência de achar Desktop melhor. Mas acho que o mais importante ainda é o perfil dos desenvolvedores que tens .

Márcio

E

Legal Marcio.
Tb acho que Desktop seria a solução.
Estou considerando, e muito, o que o cliente necessita.

Vejo em alguns casos e solicitações de clientes, que seria impossível ter tanta flexibilidade e complexidade (como disse anteriormente) numa página Web.

F

Se quiser desenvolver alguma coisa em pleno ano de 2007 e escolher struts ja ta fazendo merda desde o comeco, procure alternativas … vRaptor, JBoss Seam

Eric Yuji:
Vejo em alguns casos e solicitações de clientes, que seria impossível ter tanta flexibilidade e complexidade (como disse anteriormente) numa página Web.

Nunca diga impossivel :wink: com as apis de AJAX que existem hoje em dia qualquer coisa que voce faz em swing voce faz em web.

R

Eric,

Acredito que para fazer o desktop seria mais fácil, mas em contra partida em web vc tem a flexibilidade total, imagina um usuário onde ele estiver ele pode acessar o sistema!!! web tem essa vantagem e tbm o custo de manutenção geralmente é mais baixo do que desktop.

R

Cara,

Realmente é uma coisa a se pensar, eu por exemplo acho que seria melhor web principalmente por questões de uma programação unificada em um lugar só, sem a necessidade de se instalar nada de específico em outras máquinas, o que pode trazer problemas de versões de software, atualização em todas as máquinas clientes. Apesar de suas desvantagens com relação ao controle, acredito que web é a melhor opção, e além do mais, você tem um controle razoável da página utilizando javascript e talvez ajax.

Mas de qualquer jeito, esta é a minha opinião.

Flw,
Renan

N

Eric,

Estou trabalhando num projeto onde estamos desenvolvendo alguns modulos de um ERP para WEB.

No nosso projeto também estamos utilizando o STRUTS e para garantir a complexibilidade que um ERP envolve precisamos colocar muito AJAX na aplicação…

Isso tudo é muito trabalhoso… Se você manja de desktop eu recomendo que siga nessa linha, isso vai te economizar mto tempo com HTML, JavaScript, CSS…

Abraços,
Nico

B

Olá.
Minha sugestão seria uma interface swing, iniciada por java web start, acessando dados através da web (http ou https), servidos em estilo REST, com servidor baseado em servlets… WebRowSet ou Restlet… ou mesmo Rails.

Prós: interfaces ricas, programadas com swing - sem toda a dor de cabeça que o AJAX ainda causa - e mobilidade garantida pelo java web start e pela centralização dos dados, acessados via web.

Contras: exige-se JVM instalada nos pontos de acesso.

Leiture recomendada: http://blogs.sun.com/jonathan/entry/i_believe_in_network_clients

R

Olá, aqui na empresa iremos desenvolver a nova versão de nosso ERP em Swing com EJB3. E alguns casos estamos pensando em utilizar o adobe flex.

G

Um fator importante, como já foi citado, são os requisitos não funcionais da aplicação. O uso de Swing + EJB pode ser traumático dependendo da velocidade da rede e de quantos firewalls (e se você tem controle sobre eles) as mensagens vão ultrapassar.

Vi várias mensagens com sugestões de frameworks para o desenvolvimento web, porém se for desenvolver com Desktop não deixe de dar uma olhada no framework SwingBean:

http://swingbean.sourceforge.net

R

fmeyer:
Se quiser desenvolver alguma coisa em pleno ano de 2007 e escolher struts ja ta fazendo merda desde o comeco, procure alternativas … vRaptor, JBoss Seam

Eric Yuji:
Vejo em alguns casos e solicitações de clientes, que seria impossível ter tanta flexibilidade e complexidade (como disse anteriormente) numa página Web.

Nunca diga impossivel :wink: com as apis de AJAX que existem hoje em dia qualquer coisa que voce faz em swing voce faz em web.

Meu caro tenho notado muito esse tipo de coisa que vc falou "escolher struts ja ta fazendo merda " e não consigo entender isso é uma nova moda ficar falando que struts é uma merda??? não sei sinceramente em 2 anos e pouco participei de uns 6 projetos todos em java para empresas diferentes e todos usavam struts!!!

E

Como alguns de vcs já mencionaram.

Desenvolver para WEB…
Na verdade, vc desenvolve em javascript, AJAX, etc… não creio que seja vantajoso e fácil de administrar, manutenção. É muito código

Tenho aplicações em SWING em que a complexidade é grandiosa… e é PURO JAVA.

E

Com vários outros frameworks, falar mal do Struts veio à tona.
Em muitas empresas, não se vê desenvolvimento Web/Java que não use Struts. Então qual é a questão?

Quem trabalha com Struts e se deparar com um JSF por exemplo, não terá dificuldades em se adaptar.
Outro ponto é maturidade, por isso, não descarto Struts ainda.

R

Quais os problemas e dificuldades que vou ter que enfrentar usando swing + EJB3?

Em relação a firewalls e outras coisas.

G

Rodrigo.Lima:
Quais os problemas e dificuldades que vou ter que enfrentar usando swing + EJB3?

Em relação a firewalls e outras coisas.

Dentre as dificuldades estão:

  • Tomar cuidado com a responsividade da interface devido a espera em chamadas remotas.
  • Deve-se tomar muito cuidado com a performance da aplicação e tentar diminuir o máximo o número de chamadas remotas.
  • A teve-se ter uma boa noção do ambiente da aplicação, por exemplo: vai rodar em LAN ou WAN? Se tem controle sobre as máquinas clientes? As máquinas clientes estão em um ambiente controlado?
  • Alguns firewalls são complicados com chamadas CORBA e precisa de uma certa habilidade (e boa vontade) para a configuração (e este é o tipo de cooperação que não se acha muito quando não se tem controle sobre o firewall que fica em um cliente, por exemplo).
M

Rodrigo Lima

Se você for usar RMi, pode ter problemas sim com firewall. Uma saída é o RMI do Spring, que passa ( ??? ) pelos firewalls ( acho que através de http ) .

Abraço,

Márcio

J

Eric Yuji:
Com vários outros frameworks, falar mal do Struts veio à tona.
Em muitas empresas, não se vê desenvolvimento Web/Java que não use Struts. Então qual é a questão?

Quem trabalha com Struts e se deparar com um JSF por exemplo, não terá dificuldades em se adaptar.
Outro ponto é maturidade, por isso, não descarto Struts ainda.

Struts já está descontinuado (Struts 2 é, na verdade, Webwork)… portanto, desconsidere sim o uso de struts.

O fato do mercado utilizar não quer dizer que seja bom. Ele é ainda muito usado porque foi o primeiro… e muitas empresas são miopes… nada justifica iniciar um novo projeto utilizando Struts - Struts é realmente MUITO ruim.

Se quiser usar Struts, utilize Struts 2.

Dê uma atenção especial para o desenvolvimento Web, à uma grande tendência nesse sentido…

W

J2Alex wrote:

Struts já está descontinuado (Struts 2 é, na verdade, Webwork)… portanto, desconsidere sim o uso de struts.
Hoje temos o Struts2 e além dele outros frameworks como WebWork, JSF , Mentawai, Click e etc. Mais para ser sincero acho melhor vc. dar uma olhada nesse links e tirar as suas conclusões.:

 vi coisa muito  ERP feito em WEB de dar agua na boca tente pensar a respeito. :roll:
R

Spring remote é bom? E aquele framework, o genesis é bom mesmo?

F

Um framework que supostamente deveria existir pra ajudar e nao atrapalhar cai na desgra’ca de um design ultrapassado, impossibilidade de testes unitarios decentes entre outros. Acho que a culpa nao 'e de quem esta falando mal e sim do framework em si.

Em sao paulo voce vai encontrar uns 70% dos projetos usando essa coisa, simplesmente por que os sistemas estao cheios de bad smell ninguem tem coragem de mecher pra corrigir, não existe uma linha de codigo de teste e se existe esta feito “nas cochas” e nao servem pra nada, ou entao é por estagnação/preguica dos profissionais em estudar alguma coisa diferente.

Hoje em dia nao existem justificativas racionais para usar o Struts, tem um monte de gente que ja conhece o framework? se o cara for realmente bom ele aprende outro framework em uma semana no maximo e justifica o salario.

G

Eu nunca utilizei em um projeto real, mas pelas palestras que assisti parece ser um framework bem completo e maduro. Acho que valeria a pena dar uma olhada.

I

Cara, o mundo é Web.
Acho muito mais fácil vc se virar em cima do protocolo HTTP, do que com os “canos” que vc terá com Swing+RMI(E olha que eu gosto de Swing!)

B

Olá!

Por que não usar o Swing (através de java web start?), junto com HTTP(S) (no servidor, usando o “estilo” REST, servindo XML)?

Como disse, a a maior limitação fica por conta da exigência de JVM instalada nos pontos de acesso. Não acham que é uma opção a ser considerada?

G

Uso de XML eu só recomendo em caso de ser necessária a interoperabilidade entre diferentes linguagens, pois em um cenário em que a performance já é um problema, o uso de um protocolo pesado como XML (fora o processamento das mensagens) pode piorar ainda a situação sem trazer nenhum real benefício perante a um protocolo binário como o RMI, por exemplo.

R

Então uma solução full jEE 1.5 seria boa? Com a minha aplicação rodando no container atraves de java web start?

G

Na verdade uma aplicação que utiliza o Java Web Start não roda no container, ela roda no cliente. Você pode fazer esta aplicação que executa no cliente acessar um servidor de aplicações remoto (normalmente de aonde foi acessado o Java Web Start)

R

Blz, mas nesse caso não estarei usando portas diferentes da 80?

S

O mundo é web. A interface que as pessoas querem usar é web. Web tem Ajax. Web roda em qualquer browser sem necessidade de plugin.

Vc sabe programar bem em Swing para fazer uma interface de alto-nível que justifique essa opção? Pois se vc usar o feijão-com-arroz de swing vai ficar igual ou pior a web. Swing é algo chato de se fazer. Dá bastante trabalho e exige conhecimentos dos detalhes sujos.

Sugiro que vc faça primeiro para a web. Dê uma olhada nesse ERP francês que foi feito com o Mentawai: http://forum.mentaframework.org/posts/list/157.page#850

Uma vez feito para web, nada te impede de fazer um aplicativo/applet que através de requisições web via objeto HttpConnection, faça a mesma coisa que o seu browser faz. Não precisa nem usar XML, apenas faça requisições para o seu servidor web, parseie o HTML que ele retornar e exiba as coisas.

C

Estamos fazendo nosso aplicativo usando Swing mesmo… o que mais deixou o pessoal chateado com a web é a total falta de padroes funcionais… CSS é uma salada ( me desulpe… mas cada browser identifica como quer ) , javascript depende de browser pra browser… fora que voce nao tem acesso a alguns dispositivos ( como vc faz para imprimir em impressora fiscal ? formulario continuo ? imprimir qualquer coisa na COM ou usar saidas seriais )

Fora que o controle da aplicação se torna muito mais facil com swing… web um simples “back na pagina” pode levar o usuario a loucura… e o controle de foco eh bastante precario em web…

Se voce quiser fazer algo mais bem bolado vai cair numa applet (pra acessar a impressora fiscal por exemplo)… que vai exigir que a JVM esteja instalado Com Java Web Start voce mantem o software atualizado… e distribuido facilmente… se voce usar NetBeans vai ver como é tranquilo criar formularios (use JDK 6 ), se usar Java EE 5 vai poder distribuir automaticamente sua aplicacao pelo Enterprise Application Client ( ok,ok , vem desde o J2EE 1.2 mas eu vi funcionando soh no 5 )…

Existem varias possibilidades dentro do mundo Java SE… considere fazer seu app em swing… pois a web hoje é uma total zona… algo deste tamanho vai ter uma monstruoza manutencao de design… e isso pode ser um tiro no pé…

Deixando bem claro que isso eh A MINHA OPINIAO… nao quer dizer que eh a verdade universal :wink:

ps: se usar Java EE 5 podera converter seus beans de sessão em WebServices com 5 segundos…

@Stateless
@WebService
public class meuBeanDeSessao implements intHome,intRemote {


}

Sua aplicaçao pode usar WebServices para acessar invez de RMI/IIOP , vai ser transparente esta mudanca…

Quer produzir de verdade ?
IDE - NetBeans 5.5
Java SE - 6.0
Java EE - 5
App Server - GlassFish

M

Gostei da colocação chun.

Por que formulários é melhor com JDK 6.0 ? Estas falando do Matisse ?

Márcio

S

Concordo com vc. Se tem facilidade com Swing e a aplicaçao tem uma interface muito complexa pode ser uma boa opçao.

Ajax e JavaScript é muito zoneado mesmo, mas quando vemos sites como GMAIL vemos que é possível fazer interfaces de alto nível para web.

C

marcioa1:
Gostei da colocação chun.

Por que formulários é melhor com JDK 6.0 ? Estas falando do Matisse ?

Márcio

Porque o matisse consegue usar o GroupLayout do JDK 6 ( nao necessitando de bibliotecas externas , que eh o caso do jdk 5 ) e ele vem com uma serie de vantagens…

L

Já vi alguns ERPs Swings, Webs e outros que foram migrados de Swing pra Web, e é muito difícil não ver a diferença clara de interface e usabilidade da aplicação desktop swing em relação as webs.

Já pensou vc ter que dar manutenção num emaranhado de java script, css e outras coisas?
vc disse que já tem experiência com swing, que já tem projetos maduros rodando em swing, com certeza vc vai ter uma produtividade maior e conseguir sanar seus requisitos de interface com muito mais facilidade e com certeza com qualidade final.

Se seu cliente pode esperar por recursos pros usuários como teclas de funções, atalhos, notificações via systray ou “alarmes”, e coisas que todo mundo tem em qualquer aplicativo desktop, faça a medida de dificuldade/tempo pra vc fazer esse tipo de coisa com swing e com web, pra manter isso, ampliar.

EU iria de swing sem sombra de dúvidas, e abuse do Java Web Start :wink:

C

Quanto as vantagens do Java SE 6

http://www.go-java.com/blog/2006/12/13/1166029157916.html

O

Sou suspeito para falar, mas caso você não necessite de uso do tray e de interação com o hardware de cliente (por exemplo impressoras fiscais), iria de web sem sombra de dúvidas.

O Ajax pode estar confuso hoje, mas esse seu projeto vai consumir pelo menos 1 ano de desenvolvimento e a tendência é que passemos a escrever Ajax como classes normais de Java (ver o GWT e o Dojo que já implementam esse tipo de solução).

Não é nada, não é nada, mas vai diminuir em muito o seu nível de suporte idiota (que são normalmente problemas em máquinas de clientes). Com o padrão Web você fica muito vulnerável ao clientes. Lógico, aplicativo web tem que ter maior controle de segurança, mas no final acredito mais nele.

abraços

C

otaviofcs:
Sou suspeito para falar, mas caso você não necessite de uso do tray e de interação com o hardware de cliente (por exemplo impressoras fiscais), iria de web sem sombra de dúvidas.

O Ajax pode estar confuso hoje, mas esse seu projeto vai consumir pelo menos 1 ano de desenvolvimento e a tendência é que passemos a escrever Ajax como classes normais de Java (ver o GWT e o Dojo que já implementam esse tipo de solução).

Não é nada, não é nada, mas vai diminuir em muito o seu nível de suporte idiota (que são normalmente problemas em máquinas de clientes). Com o padrão Web você fica muito vulnerável ao clientes. Lógico, aplicativo web tem que ter maior controle de segurança, mas no final acredito mais nele.

abraços

Mas os problemas vao continuar acontecendo… a impressora vai continuar nao imprimindo… o windows vai continuar com virus… o usuario vai continuar fazendo burrada… disso voce nao vai escapar…

Coisas como GWT eu não consigo acreditar em projetos serios… pois implementao duas coisas que considero criticas…

1 - Um padrao que tem apenas um fornecedor… ou seja… o dia q a google nao fizer mais nada novo… voce vai precisar reescrever TUDO, e acredite… isso eh um GRAVE problema, ainda mais para um ERP que dura seculos…

2 - Quando voce tem uma incompatibilidade entre browsers voce tem um belo problema… que da forma convencional voce pode fazer um hack no css ou no javascript… e da forma automatica ? esperaria a google corrigir ?

O

Veja bem, não falei para ele usar GWT. Falei que isso era uma amostra de tendência.

Você tem razão quando diz que continuidade é um problema sério.

abraços,

otávio

L

Mas se vc vai iniciar um projeto hoje, tem que fazer com o que tem disponível não é, até porque, se vc começar fazer com um desses frameworks, e não gostar, tem com migrar pra outro o que vc já tinha feito? pelo que eu sei não…

Contrato de suporte da uma graninha viu :wink:

O

Luiz você tem razão, mas é uma questão do prazo de implementação deles. Num modelo mvc você pode definir inicialmente quais caracteristicas esperar da sua arquitetura e deixar a parte do view um pouco mais pra frente, estudando um pouco mais e ajudando em projetos que se alinhem à sua espectativa (porque temos que ajudar também, né?).

É verdade, mas por mais mala que possa parecer, minha empresa vende eficiência e isso é um custo caro, dado o nível das pessoas contratadas, para pensarmos em nos focar em suporte (nossa modelagem é mais flexível para atender nossos clientes)… Sei que isso não vale para todos, mas é nosso modelo de negócios,…

abraços,

otávio

M

Desenvolver em WEB é um futuro, e em DESKTOP é regredir o tempo, está é minha sugestão. Veja um exemplo de ERP WEB:
http://www.f6sistemas.com.br/erpweb

J

Este aqui é feito em PHP: ERP WEB.

Conseguiram ter recursos de interface e usabilidade dignos de um software DESKTOP.

D

Nos temos versões web e versões web de EGG, não consigo me lembrar da ultima vez que nos instalamos uma versão desktop, aps o que eu vejo mais e mais, e a estrutura seguinte :

um ERP Desktop na empresa sincronisado com um CRM Web pela força de venda (o modulo de Smartphone de EGG encontra muito sucesso). Os dois trabalham muito bem em paralel, a sincronisação é facil, é cada pessoa na empresa tem a ferramenta certa com a tecnologia certa.

Criado 8 de janeiro de 2007
Ultima resposta 19 de jul. de 2010
Respostas 41
Participantes 19