desenvolvimento multiplataforma

Download Desenvolvimento multiplataforma

If you can't read please download the document

Upload: stonefull

Post on 16-Apr-2017

2.087 views

Category:

Documents


4 download

TRANSCRIPT

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