Criação de sites, softwares e sistemas inteligentes.

INTRAWEB - RAD para Web Destaque

IntraWeb - Desenvolvimento Rápido de Aplicações Web

Quem já desenvolve em Delphi e não conhece/usa IntraWeb não sabe o tempo que está perdendo. É um Framework amado por uns e odiado por outros - os que o odeiam conhecem muito pouco dele, em sua grande maioria - que turbina o desenvolvimento de aplicações robustas para o ambiente Web usando o nosso querido Delphi.

Bugs? Tem, mas não mais que outras ferramentas de desenvolvimento e são fácilmente contornáveis. Limites? sua imaginação. IntraWeb gera HTML, se tem HTML tem JavaScript e CSS, que são a base da Web. IntraWeb é extensível e personalizável com tecnologias já conhecidas. Flash, Ajax, jQuery, CSS, e várias outras tecnologias para web são fácilmente "embutidas" numa aplicação Web desenvolvida com IntraWeb. Tendo Delphi como back-end é extremamente prazeroso desenvolver. A velocidade de desenvolvimento é imbatível e se seu código Delphi for de boa qualidade permite centenas de conexões simultâneas sem travar o servidor.

Limitações

Apesar de ser em Delphi, uma aplicação Web não pode ser construída exatamente igual à uma aplicação desktop, não por limitação do IntraWeb, e sim por causa da mecânica da própria Web. Um form modal por exemplo, não tem como ser feito de maneira fácil e deve ser substituído por funções callback. Variáveis globais só devem ser usadas se realmente for o caso, pois são acessíveis de todas as sessões da aplicação. Quem desenvolve uma aplicação Web deve ter cuidado para que informações críticas não sejam compartilhadas entre os usuários logados. Seguindo-se regras básicas, IntraWeb é muito eficaz no gerenciamento das sessões, tornando-as 100% individuais. Um dbgrid exibindo 1000 registros numa aplicação Web óbviamente vai ficar pesado, o HTML gerado vai ficar gigantesco. Isso deve ser evitado até numa aplicação desktop. O usuário vai editar quantos registros ao mesmo tempo? um. Então devemos retornar somente um. Uma maneira otimizada de se fazer uma consulta (tanto desktop quanto Web) é criar uma janela de pesquisa que retorne dados somente com os campos essenciais para identificação dos registros (id, código, nome e cnpj, por exemplo) e então retornar o registro de forma completa para exibição/edição. Trabalhando à quase 6 anos com IntraWeb, fui desenvolvendo e aprimorando ótimas técnicas de desenvolvimento e veremos algumas em artigos futuros. Até!

Última modificação emTerça, 23 Setembro 2014 19:20
CGM

A CGM é uma empresa especializada em desenvolvimento de projetos de informática e sistemas personalizados.

A sólida parceria desenvolvida com seus clientes na última década atestam a vocação da CGM Automação no desenvolvimento de programas específicos com o que é de mais moderno em informática. Nossos profissionais comprovam uma longa experiência profissional, que é compartilhada com cada um de nossos clientes.

Website.: www.cgmautomacao.com.br

Comentários  

+1 # Wagner Freitas 14-04-2011 03:32
Estou contigo ...
Agora animei com Intraweb
Responder | Responder com citação | Citar
0 # Cleiver 07-05-2011 02:12
gostaria de estar recebendo o material tambem para estudos.
Responder | Responder com citação | Citar
0 # Vonir 09-12-2011 13:41
Olá ...
gostaria de saber como fazer no intraweb para mudar de campo com a tecla ENTER
Já procurei ... mas nada de conseguir.
Responder | Responder com citação | Citar
0 # Ricardo 22-12-2011 19:59
Olá Alonso, boa iniciativa, comecei a usar o intraweb agora, pois tenho um sistema desktop pretendo migrar para web, comecei estudando java, php, asp.net, mas percebi que teria que a curva de aprendizagem seria muito grande (parecendo ate bixo de 7 cabeças), com intraweb me senti em casa, pois trabalho com delphi a 10 anos, mas nunca estudei a fundo o intraweb por falta de documentação. Entretando com as novas versões do delphi isto esta sendo desmistificado de vez. Em 3 semanas ja implementei toda parte de cadastro do sistema, muito prático, isso sim é uma ferramenta RAD.
Responder | Responder com citação | Citar
0 # Colegas 07-02-2012 23:25
Comecei usar intraweb rescentemente e estou precisando de uma ajuda, no decorrer de testes trombei esta mensagem: "This edition is limited to 5 concurrent active sessions "
Porque e como resolver? será que alguem pode me ajudar?
Responder | Responder com citação | Citar
0 # Administrator 12-03-2012 12:16
Essa é uma limitação da versão Personal, que vem com o Delphi XE2 Professional.
Responder | Responder com citação | Citar
0 # Alessandro 05-04-2012 21:19
Ola Ricardo!

Gostaria de saber como esta seu projeto do intraweb, pois estou apanhando aqui no meu e gostaria de saber se alguem passou pelos mesmos problemas
Responder | Responder com citação | Citar
+1 # Nilton 18-02-2012 01:37
Venho estudando delphi para desenvolver um sistema desktop de controle de clientes e funcionários, já de imediato estou pretendendo migrar para web. Estou a procura de material, apostila para estudar, quem poder me ajudar fico grato.
Responder | Responder com citação | Citar
0 # Alessandro 05-04-2012 21:17
Ola Alonso Jr!
Tenho um sistema desenvolvido em Delphi 2007 com firebird 2.5. A pouco desenvolvi um pequeno projeto, acessando e gravando registros nessa base FB, usando esse intraweb da atozed v9.0.42, essa aplicacao esta rodando num server 2003 e 2008 para teste nao como ISS ainda, hoje qdo fui testar com 02 e 03 usuario gravando registros ao mesmo tempo o browser comecou a travar. Primeiro 'invalid request handle... identified in a fletch or close statement is not open. Depois comecou a apresentar erro no fbclient.dll e tbem travava todos que estavam acessando a aplicacao. Isso tudo via browser. Gostaria de saber se tem alguma sugestao ou se poderia entrar em contato para tirar alguma duvida.
Grato
Responder | Responder com citação | Citar
0 # Administrator 09-04-2012 12:21
Alessandro, uma coisa que causa bastante erros é o compartilhamento da conexão ao banco entre as sessões. Seu componente de acesso ao banco está no UserSession ou no ServerController?
Responder | Responder com citação | Citar
0 # Alessandro 09-04-2012 13:06
Bom dia!
Estou usando o Zeos no ServerController, porta 8888
Responder | Responder com citação | Citar
0 # Administrator 09-04-2012 13:31
O problema está ai. Cada UserSession deve ter seu próprio componente de acesso ao banco. Coloque o Zeos no UserSession e teste pra ver se resolve.
Responder | Responder com citação | Citar
0 # Alessandro 10-04-2012 17:20
Mudei o componente Zeros para o UserSessionUnits mas agora estou como o seguinte problema e fiquei boa parte do dia ontem sem ter sucesso na solucao: como faz pra referencia-lo em outras tela, eu aprendi fazer passando pelo servercontroller, o servercontroller referencia o usersession e as demais telas usam o servercontroller...
Responder | Responder com citação | Citar
0 # Administrator 10-04-2012 18:21
Use a função "UserSession" do ServerController para retornar a instância do IWUserSession específica da sessão atual.

Para conectar os componentes de dados ao Zeos, referencie a unit UserSessionUnit no "uses".
Responder | Responder com citação | Citar
0 # Alessandro 10-04-2012 17:23
e pq que os compoenntes querys ligados ao conexao la no userssesion só aceitam open e close apenas uma vez, na segunda elas dão erro. preciso usar uma query em uma grid, query ligada ao connect no userssesion, quando faço inclusão da primeira vez, funciona, quando dou refresh na query da grid pela segunda vez... da erro, antes com o componente no servercontroler nao dava esse erro. Poderia me ajudar nessa duvidas
Responder | Responder com citação | Citar
0 # Administrator 10-04-2012 18:22
Qual erro?
Responder | Responder com citação | Citar
0 # Alessandro 10-04-2012 20:22
Vou corrigir essas coisas q me passou e qquer coisa post aki...
Responder | Responder com citação | Citar
0 # Alessandor 26-04-2012 12:21
Ola!
Fizemos as correcoes no usersession e no servercontroler, mas ainda tive um problema: no sistema tenho basicamente 02 forms (um para o usuario logar digitando empresa, usuario e senha e o outro form que 'e uma tela de lancamento) criei 02 variaveis globais tanto no usersession qto no servercontroler, chamadas vg_usuariologado e vg_empresalogada no usersession e codusuariologado e codempresalogada no servercontroler, ocorreu que ao acessar o sistema com + de 1 usuario as variaveis globais em qquer estacao assumiram os codigos do ultimo usuario logado, resolvi isso criando essas variaveis no segundo form e passa os dados do primeiro para o segundo uprincipal.codusuario := usenha.codusuario, nao sei se so funciona desta forma ou tem outra maneia de trabalhar
Responder | Responder com citação | Citar
0 # Administrator 26-04-2012 13:01
A maneira correta é manter as variáveis no UserSession (crie properties públicas, fica mais bonito), e não duplique as variáveis nos forms, não faz sentido.
Responder | Responder com citação | Citar
0 # Guest 04-06-2013 23:59
Alguem sabe como posso publicar minha aplicação Intraweb? Utilizo ftp para enviar os arquivos para meu servidor de site.
Grato
Moraiscg
Responder | Responder com citação | Citar
0 # Vonir 04-06-2012 22:04
Estou com o mesmo problema que vc citou (variaveis assumem valor do ultimo usuario logado)
Como vc resolveu seu problema?
Obs: sou iniciante
Tenho um IWEdit no FormPrincipal que recebe o nome do usuario. No segundo form o nome do usuario é o último que logou e não o correto.
Responder | Responder com citação | Citar
0 # Alessandor 26-04-2012 12:56
Outra duvida seria a seguinte este intraweb tem limitacao de acessos simultaneos ou esta qtde de acessos em certo ponto deixara o servico mais pesado, utilizo o firebird 2.5 o sistema q estou montando sera utilizado por aprox 150 estacoes com acessos simultaneos, o servidor 'e um hp com o linux como SO principal e rodando uma vw ware com o server 2008 para rodar esse aplicativo e outra com server 2003 rodando o aplicativo desktop, o bd firebird ficara no linux, pesquisei sobre o firebird e nao vi restricao para esta qtde de acessos, pois ele aguenta um numero bem maior de acessos simultaneos, o bd hj esta com aprox 400gb, nao sei a conf exata do servidor sei q foi comprado no comeco do ano e a equipe de hardware q montou o servidor ja fez preparado para tabalhar nesta estrutura, e o sistema nosso (desktop), ja esta rodando neste com aprox 10 a 15 estacoes e esta rodando perfeitamente.
Responder | Responder com citação | Citar
0 # Administrator 26-04-2012 13:07
A limitação é imposta pela qualidade do código.
Tome cuidado com datasets e a quantidade de dados carregada. Um clientdataset com 10MB de dados carregados parece pouco, mas não quando se multiplica por 150 sessões! :)
Cuidado também com o tráfego gerado por cada sessão, se não, vai te faltar largura de banda.
Responder | Responder com citação | Citar
0 # Alan 20-06-2012 13:06
Alguma sugestão ou dica para trabalhar com intraweb? Tem como me passar macetes?

Obrigado.
Responder | Responder com citação | Citar
0 # Guest 17-01-2013 15:34
é só saber o delphi, e o conceito de funcionamento (web) do browser.
Responder | Responder com citação | Citar
0 # Guest 15-05-2013 11:46
Estou enfrentando um caso que o stand alone não trava, mas quando tento acessar o link 127.0.0.1:8888 ele não carrega a aplicação. Se tento fechar a aplicação no servidor aí sim ele trava.
Alguém sabe o que pode ser?
Responder | Responder com citação | Citar
0 # Administrator 15-05-2013 12:23
Amigo, não consegui entender o problema que está enfrentando. Em Standalone funciona e em ISAPI não? Quando em standalone, o aplicativo precisa estar rodando o tempo todo pra que você possa acessá-lo pelo browser. Explique mais detalhadamente seu problema. Obrigado pelo comentário!
Responder | Responder com citação | Citar
0 # Guest 05-06-2013 15:53
Vou explicar melhor...
Eu criei uma aplicação em standalone que roda em um ip público. Ex.: 192.168.20.1:8888
Em determinado momento, meus clientes reclamam que não conseguem acessar.
Quando verifico o standalone, ele está com várias sessões (ex.; 185 - fato anormal), mas aparentemente o aplicativo não esta travado. quando clico para zerar as sessões, ele trava.
Já verifiquei uso da cpu, memória e rede, mas está tudo normal.
Nessa aplicação, os cliente podem realizar upload de arquivos (com iwfile), muitas vezes grandes (30 a 80 mb), pode ser isso?
Já não sei mais o que fazer. Se puder me dar uma luz, agradeço muito!
Responder | Responder com citação | Citar
0 # Administrator 05-06-2013 19:37
Olá! Uma das coisas que pode causar muitos travamentos é o DbExpress. Você usa na sua aplicação? Qual driver vocë usa? O driver otimizado "UIB FireBird15" tem problemas com multi-threads em ambiente web (no caso do Delphi 2005)...
Responder | Responder com citação | Citar
0 # Guest 25-03-2014 20:10
Uso firebird 2.5 e dbexpress com o trio clientdataset + sqlquery + datasetprovider.
Pesquisando pela web, descobri o Unigui, estou pensando em migrar para ele. É mais confiável?
Responder | Responder com citação | Citar
0 # Administrator 27-03-2014 13:22
Olá! Ainda não tive a oportunidade de testar esse framework, então não posso emitir opinião sobre ele. Quanto a confiabilidade, particularmente não vejo nada mais confiável do que Intraweb. Talvez se trate de erro de semântica da sua parte. Só avaliando, pra ver.
Responder | Responder com citação | Citar
0 # Guest 26-03-2014 17:34
Estou utilizando dbexpress sim. Com Delphi 2009. Vou tentar migrar para o Delphi XE5 com firedac e ver se resolve.
Vou tentar também utilizar o framework unigui que vi na web.
Responder | Responder com citação | Citar
0 # Guest 25-03-2014 20:12
Estou pensando em migrar para o framework unigui. É mais confiável?
Responder | Responder com citação | Citar
0 # Guest 28-03-2014 05:32
framework unigui esta parado,o Intraweb esta evoluindo
Responder | Responder com citação | Citar
0 # Guest 13-05-2014 16:25
Sou novato em IW. Comecei desenvolvendo com Delphi XE2 e para usar firedac, estou migrando para XE5. Estou com um problema que aparentemente é alguma bobeira. A aplicação não obedece a porta setada. No XE2 colocava a porta EX: 8888 e a aplicação rodava com essa porta ou qualquer outra que eu colocasse. No XE5 ele não obedece isso. Ele vai incrementando a numeração da porta na execução Ex: 55814, 55895 etc. Alguém sabe me dizer o que tenho que fazer para rodar com a porta que eu coloco? Obrigado e desculpe se a pergunta é muito simplória.
Responder | Responder com citação | Citar
0 # Administrator 14-05-2014 12:19
Bom dia! Amigo, não tenho o XE5 pra poder afirmar com certeza, mas nos outros isso acontece quando o Intraweb não está registrado(evaluation). Se sua IDE for original, solicite uma chave no seguinte endereço: http://www.atozed.com/IntraWeb/Download/FreeKeyRequest.EN.aspx
Abraços!
Responder | Responder com citação | Citar
0 # tiago 05-09-2015 02:42
certo mais uma vez com a chave eu coloco aonde ?
Responder | Responder com citação | Citar
0 # Guest 19-05-2014 15:10
Bom dia,

Alguém sabe se tem como alterar o sessiontimeout em tempo de execução?
Tenho uma aplicação que o cliente realiza upload de arquivos grandes e durante o upload, a sessão é encerrada, mas não gostaria de aumentar o sessiontimeout apenas no momento do upload e alterar para 1 durante a navegação normal.
Desde já grato.
Responder | Responder com citação | Citar
0 # Guest 09-06-2014 18:05
Boa tarde. Tenho uma aplicação ISAPI, está misturando as sessoes entre os usuarios logados. O que posso estar fazendo errado? Por favor, alguem me ajude

Deus abençoe
Responder | Responder com citação | Citar
0 # Administrator 10-06-2014 12:28
Bom dia! Você provavelmente está usando código (componentes, variáveis, etc) no ServerController, que é global. Tudo que deve ser único à sessão, deve ser colocado no UserSession (componentes de acesso a dados, por exemplo).
Responder | Responder com citação | Citar

Adicionar comentário


Código de segurança
Atualizar