ESLPE 2008 - Desenvolvendo aplicações no Linux
-
Upload
jorge-pereira -
Category
Technology
-
view
1.693 -
download
3
description
Transcript of ESLPE 2008 - Desenvolvendo aplicações no Linux
![Page 1: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/1.jpg)
1Jorge Pereira
<[email protected]> 23 de Abril de 2008
“Guiando os primeiros para iniciar o desenvolvimento no ambiente Linux”
![Page 2: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/2.jpg)
2
# Licença
![Page 3: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/3.jpg)
3
# who i'am?
Meu nome é Jorge Pereira, tive meu primeiro contato com o Linux por volta de 1996, trabalhando durante muitos anos com soluções e consultorias voltadas para sistemas OpenSource, atuando durante esses anos como desenvolvedor, sysadmin, instrutor e palestrante. Atualmente trabalhando como desenvolvedor C/C++ & Embedded Systems.
![Page 4: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/4.jpg)
4
# Objetivos
Apresentar ao profissional ou estudante acostumado a programar em ambiente Windows ou qualquer outro ambiente diferente do Linux, as ferramentas e possibilidades disponíveis para programação em ambiente Linux. Indicar caminhos para o desenvolvimento de aplicações multiplataforma, como preparação para uma futura migração ao Linux ou como forma de viabilizar uma rede heterogênea
![Page 5: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/5.jpg)
5
# Agenda
Primeiros Passos A Cultura Windows x Linux Linguagens Suportadas Ferramentas Aplicações Gráficas Perguntas Se vira nos 30 Contato Referências
![Page 6: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/6.jpg)
6
# Primeiros Passos
![Page 7: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/7.jpg)
7
# Primeiros Passos
• Possuir o Linux instalado na máquina.• Conhecer o básico sobre o sistema.• Entender o básico sobre seu funcionamento.• Acesso a fontes de pesquisa.• Conhecimentos sobre programação.• Indicado conhecer o básico sobre licenças.• Por fim: Força de vontade.
![Page 8: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/8.jpg)
8
# Primeiros Passos / Vantagens
• Custo Zero.• Open Source. • Bugs podem ser consertados por qualquer pessoa.• Maior flexibilidade.• Vasta base de software.• Utilização do Linux em aplicações embarcadas.• Grandes empresas investindo na plataforma:
• Motorola, Nokia, IBM, SUN, Oracle, Novell ...
![Page 9: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/9.jpg)
9
# A Cultura Windows x Linux
![Page 10: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/10.jpg)
10
# A Cultura Windows x Linux• Como o SO fornecia apenas componentes de baixo nível (e nenhuma ferramenta de apoio ao desenvolvimento), as IDEs tornaram-se “inchados” e incompatíveis entre si.• As dificuldades do padrão *OCX fizeram com que cada IDE fornecesse sua própria biblioteca de componentes, de modo que o programador não aproveita quase nada do seu knowhow ao mudar de IDE.
* (OLE Control Extension)
![Page 11: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/11.jpg)
11
# A Cultura Windows x Linux
• Pior, frequentemente uma nova versão do mesmo IDE é incompatível com aplicações desenvolvidas com versões anteriores do mesmo IDE (ex: VB 4/5/6, Delphi 6/7)• O foco nos desenhadores de formulários leva a aplicações de difícil manutenção sem a ajuda dos famosos “componentes”.
![Page 12: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/12.jpg)
12
# A Cultura Windows x Linux
E a cultura Linux?
![Page 13: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/13.jpg)
13
# Linguagens Suportadas
![Page 14: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/14.jpg)
14
# Linguagens Suportadas• C/C++• Python• Perl• PHP• Ruby• Java• Cobol• Fortran• Pascal• Lua• ...
![Page 15: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/15.jpg)
15
# Linguagens Suportadas• C no Linux a linguagem de programação nativa é “C”, sua API padrão chama-se “Glibc – GNU Library C”, possuindo os principais recursos nativos abaixo:• Entrada/Saída;• Arquivos;• Rede;• Chamadas de Sistema;• Matemática;• Multi-Tarefas• ...
![Page 16: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/16.jpg)
16
# Ferramentas
![Page 17: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/17.jpg)
17
# Ferramentas O Linux inclui o conjunto de ferramentas de desenvolvimento.
• Editores vim e Emacs• Compilador cross-compile GCC• Linkeditor dinâmico• Depurador GDB (cli), xgdb, DDD e GVD (visuais)• Diversas bibliotecas• Makefiles (Ferramentas de Build)• CVS• Man (ajuda online)• Entre outras.
![Page 18: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/18.jpg)
18
# Ferramentas / Vim
![Page 19: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/19.jpg)
19
# Ferramentas / Emacs
![Page 20: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/20.jpg)
20
# Ferramentas / GCC (GNU Compiler Collection)
![Page 21: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/21.jpg)
21
# Ferramentas / Linkeditor
![Page 23: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/23.jpg)
23
# Ferramentas / Builder
![Page 24: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/24.jpg)
24
# Ferramentas / CVS
![Page 25: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/25.jpg)
25
# Aplicações Gráficas
![Page 26: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/26.jpg)
26
# Aplicações Gráficas• O Linux dispõe de vários componentes para desenvolvimento de aplicativos gráficos, também conhecidos como “toolkits”.• Os mais famosos e o GTK, utilizado no desenvolvimento do Gnome e o QT utilizado no KDE.• Ambos os toolkits também são disponíveis para outros ambientes, inclusive o Windows e sistemas embarcados.• Grande parte dos aplicativos são desenvolvidos na linguagem C e C++, possuindo bindings para outras linguagens.
![Page 27: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/27.jpg)
27
# Aplicações Gráficas / GTK• O GTK+ nasceu como um toolkit alternativo para o X Window System no desenvolvimento do GIMP, pois nenhum toolkit livre existente na época fornecia a qualidade visual e riqueza de componentes exigidos pela aplicação.• A popularidade do GIMP e as características do GTK+ o tornaram apropriado para muitas outras aplicações, e hoje ele talvez seja o toolkit mais popular para o desenvolvimento de aplicações para Linux e Unix
![Page 28: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/28.jpg)
28
# Aplicações Gráficas / GTK• O GTK+ foi desenvolvido em ANSI C, embora baseado em um projeto orientado a objetos • Assim se torna fácil criar bindings do toolkit para outras linguagens, como Perl, Python, PHP, Pascal, Java, ADA, etc.• Todos esses bindings são muito semelhantes, apenas adaptados às peculiaridades de cada linguagem, de modo que o conhecimento sobre o GTK+ é preservado em uma mudança de linguagem.
![Page 29: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/29.jpg)
29
# Aplicações Gráficas / GTK
• Gimp• Mozilla• OpenOffice• Evolution• Ethereal• Glade• AbiWord
• Gnumeric• Dia• MrProject• xmms• Anjuta• File Roller• O próprio GNOME
• O GTK e um projeto bastante estável e rico de componentes gráficos para desenvolvimento de aplicações das mais diversas, abaixo seguem alguns exemplos de aplicativos que utilizam o GTK como sendo o toolkit visual.
![Page 30: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/30.jpg)
30
# Aplicações Gráficas / GTK• Abaixo segue uma imagem da arquitetura de um programa utilizando GTK.
![Page 31: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/31.jpg)
31“Exemplo de código GTK feito em C”
# Aplicações Gráficas / GTK
![Page 32: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/32.jpg)
32
# Aplicações Gráficas / Complicado?
• A o código aparentemente complicado, cheio de ponteiros, casts, e funções com nomes longos, não é conseqüência da natureza do GTK+ e sim da linguagem C, que manipula ponteiros diretamente e não implementa polimorfismo.• Linguagens com características semelhantes, como PHP, geram programas semelhantes “de uma forma menos traumatizante”. =)
![Page 33: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/33.jpg)
33
# Aplicações Gráficas / Complicado?
Em seguida, um exemplo do mesmo código sendo feito em PHP com suporte a GTK, chamado de “php-
gtk”.
![Page 34: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/34.jpg)
34“Exemplo de código GTK feito em PHP-GTK”
# Aplicações Gráficas / GTK
![Page 35: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/35.jpg)
35
# Aplicações Gráficas / GTK
GTK com as facilidades do desenvolvimento Visual.
![Page 36: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/36.jpg)
36
# Aplicações Gráficas / GTK / Glade• Proposta de desenvolvimento visual diferente dos IDEs do mundo Windows.• O GTK+ é independente de linguagem e de SO.• O Glade também tenta ser, apesar de oferecer recursos (opcionais) específicos para o Gnome.• Pode gerar o código das janelas em C e outras linguagens.• Mas o preferido é salvar apenas a descrição das janelas em formato XML, processado em tempo de execução pela biblioteca libGlade.• Permite modificar o layout das janelas sem recompilar.
![Page 37: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/37.jpg)
37
# Aplicações Gráficas / GTK / Glade
![Page 38: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/38.jpg)
38
# Aplicações Gráficas / GTK / Glade• Ele não é um IDE estilo Delphi ou VB, é apenas uma IDE utilizada para desenhar janelas.• É capaz de gerar código em C, C++, Ada, Eiffel e Perl correspondente à interface desenhada• Entretanto, via LibGlade, pode ser utilizado com qualquer outra linguagem.• IDEs como o Anjuta utilizam o Glade para fornecer Um ambiente completo de desenvolvimento
![Page 39: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/39.jpg)
39
# Aplicações Gráficas / GTK / Ambiente
• Glade (desenhar formulários)• Emacs, SciTE, Moleskine, Ajuta (editor de programas)• GCC, Java, Perl, Python, PHP (compilador ou interpretador)• DDD, GVD, GDB (depurador)• CVS (trabalho em equipe)• MySQL, PostgreSQL, Firebird (Banco de Dados)
![Page 40: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/40.jpg)
40
# Aplicações Gráficas / GTK / Ambiente
Anjuta é um Ambiente de Desenvolvimento Integrado para C e C++ em GNU/Linux. Ele foi escrito para GTK+/GNOME e suporta muitas capacidades avançadas como gerenciamento de projetos e um poderoso editor de código fonte.
![Page 41: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/41.jpg)
41
# Aplicações Gráficas / GTK / Anjuta
![Page 42: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/42.jpg)
42
# Aplicações Gráficas / DevHelp
E possível obter ajuda sobre diversas API, inclusive o GTK através do próprio Linux, basta instalar e utilizar a ferramenta Devhelp.Pois ele possui recurso de busca e fácil acesso a descrição das API.
![Page 43: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/43.jpg)
43
# Aplicações Gráficas / DevHelp
![Page 44: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/44.jpg)
44
# Aplicações Gráficas / DevHelp
![Page 45: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/45.jpg)
45
# Perguntas?
![Page 46: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/46.jpg)
46
# Referências
• Sobre o Gimpwww.gimp.orgwww.wingimp.org
• Sobre o GTKwww.gtk.org
• Sobre o Gnomewww.gnome.org
• Sobre o Gladewww.glade.orgwingtk.sourceforge.net
• GNU Cgcc.gnu.orgmingw.sourceforge.net
• Free Pascalwww.freepascal.org
![Page 47: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/47.jpg)
47
# Referências
• PHP www.php.net pear.php.net
• Java-Gnome (J/GTK+) java-gnome.sourceforge
• Fernando Lozanowww.lozano.eti.br
• CinLugwww.cin.ufpe.br/~cinlug/
![Page 48: ESLPE 2008 - Desenvolvendo aplicações no Linux](https://reader033.fdocumentos.com/reader033/viewer/2022042518/5594cc6d1a28ab65028b4593/html5/thumbnails/48.jpg)
48
# Se vira nos 30
Demonstração de um projeto feito no Glade!será que da tempo?!?!? :P
Projeto: “$PWD/GTK-EditorTexto-Glade/editor.glade”