1º Seminário de Software Livre Tchêlinux1º Seminário de Software Livre TchêlinuxGravataí ULBRAGravataí ULBRA
DesenvolvendoDesenvolvendoAplicações Livres em JavaAplicações Livres em Java
João Avelino Bellomo FilhoJoão Avelino Bellomo FilhoRanieri de Souza FernandesRanieri de Souza Fernandes
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Os PalestrantesOs Palestrantes
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
AgendaAgenda✔ Java, como começou...Java, como começou...✔ Plataforma JavaPlataforma Java✔ Java e Software LivreJava e Software Livre✔ Ferramentas: Eclipse, Netbeans, etc...Ferramentas: Eclipse, Netbeans, etc...✔ Servidor de AplicaçãoServidor de Aplicação✔ Frameworks: Google Web Toolkit, ANDROID, Frameworks: Google Web Toolkit, ANDROID,
OpenLazlo, etc...OpenLazlo, etc...
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Java, como começou?Java, como começou?✔ Linguagem OakLinguagem Oak✔ Green ProjectGreen Project✔ ObjetivosObjetivos
✔ Orientada a objetosOrientada a objetos✔ Permitir a execução em diferentes S.O.sPermitir a execução em diferentes S.O.s✔ Conter suporte nativo para redesConter suporte nativo para redes✔ Execução segura a partir de fontes remotasExecução segura a partir de fontes remotas✔ Fácil de usar aproveitando características de Fácil de usar aproveitando características de
outras Linguagensoutras Linguagens
→ → *7 (StarSeven)*7 (StarSeven)
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Java, como começou?Java, como começou?
✔ Linguagem OakLinguagem Oak✔ Green ProjectGreen Project✔ ObjetivosObjetivos✔ A integração com o Netscape BrowserA integração com o Netscape Browser✔ Applets, Java 2, evolução do desenvolvimentoApplets, Java 2, evolução do desenvolvimento
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Quem ”manda” no Java?Quem ”manda” no Java?
✔ JCP – Java Community ProcessJCP – Java Community Process
✔ Qualquer um pode se inscreverQualquer um pode se inscrever
✔ O processo é aberto desde o inícioO processo é aberto desde o início
✔ O papel da SunO papel da Sun
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Membros JCPMembros JCP✔ Apache Software FoundationApache Software Foundation✔ BEA SystemsBEA Systems✔ BorlandBorland✔ GoogleGoogle✔ Fujitsu LimitedFujitsu Limited✔ HewlettPackardHewlettPackard✔ IBMIBM✔ IntelIntel✔ OracleOracle✔ Red Hat Red Hat ✔ SAPSAP✔ SAPSAP✔ Sun MicrosystemsSun Microsystems✔ ......
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Brasil no JCPBrasil no JCP
✔ SouJavaSouJava✔ Bruno SouzaBruno Souza✔ Marlon LuzMarlon Luz✔ Osvaldo Pinali DoederleinOsvaldo Pinali Doederlein✔ Waldir Pires Jr.Waldir Pires Jr.
✔ ......
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
O que é realmente o Java?O que é realmente o Java?
✔ A visão comum linguagemA visão comum linguagem
✔ O que realmente é?O que realmente é?
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Plataforma JavaPlataforma Java
✔ Três grande subdivisões:Três grande subdivisões:
• JSE (Java SE): Java Standard EditionJSE (Java SE): Java Standard Edition
• JEE (Java EE): Java Enterprise EditionJEE (Java EE): Java Enterprise Edition
• JME (Java ME): Java Micro EditionJME (Java ME): Java Micro Edition
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
JVM – O segredo da portabilidadeJVM – O segredo da portabilidade
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
JVM – O segredo da portabilidadeJVM – O segredo da portabilidade✔ Java Virtual Machine é, a grosso modo, um Java Virtual Machine é, a grosso modo, um
interpretador de bytecodesinterpretador de bytecodes
✔ Interpreta os bytecodes e transformaos em uma Interpreta os bytecodes e transformaos em uma série de instruções nativas, utilizando recursos série de instruções nativas, utilizando recursos do SO.do SO.
✔ É a base de toda plataforma JavaÉ a base de toda plataforma Java✔ Contém a API, o gerenciamento de memória, e Contém a API, o gerenciamento de memória, e
todos os recursos base utilizados pelas outras todos os recursos base utilizados pelas outras ediçõesedições
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
JVM – O segredo do desempenhoJVM – O segredo do desempenho
J I T J I T
Compilador justintimeCompilador justintime
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
JVM – O segredo do desempenhoJVM – O segredo do desempenho✔ Paul Buchheit foi o Paul Buchheit foi o
criador e líder de criador e líder de desenvolvimento do desenvolvimento do Gmail.Gmail.
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
JVM – O segredo do desempenhoJVM – O segredo do desempenho
Trecho da entrevista com Orkut Buyukkokten, criador do OrkutTrecho da entrevista com Orkut Buyukkokten, criador do Orkut
“ “ Ontem, aqui na Abril, nós conversamos com o Orkut umas Ontem, aqui na Abril, nós conversamos com o Orkut umas duas horas. Ele contou que criou o site de relacionamentos duas horas. Ele contou que criou o site de relacionamentos em .Net – gosta particularmente de C# pela rapidez de em .Net – gosta particularmente de C# pela rapidez de programação – mas teve de passar para programação – mas teve de passar para Java por ter a Java por ter a escalabilidadeescalabilidade necessárianecessária. A passagem de uma tecnologia . A passagem de uma tecnologia para a outra durou um ano – daí as 80 horas por semana” para a outra durou um ano – daí as 80 horas por semana” (InfoOnline)(InfoOnline)
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
A API JavaA API Java✔ Conjunto de funcionalidades Conjunto de funcionalidades nativasnativas da linguagem da linguagem✔ Carga dinâmica de bibliotecasCarga dinâmica de bibliotecas✔ Abstração do sistema operacionalAbstração do sistema operacional✔ O que não estiver implementado, é facilmente O que não estiver implementado, é facilmente
integradointegrado✔ Não é Não é engessadoengessado. O programador pode fazer . O programador pode fazer
suas próprias implementaçõessuas próprias implementações
✔ Garbage CollectorGarbage Collector
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Garbage CollectorGarbage Collector
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Detalhes sobre a plataformaDetalhes sobre a plataforma✔ JSE (Java SE)JSE (Java SE): contém a JVM, API e recursos: contém a JVM, API e recursos
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Detalhes sobre a plataformaDetalhes sobre a plataforma✔ JME (Java ME)JME (Java ME): é, basicamente, um subset da : é, basicamente, um subset da
JSE, utilizada para ambientes JSE, utilizada para ambientes embeddedembedded✔ É a tecnologia mais utilizada no mundo para É a tecnologia mais utilizada no mundo para
dispositivos dispositivos embeddedembedded✔ Pode rodar numa infinidade de dispositivos: Pode rodar numa infinidade de dispositivos:
telefones celulares, PDA's, TV's, impressoras, telefones celulares, PDA's, TV's, impressoras, etc...etc...
✔ Possui um robusto sistema de segurança, Possui um robusto sistema de segurança, protocolos de comunicação integrados e todas protocolos de comunicação integrados e todas as características de portabilidade do Javaas características de portabilidade do Java
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Detalhes sobre a plataformaDetalhes sobre a plataforma✔ JEE (Java EE)JEE (Java EE): é a plataforma de : é a plataforma de
desenvolvimento de aplicações desenvolvimento de aplicações enterpriseenterprise✔ É construída sobre a J2SEÉ construída sobre a J2SE✔ Provê recursos para desenvolvimento de Provê recursos para desenvolvimento de
aplicações de grande porte, multicamadas, aplicações de grande porte, multicamadas, portáveis e escaláveisportáveis e escaláveis
✔ Possibilita o desenvolvimento da aplicação, Possibilita o desenvolvimento da aplicação, livrando o programador de criar do zero livrando o programador de criar do zero estruturas altamente complexas e que não estão estruturas altamente complexas e que não estão diretamente relacionadas à lógica da aplicaçãodiretamente relacionadas à lógica da aplicação
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Detalhes sobre a plataformaDetalhes sobre a plataforma✔ J2EE (Java EE)J2EE (Java EE): :
• JDBCJDBC (Java Database Connectivity), utilizado no (Java Database Connectivity), utilizado no acesso a bancos de dados;acesso a bancos de dados;
• ServletsServlets, são utilizados para o desenvolvimento de , são utilizados para o desenvolvimento de aplicações Web com conteúdo dinâmico aplicações Web com conteúdo dinâmico
• JSPJSP (Java Server Pages), um especialização do (Java Server Pages), um especialização do servlet que permite que conteúdo dinâmico seja servlet que permite que conteúdo dinâmico seja facilmente desenvolvido.facilmente desenvolvido.
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Detalhes sobre a plataformaDetalhes sobre a plataforma✔ JEE (Java EE)JEE (Java EE): :
• JTAJTA (Java Transaction API), é uma API que (Java Transaction API), é uma API que padroniza o tratamento de transações dentro de uma padroniza o tratamento de transações dentro de uma aplicação Java.aplicação Java.
• EJBsEJBs, utilizados no desenvolvimento de , utilizados no desenvolvimento de componentes de software.componentes de software.
• JCAJCA (Java Connector Architecture), é uma API que (Java Connector Architecture), é uma API que padroniza a ligação a aplicações legadas.padroniza a ligação a aplicações legadas.
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Detalhes sobre a plataformaDetalhes sobre a plataforma✔ Java CardJava Card: : ✔ Interoperabilidade: “Escreva uma vez e rode em qualquer Java Card;Interoperabilidade: “Escreva uma vez e rode em qualquer Java Card;
✔ Seguro: Além do ambiente de execução seguro herdado de JSE, Java Card Seguro: Além do ambiente de execução seguro herdado de JSE, Java Card implementa diversas funções criptográficas, aproveitando as funções dos cartões implementa diversas funções criptográficas, aproveitando as funções dos cartões inteligentes como tokens criptográficos;inteligentes como tokens criptográficos;
✔ É Java! Aproveite seus conhecimentos JSE para desenvolver para cartões É Java! Aproveite seus conhecimentos JSE para desenvolver para cartões inteligentes!inteligentes!
✔ Capacidade de múltiplos aplicativos no mesmo cartão inteligenteCapacidade de múltiplos aplicativos no mesmo cartão inteligente
✔ Dinâmico: É possível instalar um novo applet que já foi distribuído. Se precisar Dinâmico: É possível instalar um novo applet que já foi distribuído. Se precisar atualizar o serviço no cartão de seus clientes, na próxima vez que o cartão for atualizar o serviço no cartão de seus clientes, na próxima vez que o cartão for inserido no terminal ele será atualizado.inserido no terminal ele será atualizado.
✔ Compatível com padrões da indústria: Suporta a norma ISO7816 e padrões de Compatível com padrões da indústria: Suporta a norma ISO7816 e padrões de telecomunicações. Boa parte dos SIM Cards no Brasil são JavaCards.telecomunicações. Boa parte dos SIM Cards no Brasil são JavaCards.
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Hmmm...Hmmm...
E onde está o Software Livre???E onde está o Software Livre???
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Considerações FilosóficasConsiderações Filosóficas✔ O que é Software Livre???O que é Software Livre???
““Softwares que são fornecidos aos seus usuários Softwares que são fornecidos aos seus usuários com a liberdade de executar, estudar, modificar e com a liberdade de executar, estudar, modificar e repassar (com ou sem alterações) sem que, para repassar (com ou sem alterações) sem que, para isso, os usuários tenham que pedir permissão ao isso, os usuários tenham que pedir permissão ao
autor do programa.”autor do programa.”
✔ O que define um Software como Livre?O que define um Software como Livre?
O Licenciamento, a licença de uso adotada.O Licenciamento, a licença de uso adotada.
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Considerações FilosóficasConsiderações Filosóficas✔ Licenças de Software Livre:Licenças de Software Livre:
• GPL (General Public License)GPL (General Public License)
• BSD (Berkeley Software Distribution)BSD (Berkeley Software Distribution)
• MozillaMozilla
• ApacheApache
• etc ...etc ...
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Considerações FilosóficasConsiderações Filosóficas✔ Quais as motivações de desenvolver Software Quais as motivações de desenvolver Software
Livre?Livre?
• Ambiente de teste amploAmbiente de teste amplo
• Desenvolvimento ColaborativoDesenvolvimento Colaborativo
• O nome do Desenvolvedor fica conhecidoO nome do Desenvolvedor fica conhecido
• Devolve a sociedade, e recebe dela, conhecimentoDevolve a sociedade, e recebe dela, conhecimento
• etc...etc...
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Java não é e nunca será Java não é e nunca será Software Livre!Software Livre!
Java não é software, Java não é software, é uma especificação!é uma especificação!
As implementações de As implementações de Java que podem ser Java que podem ser
Software Livre!Software Livre!
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Por quê Java?Por quê Java?✔ O processo sempre foi abertoO processo sempre foi aberto✔ A Sun liberou o códigofonte de toda a plataformaA Sun liberou o códigofonte de toda a plataforma✔ A estratégia dos grandes (IDEs, ferramentas)A estratégia dos grandes (IDEs, ferramentas)✔ É um padrão de indústriaÉ um padrão de indústria✔ As características favorecem a usabilidadeAs características favorecem a usabilidade✔ A disputa entre A disputa entre .Net.Net XX JavaJava✔ Possui um grande portfólio de aplicações Open Possui um grande portfólio de aplicações Open
SourceSource✔ Foi Foi adotadaadotada pela indústria como alternativa às pela indústria como alternativa às
soluções fechadassoluções fechadas
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Java e o Software LivreJava e o Software Livre✔ Freshmeat ranking de linguagensFreshmeat ranking de linguagens
✔ 1 C (8851 projetos) 1 C (8851 projetos) ✔ 2 Java (5822 projetos) 2 Java (5822 projetos) ✔ 3 C++ (4867 projects) 3 C++ (4867 projects)
✔ Portal java.netPortal java.net✔ Projetos Projetos ✔ Grupos de usuáriosGrupos de usuários✔ Foruns Foruns
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Adoção do JavaAdoção do JavaTIOBE Programming Community Index for November 2007TIOBE Programming Community Index for November 2007
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Adoção do JavaAdoção do JavaTIOBE Programming Community Index for November 2007TIOBE Programming Community Index for November 2007
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Qual é a linguagemQual é a linguagemcom mais linhas de códigocom mais linhas de código
escrito no mundo?escrito no mundo?
COBOL!COBOL!
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
CobolCobol✔ O Cobol é a linguagem mais usada no mundo todo, podendo O Cobol é a linguagem mais usada no mundo todo, podendo
chegar a mais de 75% dos códigos existentes. 5 bilhões de lichegar a mais de 75% dos códigos existentes. 5 bilhões de linhas de código de Cobol são adicionadas todos os anos aos nhas de código de Cobol são adicionadas todos os anos aos DataCenters do mundo inteiro. (fonte: itweb)DataCenters do mundo inteiro. (fonte: itweb)
✔ Mais de 83% das transações mundiais são feitas em Cobol. Mais Mais de 83% das transações mundiais são feitas em Cobol. Mais de 60% das informações residentes na Web estão em de 60% das informações residentes na Web estão em Mainframe.Mainframe.
✔ Mais de 95% das aplicações financeiras e seguridade são Mais de 95% das aplicações financeiras e seguridade são processadas em Cobol.processadas em Cobol.
✔ Raras universidade possui em sua grade cursos relacionados à Raras universidade possui em sua grade cursos relacionados à plataforma Mainframe. plataforma Mainframe.
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Qual das linguagens de Qual das linguagens de programação modernas programação modernas
roda em Mainframes?roda em Mainframes?
JAVA!JAVA!
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Java no MainframeJava no Mainframe
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Quais ferramentas Quais ferramentas existem para seexistem para se
trabalhar com Java?trabalhar com Java?
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
O JDKO JDK✔ java (runtime)java (runtime)✔ javac (compilador)javac (compilador)✔ javadoc (documentador)javadoc (documentador)✔ jarjar✔ jarsignerjarsigner✔ javawsjavaws✔ jconsolejconsole✔ ......
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ JConsoleJConsole
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ EclipseEclipse
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ EclipseEclipse
• Open SourceOpen Source
• MultiplataformaMultiplataforma
• Grande gama de plugins e recursosGrande gama de plugins e recursos
• Desenvolvimento para todas as Desenvolvimento para todas as ediçõesedições
• Extremamente intuitivoExtremamente intuitivo
• Diversos “Sabores”Diversos “Sabores”
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ Eclipse FoundationEclipse Foundation
• Europa Fall – 3.3.2Europa Fall – 3.3.2
• http://www.eclipse.orghttp://www.eclipse.org
• Várias opções disponíveisVárias opções disponíveis
• IDE for Java Developers (79M)IDE for Java Developers (79M)
• IDE for Java EE Developers (125M)IDE for Java EE Developers (125M)
• IDE for C/C++ Developers (59M)IDE for C/C++ Developers (59M)
• For RCP/Plugin Developers (153M)For RCP/Plugin Developers (153M)
• Classic (137M)Classic (137M)
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ EasyEclipseEasyEclipse
• Mantida por um time de desenvolvedoresMantida por um time de desenvolvedores
• http://www.easyeclipse.org/http://www.easyeclipse.org/
• Opções oferecidas:Opções oferecidas:
• Exper Java (1.2.2 – 121M / 1.3.1.1 133M)Exper Java (1.2.2 – 121M / 1.3.1.1 133M)
• Desktop Java (1.2.2 – 127M/ 1.3.1.1 139M)Desktop Java (1.2.2 – 127M/ 1.3.1.1 139M)
• Server Java (1.2.2 – 223M)Server Java (1.2.2 – 223M)
• Mobile Java (1.2.2 – 131M/ 1.3.1.1 152M)Mobile Java (1.2.2 – 131M/ 1.3.1.1 152M)
• For Plugins and RCP Apps (1.2.2 – 209M/ 1.3.1.1 – 224M)For Plugins and RCP Apps (1.2.2 – 209M/ 1.3.1.1 – 224M)
• For C/C++; Ruby and Rails; PHP; Python; LAMP; etc ...For C/C++; Ruby and Rails; PHP; Python; LAMP; etc ...
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ NetBeansNetBeans
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ NetbeansNetbeans
• Open SourceOpen Source
• MultiplataformaMultiplataforma
• Grande gama de plugins e recursosGrande gama de plugins e recursos
• Desenvolvimento para todas as Desenvolvimento para todas as ediçõesedições
• Extremamente intuitivoExtremamente intuitivo
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ Netbeans 6.1Netbeans 6.1
• Editor ImprovementsEditor Improvements• Ruby/JRuby/Ruby on Rails SupportRuby/JRuby/Ruby on Rails Support• Easier Installation and UpgradingEasier Installation and Upgrading• Swing GUI DevelopmentSwing GUI Development• ProfilingProfiling• Web and Java EEWeb and Java EE• MobilityMobility• SOASOA• UMLUML• C/C++C/C++• NetBeans Platform API ImprovementsNetBeans Platform API Improvements
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ JEditJEdit
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ KdevelopKdevelop
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Quem ganha com a existência Quem ganha com a existência destas IDE's opensource?destas IDE's opensource?
✔ Quem quer aprenderQuem quer aprender
✔ Quem quer trabalharQuem quer trabalhar✔ Quem quer ensinarQuem quer ensinar
✔ Quem quer empreenderQuem quer empreender
✔ Quem não trabalha com Java!?Quem não trabalha com Java!?
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Outras FerramentasOutras Ferramentas
✔ Jude (UML)Jude (UML)✔ Argo UMLArgo UML✔ JFreeChartJFreeChart✔ JGoodiesJGoodies✔ JavaDB (Derby) JavaDB (Derby) ✔ HSQLDBHSQLDB✔ ......
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Servidores de Aplicação JEEServidores de Aplicação JEE
✔ Diversos fornecedores de soluçõesDiversos fornecedores de soluções
✔ Diversos servidores certificadosDiversos servidores certificados
✔ O poder da escolha, você decideO poder da escolha, você decide
✔ Facilita negociações de contratosFacilita negociações de contratos
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Servidores de Aplicação JEE OpenServidores de Aplicação JEE Open
✔ JBoss (RedHat)JBoss (RedHat)✔ Geronimo (Apache)Geronimo (Apache)✔ GlassFishGlassFish✔ TomCatTomCat✔ JOnASJOnAS✔ OpenEJBOpenEJB✔ ......
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Servidores de Aplicação JEE Servidores de Aplicação JEE
✔ Apache Software Apache Software FoundationFoundation
✔ ATGATG✔ BEA SystemsBEA Systems✔ Borland Corp.Borland Corp.✔ Caucho Technology, Inc.Caucho Technology, Inc.✔ DataDirect TechnologiesDataDirect Technologies✔ FujitsuFujitsu✔ HewlettPackardHewlettPackard✔ HitachiHitachi✔ IBMIBM
✔ IONA TechnologiesIONA Technologies✔ IronFlareIronFlare✔ JBoss GroupJBoss Group✔ Kingdee MiddlewareKingdee Middleware✔ MacromediaMacromedia✔ NECNEC✔ NokiaNokia✔ (Novell) SilverStream(Novell) SilverStream✔ ObjectWebObjectWeb✔ Oracle CorporationOracle Corporation✔ PramatiPramati✔ SAPSAP
✔ SAS Institute, Inc.SAS Institute, Inc.✔ SeeBeyondSeeBeyond✔ Sonic Software Sonic Software
CorporationCorporation✔ SpiritSoftSpiritSoft✔ Sun MicrosystemsSun Microsystems✔ Sybase, Inc.Sybase, Inc.✔ TIBCO Software Inc.TIBCO Software Inc.✔ Tmax SoftTmax Soft✔ TongTech Co., LtdTongTech Co., Ltd✔ Trifork TechnologiesTrifork Technologies✔ webMethodswebMethods
33 fornecedores 33 fornecedores
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
O que é um framework?O que é um framework?
“ “Um framework provê uma solução para uma Um framework provê uma solução para uma família de problemas semelhantes, sendo família de problemas semelhantes, sendo
flexível e extensível para permitir a flexível e extensível para permitir a construção de várias aplicações com menor construção de várias aplicações com menor
esforço, especificando apenas as esforço, especificando apenas as particularidades de cada aplicação.”particularidades de cada aplicação.”
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
FrameworksFrameworks✔ StrutsStruts✔ SpringSpring✔ HibernateHibernate✔ JavaServer Faces JavaServer Faces ✔ JDO JDO ✔ JUnitJUnit✔ Ant Ant ✔ Jasper Report / iReportJasper Report / iReport✔ JMeterJMeter
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Frameworks – R.I.A.Frameworks – R.I.A.
✔ GWT (Google Web Toolkit)GWT (Google Web Toolkit)✔ Openlaszlo Openlaszlo ✔ Flex (Adobe)Flex (Adobe)✔ ThinletThinlet✔ ThinWireThinWire✔ Java Web StartJava Web Start✔ DWRDWR✔ ......
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Framework – Google Web Toolkit Framework – Google Web Toolkit ✔ Simplifica o desenvolvimento de aplicações AJAXSimplifica o desenvolvimento de aplicações AJAX✔ ““Hosted Mode”, com depuração do código Hosted Mode”, com depuração do código ✔ Javascript compatível com principais navegadoresJavascript compatível com principais navegadores✔ Suporte a InternacionalizaçãoSuporte a Internacionalização✔ Integração com principais IDE’sIntegração com principais IDE’s✔ Licença Apache 2.0Licença Apache 2.0✔ Mais de 8.000 membros no GWT Developer ForumMais de 8.000 membros no GWT Developer Forum✔ Mais de 300 membros no GWT Contributors ForumMais de 300 membros no GWT Contributors Forum✔ Muitos patches externos incluídos no GWT 1.4Muitos patches externos incluídos no GWT 1.4✔ Mais de 1.000.000 de downloadsMais de 1.000.000 de downloads
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Framework – Google Web Toolkit Framework – Google Web Toolkit
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Framework – AndroidFramework – Android✔ Plataforma Open Source para Dispositivos MóveisPlataforma Open Source para Dispositivos Móveis✔ Open Handset AllianceOpen Handset Alliance✔ Google, Motorola, Intel, NVIDIA, etc ...Google, Motorola, Intel, NVIDIA, etc ...✔ Padronização para AplicaçõesPadronização para Aplicações✔ API de acesso a hardware em C/C++API de acesso a hardware em C/C++✔ Desenvolvimento em JAVADesenvolvimento em JAVA✔ DVM – Dalvik Virtual Machine (.dex)DVM – Dalvik Virtual Machine (.dex)✔ S.O. Linux, kernel 2.6S.O. Linux, kernel 2.6
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Framework – Android RecursosFramework – Android Recursos✔ Browser integradoBrowser integrado✔ API gráfica 2D e 3D – OpenGLAPI gráfica 2D e 3D – OpenGL✔ Base de dados SQLiteBase de dados SQLite✔ Multimídia (Mpeg, H.264, MP3, JPG, etc ...)Multimídia (Mpeg, H.264, MP3, JPG, etc ...)✔ Telefonia GSMTelefonia GSM✔ Bluetooth, EDGE, 3G e WiFiBluetooth, EDGE, 3G e WiFi✔ Câmera, GPS, acelerômetro, etc...Câmera, GPS, acelerômetro, etc...✔ Ambiente Integrado de Desenvolvimento (Eclipse)Ambiente Integrado de Desenvolvimento (Eclipse)✔ Emulador de Dispositívo MóvelEmulador de Dispositívo Móvel✔ Suporte a Fonte TrueTypeSuporte a Fonte TrueType
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Framework – Android ArquiteturaFramework – Android Arquitetura
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Framework – AndroidFramework – Android
IDE e EmuladorIDE e Emulador
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Framework – OpenLaszloFramework – OpenLaszlo
✔ Simplifica o desenvolvimento de aplicações AJAXSimplifica o desenvolvimento de aplicações AJAX✔ Interfaces "cinemáticas" e dinâmicasInterfaces "cinemáticas" e dinâmicas✔ linguagem LZX declarativa, mesclando XML e linguagem LZX declarativa, mesclando XML e
JavascriptJavascript
✔ Gera flash ou DHTML dinâmicamenteGera flash ou DHTML dinâmicamente✔ Roda em container web JavaRoda em container web Java
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Framework – OpenLaszlo Framework – OpenLaszlo
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Apache Software FoundationApache Software Foundation✔ Projeto jakartaProjeto jakarta✔ TomCatTomCat✔ Harmony Harmony
✔ ........
✔ CommonsCommons✔ VelocityVelocity✔ XMLBeansXMLBeans✔ DB ProjectDB Project✔ Harmony Harmony
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Outras linguagens na JVMOutras linguagens na JVM
✔ Jython (python)Jython (python)✔ Javascript (rhino)Javascript (rhino)✔ GrooveGroove✔ JRuby (Ruby)JRuby (Ruby)
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
DemonstraçãoDemonstração
✔ Instalação da JDKInstalação da JDK
✔ DownloadDownload da documentação da documentação
✔ Instalação do NetbeansInstalação do Netbeans
✔ Instalação dos pacotes adicionaisInstalação dos pacotes adicionais
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
Conclusão Conclusão ??????
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
BibliografiaBibliografia✔ java.sun.comjava.sun.com
✔ www.portaljava.comwww.portaljava.com
✔ www.javafree.com.brwww.javafree.com.br
✔ www.jcp.org/en/participation/members/www.jcp.org/en/participation/members/
✔ http://www03.ibm.com/systems/z/zaap/http://www03.ibm.com/systems/z/zaap/
✔ http://paulbuchheit.blogspot.com/2007/06/javaisfasterthanc.htmlhttp://paulbuchheit.blogspot.com/2007/06/javaisfasterthanc.html
✔ http://www.tiobe.com/tpci.htmhttp://www.tiobe.com/tpci.htm
✔ http://info.abril.com.br/blog/sandra/20070410_listar.shtmlhttp://info.abril.com.br/blog/sandra/20070410_listar.shtml
✔ http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htmhttp://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm
✔ http://pt.wikipedia.org/wiki/Java_Cardhttp://pt.wikipedia.org/wiki/Java_Card
Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java
BibliografiaBibliografia✔ http://www.javaworld.com/javaworld/jw012002/jw0111hotspotgc.htmlhttp://www.javaworld.com/javaworld/jw012002/jw0111hotspotgc.html
✔ http://java.nethttp://java.net