Pular para o conteúdo

É possível usar o Lazarus em alternativa ao Delphi para desenvolver aplicações comerciais?

O Lazarus é um ambiente de desenvolvimento integrado que tem como objetivo ser compatível com a sintaxe Delphi, além de suportar diversas arquiteturas e sistemas operacionais diferentes. Porém, é comum existir a dúvida se o software livre, nesse caso o Lazarus, é capaz de substituir inteiramente o proprietário, Delphi, na tarefa de construir um sistema.
Evaldo Avelar Marques evaldoavelar
Hits: 80.886 Categoria: Linux Subcategoria: Software
  • Indicar
  • Impressora
  • Denunciar

Parte 4: Ambiente Delphi

Após a criação do banco de dados foi preparado o ambiente para o desenvolvimento primeiramente no Delphi com a instalação dos componentes de acesso a dados e gerenciador de relatórios.

Para o acesso a dados foi instalado o componente ZEOS Library visando manter compatibilidade no momento da exportação do código-fonte para o Lazarus, já que a ZEOS Library também possui uma versão para o Lazarus. O gerenciador de relatórios usado no Delphi foi o Quick Report devido a sua semelhança de interface com o Lazarus Report.

Antes de iniciar a codificação dos formulários foi desenvolvido primeiro a interface padrão de usuário do SUF. Inicialmente foi planejada uma tela na qual o usuário pudesse visualizar os registros, navegar por eles e aplicar filtros e outra tela onde os registros fossem cadastrados e alterados.

Seguindo essa linha foram criados dois formulários padrões. No formulário para as operações de visualização/recuperação dos registros foi colocado um grid para exibir todos os registros e uma barra de ferramentas para a manipulação dos mesmos, além de um filtro. No formulário de cadastrado e edição, foi inseridos um contêiner onde poderão ser colocados os campos nos formulários filhos e uma barra de ferramenta com opções para cancelar e salvar o registro que está sendo criado/alterado.

Com a interface já criada, deu-se início a escrita do código onde foi inserido rotinas genéricas para salvar, recuperar, criar e alterar os registros do banco de dados além de rotinas para tratamento de erros. Essas rotinas tem a finalidade de poupar tempo na construção dos formulários filhos, sendo que na maioria das vezes não será preciso escrever nenhum código, bastando apenas "montar" a interface e associar a fonte de dados.

O formulário principal foi desenvolvido levando em conta que este deveria gerenciar os demais formulários, criando, exibindo e desalocando da memória. Com isso foi colocado um menu contendo a referencia para cada formulário criado.

Com o formulário principal e os formulários padrões de manipulação de registro criados, deu se inicio a criação dos demais formulários de cadastrado de acordo com os casos de uso. O primeiro a ser desenvolvido foi o de cadastro de clientes para o qual foi criado um novo formulário herdado do formulário de visualização e um outro herdado do formulário de cadastrado/edição.

Na tela de visualização foi preciso apenas associar a fonte de dados ao a grid. No formulário de cadastrado/edição foi colocados os controles para cada campo já ligando-os a fonte de dados. Após esta etapa o formulário já estava funcional e foi adicionado ao menu na tela principal.

Os demais formulários: cadastro de projetos, fornecedores, departamento, rubrica, bancos, usuários, contas a pagar e contas a receber, seguiram o mesmo processo. Somente o formulário de cadastrado de "valores impostos" é que não herdou dos formulários padrões devido a sua interface ser diferente.

Ao término da criação dos formulários, foram cadastrados alguns registros no banco de dados para que houvesse dados para possibilitar o desenvolvimento dos relatórios. Foi construído dois relatórios para o sistema, com a interface padronizada, com um cabeçalho e descrição de cada campo. Depois de finalizado o desenvolvimento do SUF no Delphi, deu-se início a preparação do ambiente no Lazarus e ao desenvolvimento do SUF neste ambiente.
Linux: É possível usar o Lazarus em alternativa ao Delphi para desenvolver aplicações comerciais?
Figura 5 - Tela Principal do SUF no Delphi
Linux: É possível usar o Lazarus em alternativa ao Delphi para desenvolver aplicações comerciais?
Figura 6 - Tela Principal do SUF no Lazarus

Figura 7 - Relatório do SUF no Delphi

Figura 8 - Relatório do SUF no Lazarus

Figura 9 - Tela de cadastro do SUF no Delphi

Figura 10 - Tela de cadastro do SUF no Lazarus
Fonte: Autoria própria

   1. Introdução
   2. Ambientes de desenvolvimento
   3. Desenvolvimento
   4. Ambiente Delphi
   5. Implementação no Lazarus e limitações encontradas
   6. Conclusões

Software envelhece?

Quando é que eu vou usar isso na minha vida?

Firebird, fazendo valer o lado do servidor

Convertendo vídeos (VLC) e editando (Audacity) músicas

Criando aplicação MVC utilizando DOTNET Core no GNU/Linux

Bacula + Webacula + Bacula-web + bat no CentOS 6.3

Monitoramento utilizando Centreon 2.4.5 + Nagios 3.5.1 + CentOS 6.5

Slapt-get, prático e eficiente para atualizar o sistema e baixar programas novos

#1 Comentário enviado por brian_ch em 15/07/2010 - 21:58h
Nossa, parabéns, essa foi uma avaliação muito completa, além dos problemas citados uma das coisas que eu achei problemática foi o som, o lazarus não vem com uma ferramenta que possibilite colocar sons na aplicação, eu testei um componente chamado ACS que só consequi instalar usando uma resposta postada no forúm do lazarus e ainda não obtive resultados com ele (nem com o openAL outra opção para usar aúdio nas aplicações), seria possivel usar recursos do SO para isso, mas ai a aplicação não seria multi-plataforma.

O debugger realmente precisa melhorar já que é algo essêncial no desenvolvimento, outro problema que eu encontrei foi não conseguir conectar com o mysql5.1 o que eu não sei se tem solução.

Mas justamente por não ser ainda uma ferramenta completa é que precisamos tentar ajudar, sempre vejo muitas criticas ao lazarus por aí mas não gosto dessa atitude de querer tudo na mão, tudo pronto, a coloboração é que faz a beleza do open source.
#2 Comentário enviado por ParadoxDK em 16/07/2010 - 09:54h
Evaldo, você está de parabéns!

Sou programador Delphi e já utilizei o Lazarus para trabalhar no Linux, e, acompanhando seu crescimento, o Lazarus tem uma ótima compatibilidade com programadores Object Pascal migrados do Delphi, apesar de alguns incovenientes como a questão do áudio em aplicações, como o Brian comentou, se torna muito mais viável e rápido do que desenvolver com fpc na unha.

Muito bom este artigo!
#3 Comentário enviado por erlantz em 17/07/2010 - 03:57h
Também parabenizo pela ótima iniciativa. Este é um tipo de trabalho que ajuda muito a comunidade e divulga cada vez mais o software livre.
Sobre a questão do tamanho dos executáveis, se não me engano há um utilitário na instalação do lazarus chamado strip que ajuda a reduzir o tamanho do programa após compilado.
Uma sugestão é fazer o mesmo tipo de avaliação para uma aplicação em Visual C# que tem como opção o Mono.
#4 Comentário enviado por zendrael em 17/07/2010 - 11:04h
Olá!

O Lazarus é muito bom e, fora o som, supre perfeitamente as necessidades do Delphi. Para comandos específicos de Windows, declarar a lib "windows" no uses do arquivo principal do projeto. Para diminuir o tamanho do executável, não precisa desabilitar o debug; só utilizar o strip e o upx que vem junto com o lazarus (tanto no linux quanto no windows ou mac....)
É legal comentar também que o Lazarus pode ser útil para aplicativos WinCE e compila também projetos para gameboy e está já compilando alguns projetos simples para iPhone. Além de possibilitar a escolha da biblioteca gráfica que você deseja (GTK, QT...).
T+
#5 Comentário enviado por daigo em 17/07/2010 - 11:06h
Gostei da matéria. A avaliação, principalmente dos pontos negativos, serve para prevenir quem pretende migrar, independente de ser no Linux ou no concorrente. Infelizmente, o Lazarus não encontra-se no repositório do Lenny e quando tento instalar a versão disponível no site, faltam muitas dependências; engraçado que no Ubuntu, ele está disponível, então, quando quero fuçar, uso a source-list dele e faço a instalação sem muitos problemas.
Um incomodo que acho com relação ao Lazarus no concorrente do Linux é com relação ao tamanho ocupado do HD (não lembro o tamanho certo agora). A interface é feita em que? Como poderíamos colaborar seja financeiramente ou com código para acelerar o desenvolvimento?

Para quem não conhece, existe um projeto nacional muito bom desenvolvido em Lazarus, chama-se Jubarte (http://sites.google.com/site/jubartecalc/).
#6 Comentário enviado por vinyanalista em 18/07/2010 - 07:58h
Isso aí, excelente artigo. Favoritei.

Tenho pesquisado sobre o Lazarus por esses dias, pensei em utilizá-lo no meu TCC, mas diante de problemas como os citados aqui decidi usar Delphi: não consegui conectar com as versões mais recentes do Firebird e do MySQL (tentei inclusive a Zeos Library, sem sucesso), a depuração não é muito eficiente e algumas funções que fazem chamada direta à API do Windows não estão disponíveis.

Mesmo assim, estarei publicando aqui no Viva o Linux este mês o que consegui achar sobre o Lazarus, os artigos já estão em produção.

A maior vantagem do Lazarus sobre o Delphi, na minha opinião, é a possibilidade de gerar executáveis para diversas plataformas a partir do mesmo código (o slogan do Lazarus ilustra essa idéia: "write once, compile everywhere"). Consegui nas minhas experiências gerar programas com threads que funcionassem tanto em Windows quanto em Linux. É bem verdade que você tem que fazer alguns poucos ajustes para um sistema ou outro, mas acho que em pelo menos 90% não foi necessário realizar nenhum tipo de ajuste ou adaptação.

Com relação à ferramenta strip, utilizada para reduzir o tamanho dos executáveis gerados pelo Lazarus, citada pelo amigo Fernando (erlantz), já existe uma dica aqui mesmo no VOL ensinando a utilizá-la:

http://www.vivaolinux.com.br/dica/Lazarus-Reduzindo-o-tamanho-dos-executaveis/

E com relação à configuração na IDE que reduz o tamanho dos executáveis, citada pelo autor do artigo na página 5, estarei publicando uma dica em breve e assim que publicá-la posso compartilhar aqui o link. Quem já precisar dela pode encontrar mais informações a respeito nesta página (em inglês):

http://wiki.lazarus.freepascal.org/Lazarus_Faq

Um abraço a todos e até a próxima.
#7 Comentário enviado por janunesdemor em 19/07/2010 - 11:29h
Excelente o seu artigo, eu utilizo o Lazarus para fazer os meus testes, e sei dos problemas que você citou, mas o diferencial do Lazarus está em ser código aberto e grátis. Eu sugiro aos demais colegas repassarem estas informações preciosas que você repassou, para os desenvolvedores do projeto para melhorar e adpatar o projeto Lazarus.

Pois, como você disse é uma ferramenta promissora.

Acho que ele não precisa ser igual ao Delphi, mas em geral precisa ser melhorado, acho ainda, que a saída é melhorar os conversores de código delphi, pois o Lazarus deve ter vida própria e não ser uma cópia do Delphi, na verdade, na minha visão é eles que tem que andar atrás do Lazarus e não o inverso.


Eu, utilizei o Windows por decadas "Windows 3.x, Windows 95, Windows 98, Windows ME, Windows XP, etc." e desde 1999 venho utilizando o Linux, gosto mais do Linux do que do Windows, embora quem usa o Linux sabe tem vezes que você é obrigado a utilizar o Windows para utilizar Alguns prerifericos... como exemplo placas wireless, para internet via Radio, uma marca que o fabricante disponibiliza drivers é a Ralink, na verdade o Site é o ralinktech.com.

Placas de Som profissional não encontrei nenhuma que utilize Linux. Precisamos fazer o que for possivel para preencher esta lacuna.

Amigo... seu artigo é simplesmente sensacional, parabéns.
#9 Comentário enviado por vinyanalista em 25/08/2010 - 10:08h
Algo interessante que achei na Internet e que tem tudo a ver com esse artigo:

http://wiki.freepascal.org/Lazarus_Components

Essa página é uma comparação entre os componentes disponíveis no Turbo Delphi (da Borland) e os disponíveis no Lazarus.
#10 Comentário enviado por jepafi em 15/06/2011 - 09:12h
Foi lançado o livro Desenvolvendo Aplicativos com Lazarus em Português

O livro tem 346 páginas divididas em 14 capítulos e 5 Apêndices.

Veja imagens dos projetos desenvolvidos no Livro Desenvolvendo Aplicativos com Lazarus aqui:

http://www.jpsoft.com.br/index.php/ide-lazarus/8-noticias/59-imagens-dos-projetos-do-livro-desenvolv...

Comprar no Brasil:

http://www.agbook.com.br/book/46758--Desenvolvendo_Aplicativos_com_Lazarus

http://www.clubedeautores.com.br/book/33568--Desenvolvendo_Aplicativos_com_Lazarus

Compras Internacionais (International Shopping):

http://www.lulu.com/product/paperback/desenvolvendo-aplicativos-com-lazarus/16028947

Leia o sumário, a introdução e o primeiro capítulo aqui:

http://www.jpsoft.com.br/Desenvolvendo_Aplicativos_com_Lazarus_Amostra.pdf
#11 Comentário enviado por mmarcaro em 25/01/2012 - 09:22h
Ótimo artigo !...
Obrigado !
#12 Comentário enviado por losmorgados em 17/02/2012 - 18:54h
Muito bom esse artigo!!! Parabéns esclareceu minhas dúvidas.

A única coisa que gostaria de saber e qual banco de dados que o lazarus vem como padrão é o InterBase tbm???
Abraço.
#13 Comentário enviado por evaldoavelar em 17/02/2012 - 18:58h
Na verdade o Lazarus não vem com banco de dados. Ele traz componentes para conectar a alguns bancos, entre eles o interbase.
#14 Comentário enviado por gibroh@hotmail.c em 18/08/2014 - 17:43h
eu uso Lazarus desde 2004 (versão 0.9.24) e ele nunca me deixou na mão.
O fato de você saber usar o Tmenu de uma forma no Delphi e não saber como usar no Lazarus não significa que ele é ruim.
Em todoas as aplicações ele me serviu com ZEOS, etc. Podem criadas aplicações comerciais nele.Basta mais empenho dos profissionais.

Contribuir com comentário

Entre na sua conta para comentar.