III Frum Amaznico de Software Livre
Desenvolvimento multiplataforma usando Software Livre
Prof.Carlos [email protected]
Roteiro
Introduo
Free Pascal e Lazarus um pouco de histria
Licenas de uso
Plataformas suportadas
Downloads e instalao
Desenvolvimento multiplataforma
Suporte a Unicode e a bancos de dados
Suporte a Web
Consideraes finais
Introduo
Imagine este cenrio em uma organizao:Sistema de automao/financeiro rodando em Windows
Sistema de contabilidade executando em Linux
A diretoria investiu em Macs para os gerentes
Voc foi contratado para desenvolver um novo sistema que integra tudo
O oramento cobre apenas o desenvolvimento e implantao do novo software
Solues???
Introduo
Lazarus um software livre e de cdigo aberto para RAD (Desenvolvimento Rpido de Aplicaes)
Baseado no compilador para 32/64 bits Free Pascal tambm livre e de cdigo aberto
Com eles possvel criar aplicaes que rodam em Win32/64, Linux, FreeBSD, MacOS X e WinCE
O lema de Lazarus : Escreva uma vez e compile em qualquer lugar
Um pouco de histria
A origem do Free Pascal de meados dos anos 90
Era conhecido como FPK-Pascal, devido o nome do seu criador Florian Paul Kaempfl
A partir de 1997 comeou a ser chamado Free Pascal ou FPC
No comeo era compilado com o Turbo Pascal
Hoje compila a si mesmo e produz cdigo de 32 e 64 bits
Um pouco de histria
Tenta manter compatibilidade com o Turbo Pascal 7.0 e o Delphi 7 isso obtido com o uso de diretivas de compilao
A verso estvel atual do FPC 2.4.4
O Lazarus iniciou em 1999, com os participantes do projeto Megido tambm clone do Delphi e logo dissolvido
Felipe M. de Carvalho o brasileiro mais atuante, mantm suporte para WinCE e trabalha em um widgetset para Android
Um pouco de histria
O nome Lazarus originou-se do personagem bblico que foi resuscitado por Jesus
A verso considerada estvel 0.9.30
No Lazarus e FPC, as verses que terminam em nmeros pares so estveis e as mpares so utilizadas em desnvolvimento
possvel usar a verso de desenvolvimento, baixada do SVN
Licenas de uso
FPC licenciado sob GPL
O IDE licenciado sob GPL, outra qualquer outra posterior - http://www.gnu.org/copyleft/gpl.html
Isso impede que o cdigo fonte de ambos ou parte dele seja usado para criar um IDE ou compilador comercial
Mas pode ser usado para criar outro projeto open source
Licenas de uso
A LCL (Biblioteca de componentes) licenciada sob LGPL Modificada - http://pt.wikipedia.org/wiki/LGPL
Trata do uso da LCL juntamente com outros mdulos sob outras licenas, garantindo que voc no seja obrigado distribuir seus fontes
O Synedit (componente base do editor de cdigo) licenciado sob MPL (Mozila Public License) - http://www.mozilla.org/MPL/
Ler COPYING.txt no raiz do Lazarus
Plataformas suportadas
Windows 32/64 bits funciona desde Windows 95 at Windows 7
Windows CE ou Windows Mobile para criar aplicaes WinCE deve rodar em Windows. Funciona em PDAs e smartphones
J existe uma insfraestrutura bsica de um widgetset para Android
Linux, FreeBSD e demais sistemas Unix
MacOS X
Compilao cruzada
Criar executveis de um SO trabalhando em outro
Por exemplo, sob Linux criar executveis Win32
Para isso o Lazarus/FPC precisa dos cross-binutils, ferramentas binrias, tais como um linker e um assembler para cada plataforma
Acesse o passo a passo aqui
Linux para Win32 um pouco mais simples que Windows para Linux
Downloads e instalao
A verso estvel do Lazarus pode ser baixada em http://sourceforge.net/projects/lazarus/files/
Os desenvolvedores oferecem snapshots dirios da verso em desenvolvimento, encontrados em http://www.hu.freepascal.org/lazarus/
O subversion pode ser obtido em http://svn.freepascal.org/svn/lazarus/trunk
O IDE tem opo de compilar a si mesmo ou pode-se usar o make do FPC
O IDE
Estilo RAD Studio
As janelas ficam soltas como no D7, mas podemos instalar o componente AnchorDockingDsgn
IDE em portugus (ou outros idiomas) pode ser configurado
Arquivos de backup da aplicao em um diretrio separado
No suporta MDI (Mltiplos Documentos)
Debugar os fontes dificil usa o GNU GDB
Covertendo uma aplicao DELPHI
Antes de mostrar a converso vamos criar um Al Mundo
Para converter aplicaes Delphi usar as opes de menu Ferramentas:Converter unit Delphi para Lazarus
Converter arquivo binrio DFM para LFM texto...
Outras opes podem ser usadas para converter projetos, pacotes .lpk, etc.
Programao multiplataforma
SO e arquiteturas diferem em apresentao, acesso a diretrios, execuo de programas externos, etc
Lazarus/FPC oferece constantes para sanar algumas diferenas: PathSep, PathSeparator, PathDelim, DirectorySeparator, LineEnding
Linux case sensitive, Windows no
Units multiplataforma: por exemplo, no Delphi a unit windows acessa a API do Windows, no Lazarus ela est disponvel em LCLIntf
Programao multiplataforma
Uso da diretiva {$IFDEF} para executar cdigo condicional
{$IFDEF LINUX} // cdigo para executar no Linux{$ELSE} // cdigo para executar em outros sistemas{$ENDIF}
Programao multiplataforma
Outra preocupao com o layout da interface
Os controles precisam se adaptar a tamanhos de fonte, temas e outras caractersticas, determinadas por plataformas diferentes
Para isso os controles oferecem propriedades que podem ser adequadamente definidas: AutoSize, Anchors, ChildSizing e outras
Na propriedade ChildSizing podemos definir um Layout
Suporte a Unicode
Unicode um formato de pgina de caracteres que permite representar qualquer caractere em qualquer idioma e plataforma
No Brasil a pgina padro no Win CP1252
No Lazarus obrigatrio o uso de Unicode
Se migrar uma aplicao do Delphi preciso converter os arquivos para Unicode
Os bancos de dados usados pela aplicao tambm devem ser configurados para Unicode
Bancos de dados
SQLdb o pacote que suporta de forma nativa: PostgreSQL, Oracle, Firebird, MySQL, SQLite e ODBC
Pode usar DBF leitura/escrita, Paradox apenas leitura
ZeosLib um pacote de terceiros mais robusto, acessa, alm dos mesmos do SQLdb, o Sybase
Em WinCE podemos usar SQLite e DBF
Suporte a desenvolvimento Web
O IDE possibilita a criao de CGI, fastCGI ou mdulos Apache usando os componentes fpWeb
Iniciativa de criar um framework: lazwebsolutions
Exemplo de pgina criada usando Lazarus: pesquisa sobre Lazarus
Uso de webservices: tanto consumo quanto criao
Suporte a TCP, HTTP, SMTP e outros Ps usando o pacote no nativo Synapse
Consideraes finais
Apenas uma apresentao de um produto
Lazarus uma alternativa open source e multiplataforma ao Delphi
Muitos desenvolvedores esto presos a IDEs antigos
O nmero de usurios vem crescendo vertiginosamente
Mais de 1 milho de downloads no sourceforge, ultimo release foi baixado 35000 em um ms
Consideraes finais
FPC 2.7.1 poder compilar aplicaes para bytecode Java, podendo rodar em qualquer plataforma que tenha uma JVM
Delphi XE2 ir compilar para iPad (ARM) usando FPC
Lazarus tem bugs sim. Mas qual IDE no tem?
De qualquer forma voc pode contribuir reportando bugs ou corrigindo-os
Onde buscar mais informao
http://www.lazarus.freepascal.org/ - wiki, forum, downloads
http://www.freepascal.org/ - idem
http://groups.google.com/group/lazarus-br - grupo de usurios no Brasil
http://www.lazarussupport.com/lazarus/Documentation - documentao, suporte pago
http://professorcarlos.blogspot.com - artigos, how-to
Onde buscar mais informao
http://www.blaisepascal.eu/ - livro em ingls, revista Blaise Pascal Magazine
http://goo.gl/Zgu5K - livro em portugus
http://silvioprog.blogspot.com/ - artigos, how-to
http://lazarus-cgi.co.cc/cgi-bin/engine.cgi/show_index - CGI em Lazarus/FPC, tutoriais
Muokkaa otsikon tekstimuotoa napsauttamalla
Muokkaa jsennyksen tekstimuotoa napsauttamallaToinen jsennystasoKolmas jsennystasoNeljs jsennystasoViides jsennystasoKuudes jsennystasoSeitsems jsennystasoKahdeksas jsennystasoYhdekss jsennystaso
Top Related