[/quote][quote=victorwss][quote=http://update.jukeboxmc.com/relatorio-tecnico-de-avaliacao-da-ferramenta-rad-maker.pdf página 17]
3. O desenvolvimento de sistemas deverá ser feito de forma padronizada, através de ambiente gráfico, sem a necessidade da customização ou da alteração do código fonte eventualmente gerado.[/quote]
Estranho uma equipe do governo definir isto como requisito.
Hipótese 1: Os avaliadores vieram de algum ambiente visual como delphi ou VB, e mesmo assim esse requisito não se aplicaria devido ao “sem a necessidade da customização ou da alteração do código fonte eventualmente gerado”.
Hipótese 2: Os avaliadores estavam comprados e criaram este requisito já sabendo que o maker se adequaria a ele perfeitamente.[/quote]
Concordo que, aqui no Brasil, possa sim ocorrer a hipótese 2… Mas eu não pensei em teoria da conspiração não kkk… Pensei na seguinte hipótese:
Hipótese 3: A Câmara tinha um bucado de programadores que não evoluiu e que so conheciam cobol, clipper, pick d3, etc, inviabilizando a possibilidade de se construir qualquer software para a Web. Se viram numa encruzilhada de mandá-los embora (o que deve ser complicado pois podem ser concursados ou “indicados” por algum parlamentar), Treiná-los em uma nova linguagem de programação (o que poderia ser demorado, caro e sem resultados se não houver interesse real dos programadores). Acredito que eles optaram por treinar mesmo assim e, nesse meio tempo, conheceram o Maker, daí a softwell fez todooo um comercial da ferramenta e NA proposta colocou diversos pontos que EU mesmo não acredito que teriam sido requisitos da Câmara, como 18 pontos de função por hora!
Do jeito que falaram é fácil, criar XML simples qualquer um consegue. O negócio complica quando você começa a ter namespaces, XSLT, SOAP e coisas assim. Pela lista de funções que mostra na figura, isso deve se limitar apenas a XML simples.
Mas, por outro lado, este ponto acaba não sendo tão importante assim, pois cedo ou tarde eles colocarão estas características na ferramenta, isso se já não estiver lá e apenas aparecendo em outro lugar.
Mas a avaliação neste ponto foi simplória.[/quote]
Realmente, concordo que isso pode ser complicado e que, provavelmente o Maker não deve ter funções para tratar esses casos mais complexos. O que faz a diferença é que nós como programadores - alías, vocês, por que eu não programo em Java - podem criar uma nova função JAVA, colocar todo o código java para instanciamento, criação, tratamento de quaisquer tipos de funcionalidades mais complexas que não existirem no Maker, e simplesmente fazer a chamada pelo Maker, assim, qualquer estagiário de R$800 poderá utilizar essas novas funções através do Maker, assim como já é feito hoje com Units e Módules de funções em outras linguagens.
Pelo que apareceu na tela, uma mensagem sem muito sentido, eu diria que isto foi inconclusivo. Ler um monte de texto de algum lugar (como um webservice) é fácil, parseá-lo e retirar informação semântica útil é difícil.
Além do mais, parece que não testaram o caso de ocorrer um fault. Pelo que lembro (e escrevi no primeiro post deste tópico), o maker não tinha nenhuma forma de tratar isso.[/quote]
Concordo. Os testes que fizeram foram realmente simplórios, o que demonstra mais uma vez o desconhecimento da equipe de TI da Câmara Municipal em relação a Sistemas para Web. Sobre o tratamento de erros, é sim possível se fazer com o Try … Catch, função a função como globalmente no sistema, para outras excessões não tratadas dentro das funções.
Olhem só a página gerada. Boa parte do HTML está dentro de um javascript e é criado via document.write (página 31).[/quote]
Ridículo isso kkk! Eu que comecei na Web com HTML, acho RIDÍCULO o código gerado por qualquer gerador… Não só do Maker, mas do Dreamweaver, Fireworks, Visual Studio, Delphi 2007, TODOS geram códigos muito estranhos e cheios de sujeira. PHP foi a única linguagem de programação Web que já trabalhei que me permite total controle sobre o HTML / Javascript gerados. Tenho certeza que com JAVA conseguimos controlar isso também. Citando um exemplo, com C#.NET você simplismente não consegue fazer um sistema em Tabless, como fazemos hoje nas Lojas Virtuais ou em nosso site com PHP.
[quote][quote=http://update.jukeboxmc.com/relatorio-tecnico-de-avaliacao-da-ferramenta-rad-maker.pdf página 32]<iframe style="DISPLAY: none; LEFT: 0px; POSITION: absolute; TOP: 0px"
allowtransparency=“true” name=“WFRFormComands” src="nothing.html"
width=“0” height=“0” frameborder=yes
border=0 marginwidth=0 marginheight=0 scrolling=no></iframe>[/quote]
Alguém pode dizer para quê este iframe invisível?[/quote]
Sujeira ou provavelmente alguma área em que ele carrega alguma coisa via AJAX e altera o DISPLAY em execução via Javascript… Mas esse tipo de coisas acontecem com códigos gerados por .NET por exemplo…
[quote][quote=http://update.jukeboxmc.com/relatorio-tecnico-de-avaliacao-da-ferramenta-rad-maker.pdf página 32]<form name=“WFRForm” method=“post” action=“form.do"
target=“WFRFormComands”>
<input name=“sys” type=“hidden” value=“AFE”>
<input name=“formID” type=“hidden” value=“2”>
<input name=“action” type=“hidden” value=“form”>
<input name=“param” type=“hidden” value=“post”>
<input name=“goto” type=“hidden” value=“1”>
<input name=“invisibleFields” type=“hidden” value=”">
<input name=“storedProcedureName” type=“hidden” value="">
<input name=“storedProcedureParams” type=“hidden” value="">[/quote]
Referência a Stored Procedure em HTML!? WTF?[/quote]
Nem vou falar nada por que não tenho a menor idéia do pra que serve isso…
[quote]
[quote=http://update.jukeboxmc.com/relatorio-tecnico-de-avaliacao-da-ferramenta-rad-maker.pdf página 33]<div id=‘lay’ style=‘position: absolute; width: 100%; height: 100%;
left: 0px; top: 0px;’>
<div>
<table class=“navigationBar” align=“center” border=“0” cellspacing="0"
cellpadding=“0”><tr>
<td> </td></tr></table>
</div>[/quote]
Bem, isso deve ser aquela barra de navegação que toda tela tem (e lembra bastante alguns formulários do Access).[/quote]
Sim, lembra e é feia, mas é customizável.
[quote][quote=http://update.jukeboxmc.com/relatorio-tecnico-de-avaliacao-da-ferramenta-rad-maker.pdf página 36]</body>
</html>
<script type=“text/javascript” language=“JavaScript1.2”>
setTimeout(‘formOnLoadAction()’, 0);
</script>
<!-- Tempo de Carga: 156ms -->[/quote]
Não tenho certeza, mas acho que isso não passa em um validador. Ter algo depois do </html>.[/quote]
Mais uma coisa que só testando… mas lembrando que isso é o tempo de carga NO SERVIDOR, não necessariamente tempo de exibição no client.
Bem, não é o melhor código que pode se esperar. Mas já vi ferramentas por aí gerando coisas bem piores.
Mas, é estranho terem colocado especificamente este requesito. E se eu tivesse criado uma ferramenta que gera código em C# ou em python, mas não em java?[/quote]
Bom, mais uma vez volto naquele primeiro item e acredito que não fora requisito da Câmara, mas sim uma parte do escopo da proposta da Softwell… Eles tem usado isso bastante para convencer os clientes que eles não ficam presos à ferramenta, mas na prática, não adianta muito. Não vou adquirir o Maker caindo na ilusão que seja prático migrar para JAVA. Se um dia eu precisar migrar para JAVA, sei que terei muito trabalho de entender e melhorar o código exportado. Só achei viável a ferramenta, justamente por que TUDO que eu precisar mudar, que somente puder ser feito com linhas de programação, poderei fazer em JAVA dentro do próprio Maker, não ficando preso à Softwell.
É curioso e até mesmo irônico que a geração de um erro faça a ferramenta ser aprovada neste requisito. E mais, se eu quisesse tratar o erro que veio da stored procedure (sem ter que ir no nível mais baixo e mexer direto no java), como eu faria?
Eu sei que o maker não tem tratamento de exceções porque vi isto na apresentação. Parece que até agora a softwell (que com certeza já leu tudo que escrevi no primeiro post deste tópico) ainda não arrumou isso.[/quote]
Pelo que vi, a única forma de tratar erros diretos do banco não previstos nas telas, é por Try … Catch, que precisam ser ESCRITOS literalmente. Não vi tratamento de Excessões em caixas de fluxo na versão 2.0, mas a 2.5 que será liberada no meio do ano já promete fazer isso em fluxos. E eu disse
"não previstos nas telas…" por que quando você cria uma nova tela, ela já trata os campos obrigatórios e os tipos de dados automaticamente, não permitindo digitar texto em campos numéricos e quando algum usuário tenta salvar sem preencher campos NOT NULL, exibe erro amigável.
Bem, não é só java que ele gera.
[/quote]
Realmente, já gera as STP dos bancos homologados… o que é interessante quando você tem uma aplicação que precisa rodar em vários bancos diferentes. Por exemplo, testamos uma conexão no Firebird, no MySQL e no Postgre. Primeiro criamos o projeto em Firebird e criamos uma STP para popular uma tabela, depois que ela estava funcionando no banco, “Ativamos” a aplicação no MySQL e ele gerou a STP automaticamente, que funcionou legal (mas nada impede de você modificar ela via código inclusive dentro do Maker), depois “Ativamos” no Postgre e ele novamente gerou a STP novamente para Postgre. Em muitos bancos, não há problemas por que as STP são iguais, mas no ORACLE e SQLServer, isso faz muita diferença, pois ao invés de utilizar SQL puro, segundo a softwell, o Maker utiliza PL-SQL no Oracle e T-SQL no SQLServer, o que traz significativo ganho de performance nesses bancos.
[quote]
Mudar estilos significa mudar cores? Não vi mudanças de estilo mais profundas. Apesar que não acho que isto seja difícil de implementar e provavelmente o maker deve ter.[/quote]
Com certeza tem, agora, você acha mesmo que os avaliadores responsáveis por esse documento sabiam fazer algo melhor? rs
Esta me surpreendeu. Confesso. :shock: [/quote]
Bem interessante isso…
Um sitema crud com um webservice (que também é crud). Existem um monte de ferramentas que geram isso automaticamente, mas quando você tem que fugir disso…
Basta olhar as páginas seguintes, as telas que são feitas.[/quote]
Bom, isso é novamente o que eu abordei… para CRUD, ele é uma ferramenta que lhe dá um ganho inigualável em produtividade, principalmente por poder colocar estagiários para montar telas e analistas nas regras de negócio e resolução de problemas mais complexos, mas, claro, se for fugir TOTALMENTE de CRUD, não vale a pena! Você irá ter só mais trabalho transformando JAVA em fluxos, mas a maior parte do trabalho será realmente feita em JAVA…
[quote][quote=http://update.jukeboxmc.com/relatorio-tecnico-de-avaliacao-da-ferramenta-rad-maker.pdf página 62]Com uso do SQL Server profiler, foi observado que os comandos
enviados para o SQL Server são comandos preparados e parametrizados,
impossibilitando o uso de SQL Injection.
Em todos os campos texto é feito o tratamento de apóstofre.[/quote]
Bom sinal. Melhor do que aquele super gerador de aplicativos java, com telas coloridas. :lol:
Enfim, mantenho a mesma conclusão que coloquei no primeiro post deste tópico.[/quote][/quote]
Enfim, só estou “perdendo” meu tempo aqui postando essas coisas, por que acho alguém que passar por aqui pode aproveitar dessa informação. Li o tópico desde o início, as 18 páginas até fazer meu primeiro POST e realmente só vi discussões. Ninguém até o momento tinha postado o que postei hoje (ontem) e, acredito que eu esteja colaborando para o compartilhamento dessas informações e enriquecimento de nossa discussão. Daqui alguns meses, estarei eu pedindo dicas de como resolver isso ou aquilo em JAVA e postando sobre como REALMENTE a ferramenta se comporta no dia a dia do desenvolvimento de um Big Projeto.
Em nenhum momento quis defender a ferramenta! Somente estou defendendo meu ponto de vista e, tentando mostrar para os que especulavam, que o “TREM” não é bem assim um bicho de 7 cabeças…
Agradeço a todos pela atenção e me desculpo se fiz alguma ofensa - não-intencional - a algum participante do fórum!