Quais ferramentas utilizar em um projeto pequeno

Ola, eu ja programei um pouco em java, acabei desenvolvendo um projeto em tcl/tk. Nesse proximo projeto estava pensando faze-lo em java.
O projeto é pequeno e tem que rodar em ambas plataformas: windows e linux. Tem que ser de facil instalação para os usuários. Tem que utilizar ferramentas free.

Tenho as seguintes duvidas:

  1. Qual banco de dados utilizar ? XML?
  2. Qual programa preciso para fazer relatorio (JasperReport)?
  3. Depois do sistema pronto como faço um programa de instalação que instale tudo, desde de o java, se precisar, até o jasper report, e outros pacotes implementados no projeto??

Se alguem poder me ajudar, agradeço.

Leonardo

Bem vindo ao GUJ Leonardo :wink:

Seu sistema necessariamente deve ser desktop? pq se não, você pode pensar em um sistema web, assim o unico trabalho seria instalar o servidor (que na maioria das vezes é fácil) e os terminais iriam acessar através de um browser.

Caso seja um sistema desktop (Swing, Thinlet, etc)

A nivel de banco de dados, existem alguns free no mercado, como Firebird, PostgreeSQL, HSQL, etc. Todos são bem tranquilos de instalar, e você vai precisar instalar apenas no Servidor!! os terminais apenas devem saber o caminho fisico para o servidor, isso pode ser armazenado dentro de 1 arquivo .properties por exemplo.
Dependendo da base de dados e da quantidade de memoria do servidor, você pode usar o Prevayler para fazer persistencia.

Relatório você pode usar o Jasper mesmo, eu particularmente nao conheço outro tao simples.

Você pode usar uma IDE Free, existe no mercado o Eclipse, NetBeans, JDeveloper, etc etc etc. a Galera aqui prefere o Eclipse, eu tb sou mais o eclipse, mas lembrnado que eu só trabalho com sistemas WEB

Se for WEB, você não se preocupa em distribuir sua aplicação, instala no Servidor e os clientes acessam via Browser. Se for desktop, você DEVE utilizar o JWS (Java Web Server), no forum ja foi muito comentado sobre ele

Espero ter ajudado e esclarecido algumas idéias

Obrigado pela ajuda.

Mas ainda tenho umas duvidas.

Eu iria precisar criar um outro programa, ou usar o installshield, isso é se ele fizer isso, e criar a instalação do sistema que faça tudo.

O program será distribuido para pessoas que as vezes sabem soh o basico de computação (usuarios finais) entaum muitas coisas eu nao poderei usar. Não posso esperar que a pessoa consiga instalar e configurar o banco de dados, incluir os classpath na maquina entre outras coisas sozinha.
Essa é a minha preocupação. Preciso fazer um programa que até a pessoa mais leiga em computação possa instalar.

falow

Obrigado

Leia sobre:
JWS: torna a instalação do seu software no cliente tão simples quanto clicar num link numa página. Conselho de amigo: fuja de ambiente web.
hsqldb: no site você aprenderá como colocar o banco de dados junto com a sua aplicação, sem precisar que o cliente instale e configure m* nenhuma!

LIPE, e baseado em quais motivos ele deveria fugir de ambiente web? É quase tão vago quanto mandar ele fugir de Windows em server.

  1. Protocolo HTTP é ótimo para mostrar páginas, não fazer aplicações. Vai um monte de lixo em cada requisiçao e cada resposta.
  2. Controle de sessão inseguro.
  3. HTTPS é legal mas não cobre todas as implicações de segurança que podem ser necessárias numa aplicação.
  4. Não há controle sobre o browser que o cliente usa.
  5. Não há compatibilidade entre os browsers quanto à javascript, css e mesmo html, e isso causa envelhecimento precoce.
  6. HTML foi feito para fazer páginas, não aplicações.
  7. Qualquer um pode adicionar qualquer código javascript em sua aplicação via GreaseMonkey.
  8. É infinitamente mais gostoso trabalhar com objetos serializados do que strings pra lá e para cá. Por melhor que seja o framework web, não se compara.

Só para constar, trabalho 8-10h por dia com aplicações web.

Ou seja, se pode optar, faça uma aplicação “desktop”.

[quote=LIPE]Leia sobre:
JWS: torna a instalação do seu software no cliente tão simples quanto clicar num link numa página. Conselho de amigo: fuja de ambiente web.
hsqldb: no site você aprenderá como colocar o banco de dados junto com a sua aplicação, sem precisar que o cliente instale e configure m* nenhuma![/quote]

Lipe, quero saber sua experiencia JWS, ouvi gente falando mal, quanto estava a procura de opções para distribuição via net.

Experiência pessoal quase nada além de uns testes básicos, sem usar as features mais bacanas dele. Experiência de amigos desenvolvedores: excelente.

Falando o que mal?

O treco é tão bom que até a Microsoft está copiando :smiley:

[quote=LIPE]Experiência pessoal quase nada além de uns testes básicos, sem usar as features mais bacanas dele. Experiência de amigos desenvolvedores: excelente.

Falando o que mal?

O treco é tão bom que até a Microsoft está copiando :D[/quote]

Sobre o jws, que não é ideal para distribuição de sistema e falando que o formato web seria mais ideal.

Gostaria de saber se discorda ou concorda, os pontos que se deve levar em consideração na distribuição da aplicação.

Exatamente como o LIPE ainda nao explorei muito os recursos do JWS. Porem como experiencia pessoal acho bem legal a possibilidade de colocar na intranet um link para cada sistema e o usuario simplismente ir la e baixar/instalar/executar, alem de não precisar ficar “inventando” metodos de atualização para estes caso estivessem “instalados” na maquina do cliente.

Valew pelas dicas, vou procurar mais sobre jws e hsqldb.

Falow

Qualquer coisa eu posto novas duvidas.

[quote=farribeiro]Sobre o jws, que não é ideal para distribuição de sistema e falando que o formato web seria mais ideal.
[/quote]
Isso também não ajuda hehe por que não é ideal para eles?

Depende muito do tipo de aplicação, da equipe e do cliente para determinar se vale a pena passar por todas as dores do desenvolvimento web levando apenas em conta a facilidade de deploy.
O fórum é um ótimo exemplo de aplicação em que ninguém quer baixar porcaria alguma para poder utilizá-lo. Ou seja, um dos objetivo é atingir o maior número de pessoas o mais fácil possível, o público é geral.
Mas no caso de aplicações corporativas, onde ocorre treinamento, visitas e etc, não vejo motivos simples para não fazer uma aplicação em Swing ou primos.

Um exemplo onde uma aplicação instalada via JWS cairia muito bem é o caso de Internet Banking. Muito mais seguro e não seria necessário ficar instalando merdinha de componente ActiveX para não ser roubado. Updates automáticos e rodaria em qualquer OS.

Mas entenda, esta é uma análise muito precoce e não estou me baseando em dados, apenas em bom-senso. Há muito mais variáveis a serem levadas em conta. Como aprendi, não há “best practices”.

Estou fazendo um projeto pequeno. Estou usando Eclipse, Hibernate, banco Firebird, Swing com framework JGoodies Forms.
A arquitetura está legal. As coisas estão simples e funcionando. Estou separado as camadas conforme o padrão MVC.