O Struts morreu. Como escolher um novo framework Web.

Tamanho: px
Começar a partir da página:

Download "O Struts morreu. Como escolher um novo framework Web."

Transcrição

1 O Struts morreu. Como escolher um novo framework Web. Palestrante: Alessandro Coelho Ribeiro Integritas Tecnologia

2 O Struts morreu?

3 ? Quem aqui já desenvolveu uma aplicação Web usando o Struts?

4 Por que o Struts morreu? Não acompanhou a evolução dos outros frameworks O Struts 2.x não é mais o antigo Struts, mas o WebWork 2.x

5 ? E com Struts 2?

6 Os 2 Struts Struts 1.X - o velho Struts - até quando? Struts 2.X - o novo Struts - o velho WebWork 2 - é suficiente?

7 Existem 56 Frameworks Web/Java Cadastrados No java-source.net

8 Existem 56 Frameworks Web/Java Cadastrados No java-source.net 56 Só 5 a 10 frameworks merecem ser avaliados

9 ? Além do Struts (1 e 2), Que outro framework Web/Java você já utilizou?

10 O objetivo dessa Palestra é...

11 Programa Porque o Struts morreu As características principais dos novos frameworks Web Os novos frameworks Web Como escolher

12 O Palestrante Experiência com: Struts1 (alguns projetos + cursos) Apache Wicket (3 projetos) Struts2 (2 projetos + cursos) Spring (vários projetos) JSF/Facelets (1 projeto + palestras) JSF/JSP (palestras) Tapestry, Rife, Stripes, Spring MVC+WebFlow (estudo) Grails (iniciando projeto) Java desde 1996; Instrutor da SUN desde 2002 Certificações: SCJA, SCJP, SCWCD, SCBCD, SCDJWS, SCEA, IBMXML, IBMUML

13 O escopo da Palestra Apenas frameworks para a camada de apresentação Exclui EJB, Hibernate, etc Apenas frameworks baseados em MVC Apenas frameworks mais atuais que o Struts Exclui Turbine, etc Apenas frameworks mais utilizados/conhecidos Exclui frameworks recentes, mas não tão conhecidos como Mentawai, vraptor etc

14 Como escolher um framework Web?

15 Qualidades técnicas Do Framework Características do Projeto Tendências do Mercado Sua empresa e sua equipe

16 As características dos novos frameworks Web Independência total do HTTP e Modelo POJO Inversão de Controle Template HTML puros Interceptadores/AOP Continuações/Modelagem do fluxo da aplicação Componentização de Página e Website Convenção sobre Configuração Anotações Suporte à AJAX Integração com JavaScript Suporte a várias linguagens de Script

17 Os novos frameworks Web WebWork (Struts 2) Java Server Faces Spring SpringMVC SpringWebFlow Tapestry Rife Wicket Stripes Grails

18 O que é o Struts?

19 Struts = WebMVC Modelo atualiza e busca dados do modelo O negócio Vista repassa a ação do usuário Controle A interface seleciona a exibição

20 Struts = WebMVC + alguns poucos recursos adicionais Tiles framework de validação

21 MVC não é tudo

22 Rife JSF Spring Wicket Stripes Seam WebWork Trails Tapestry Existe um mundo de novos frameworks Web aí fora...

23 Há uma série de novas features tão importantes para o desenvolvimento Web quanto o MVC

24 Modelo POJO Inversão de Controle Independência do HTTP Entenda os recursos E Escolha o framework MVC Interceptadores AOP Templates HTML puros Componentização de página e de website Modelagem do Fluxo da interface Continuations

25 Independência total do HTTP e Modelo POJO

26 Actions dependentes de HTTP Permitem que o desenvolvedor possa manipular o objeto de requisição e o objeto de resposta Não impede a escrita de saída HTML/XML Permite o bypass do encapsulamento do formulário HTML Dificulta a realização de testes (Testability) Dependência HTTP Exemplo: Struts

27 Actions independentes de HTTP Os dados são passados diretamente para a Action. Não é preciso ActionForm, nem acessar o HttpServletRequest. Pelos forma padrão, não é possível acessar os objetos de request e response Exemplo: WebWork

28 Modelo de classes Struts Dependências em relação ao HTTP Interfaces/Superclasses diferentes para Action,Form,etc Dependência HTTP Exemplo: Struts

29 Modelo POJO: direitos iguais para todas as classes Todas as classes (Serviços, Actions, Forms, Domain Objects) são beans. Exemplo: JSF, Spring

30 O Caso WebWork: Action = ActionForm O ActionForm A Action

31 Inversão de Controle

32 Problema: Dependências embutidas nas Classes BlogPostAction <<uses>> BlogPostService <<uses>> UserDAO execute() post(userid,message: String) getbloginfo(): BlogInfo execute() { // process request String userid =...; String message =...; BlogPostService service = new BlogPostServiceImpl(); service.post(userid,message); return blogpostok ; } double post(string userid, String message) { } UserDAO dao = new UserDAOImpl(); dao.setuserid(userid); BlogInfo info = dao.getbloginfo(); ConnectionToBlog connection =...; GetBlogInfo() { Connection con = getconnection(); con.preparestatement(...);... }

33 Problema: Dependências embutidas nas Classes O grafo de dependências está distribuído por todas as classes da aplicação É impossível ter uma visão completa do grafo sem ler o código de todas as classes O gerenciamento do ciclo de vida também está distribuído por todos os componentes da aplicação A não ser que o nome da classe dependente seja armazenado em um arquivo externo, o que aumentará a necessidade de codificação, será necessário reescrever o componente para substituir uma implementação do componente dependente por outra.

34 O que é inversão de controle? Na Inversão de Controle, os componentes são construídos de tal forma, que eles possuem mecanismos para receber referências para outros componentes dos quais esse mesmo componente, depende. O ambiente externo ao componente instancia os componentes do qual ele depende e injeta as referências para esses componentes, dentro do mesmo Na IoC, o componente é totalmente passivo. Ele não obtém ou pesquisa outros componentes, mas ele recebe referências para outros componentes. Na IoC, o componente não tem qualquer controle sobre o modo como os outros componentes são instanciados. O controle é invertido, pois ele é retirado de dentro do componente para o ambiente externo. Também é conhecido como Princípio de Hollywood "don't call us, we'll call you"

35 3 estilos de inversão de controle métodos setter BlogPostAction <<uses>> BlogPostService <<uses>> UserDAO setblogpostservice(bps) execute() setuserdao(userdao) post(useri,message: String) getbloginfo(): BlogInfo BlogPostAction construtores <<uses>> BlogPostService <<uses>> UserDAO BlogPostAction(BPS) execute() BlogPostService(UserDAO) post(useri,message: String) getbloginfo(): BlogInfo híbridos

36 BlogPostAction setblogpostservice(bps) execute() <<uses>> BlogPostService setuserdao(userdao) post(useri,message: String) <<uses>> UserDAO getbloginfo(): BlogInfo setblogpostservice(blogpostservice bps) { this.bps = bps; } execute() { // process request String userid =...; String message =...; return blogpostok ; } O componente não instancia o componente dependente O componente não sabe quando, onde e quantas instâncias são criadas. Ele apenas as recebe. O componente não conhece a implementação do componente. Ele conhece apenas a interface.

37 O que fazem os frameworks de inversão de controle Framework IOC MontadorDependências Configuração A configuração pode ser um arquivo XML, anotações em código fonte Java, etc <<create>> <<create>> <<create>> BlogPostAction <<uses>> BlogPostService <<uses>> UserDAO setblogpostservice(bps) execute() setuserdao(userdao) post(useri,message: String) getbloginfo(): BlogInfo Alguns frameworks Web suportam IOC. Existem, também, frameworks específicos para IOC como PicoContainer, Hivemind, etc.

38 Frameworks que suportam IOC Spring, WebWork, JSF, Rife, Tapestry Frameworks que não suportam IOC Wicket?

39 Templates HTML puros

40 Alternativa pré-struts e pré-jstl JAVA JAVA HTML Java e HTML misturados no arquivo JSP

41 No Struts, WebWork e outros frameworks Web HTML TAGLIB HTML TAGLIB HTML Taglib é melhor do que código Java puro. Ainda assim, as ferramentas de design não sabem como manipular as taglibs Essa prática não promove uma separação perfeito entre interface X código Java

42 Templates HTML Puros (exemplo do framework Wicket) A ligação entre o HTML e o Java é feita através de atributos ID. Programadores e Designers podem trabalhar de forma independente. Nenhum suporte especial nas ferramentas é necessário

43 Frameworks que suportam Template HTML Puros Tapestry, Rife, Wicket Frameworks que não suportam Templates HTML Puros JSF, Spring, WebWork

44 Interceptadores e AOP

45 Problema: Redundância de Código GerenciaProntuarioAction Public class GerenciaProntuarioAction { public void execute() { // security code if (autenticado()) { } } // log code Logger.getLogger( xxx ).log( GereniaProntuario ); // action code GerenciaPacientesAction Public class GerenciaPacientesAction { public void execute() { // security code // log code // action code } GerenciaHospitaisAction Public class GerenciaHospitaisAction { public void execute() { // log code // action code } Exemplo: WebWork

46 Solução: Interceptadores Front Controller Interceptors Actions SecurityInterceptor LogInterceptor GerenciaProntuarioAction FrontController SecurityInterceptor LogInterceptor GerenciaPacientesAction LogInterceptor GerenciaHospitaisAction

47 Solução: Interceptadores SecurityInterceptor LogInterceptor GerenciaProntuarioAction class SecurityInterceptor { public void intercept() { // security code if (autenticado()) { } } class LogInterceptor { void intercept() { // log code Logger.getLogger( xxx ).log( GereniaProntuario ); } class GerenciaProntuarioAction { public void execute() { // action code }

48 É fácil ligar e desligar interceptadores SecurityInterceptor LogInterceptor GerenciaProntuarioAction SecurityInterceptor LogInterceptor GerenciaPacientesAction Alterando a configuração dos interceptadores LogInterceptor GerenciaHospitaisAction LogInterceptor GerenciaProntuarioAction SecurityInterceptor LogInterceptor GerenciaPacientesAction LogInterceptor GerenciaHospitaisAction

49 Problemas da solução Interceptadores Só se aplicam a classes de uma determinada camada No WebWork, os interceptadores são utilizados para adicionar dinamicamente funcionalidade às classes de Action No Hibernate, os interceptadores são utilizados para adicionar dinamicamente funcionalidade às classes de persistência

50 Problema: Interceptadores em várias camadas FrontController Security Logging GerenciaProntuarioAction Nesse exemplo, queremos aplicar a funcionalidade de Logging em 3 camadas, em 3 tipos de classe. Logging Precisaríamos de 3 implementações diferentes de interceptadores GerenciaProntuarioService Logging ProntuarioDAO

51 Solução: aspectos Security 2 Aspectos: Logging FrontController Security Logging Nesse exemplo, queremos aplicar a funcionalidade de Logging em 3 camadas, em 3 tipos de classe. GerenciaProntuarioAction Logging GerenciaProntuarioService Logging ProntuarioDAO

52 Solução: aspectos Security 2 Aspectos: Logging FrontController Security Logging GerenciaProntuarioAction Logging GerenciaProntuarioService Logging ProntuarioDAO

53 Solução: aspectos FrontController Security authorize() { if (role.equals( adm )) { GerenciaProntuarioAction.execute() { } Logging log() { log( antes ); log( depois ); } // log authorize() { if (role.equals( adm )) { Nesse exemplo, o aspecto insere código antes e depois da execução de um método. Existem outras formas de inserção de código: antes/depois do acesso a um atributo, etc

54 Partes de um aspecto Um Aspecto é um tipo de Módulo. Na linguagem AspectJ (a mais utilizada), um aspecto é compilado para uma classe Java Como é uma classe Java, um Aspecto pode conter atributos e métodos. Entretanto, os componentes mais importantes de um aspecto são os pointcuts e os advices.

55 Pointcuts O pointcut é o SQL da linguagem de aspectos, a linguagem para selecionar os trechos de código onde o aspecto será inserido. Nesse exemplo, o pointcut está selecionando todos os métodos de todas as classes nos pacotes services, actions e ajax.

56 Advices O advice contém o código que será inserido nos locais descritos pelo pointcut.

57 Frameworks que suportam AOP Spring Frameworks que suportam Interceptadores WebWork Frameworks que não suportam AOP ou Interceptadores JSF, Rife, Wicket, Tapestry

58 Modelagem de Fluxo Continuações

59 Workflow de Telas Exemplo: avaliação biométrica de uma academia de ginástica Pesquisa de aluno Escolha de aluno Input de medidas corporais Registro de informações Fluxo de Telas Seqüencial

60 Implementação do Workflow de Telas FrontController PesquisaAlunoAction EscolhaAlunoAction CadastroMedidasCorporaisAction RegistroAvaliacaoAction... execute() { processaentrada1(); servico.executa(); defineview( view1 ); }... execute() { processaentrada2(); servico2.executa(); defineview( view2 ); }... execute() { processaentrada3(); servico3.executa(); defineview( view3 ); }... execute() { processaentrada4(); servico4.executa(); defineview( view4 ); } Embora o fluxo de telas seja seqüencial, a lógica do processamento de fluxo não é...

61 Implementação do Workflow de Telas (alternativa) FrontController AvaliacaoBiometricaAction... execute() { if (task.equals( escolha )) { processaentrada1(); servico.executa(); defineview( view1 ); } else if (task.equals( pesquisa )) { processaentrada2(); servico2.executa(); defineview( view2 ); } else if (task.equals( cadastromedidas )) { processaentrada3(); servico3.executa(); defineview( view3 ); } if (task.equals( registro )) { processaentrada4(); servico4.executa(); defineview( view4 ); } } Mesmo, concentrando todo o processamento em uma única Action, o código continua não tendo a mesma estrutura das tarefas.

62 Se há uma seqüência de tarefas, por que o código das Actions não é seqüencial? Linguagens de Uso geral

63 Devido à natureza do protocolo HTTP...

64 browser browser browser browser browser browser browser browser requisição servidor resposta P A U S A requisição servidor resposta P A U S A requisição servidor resposta P A U S A requisição servidor resposta P A U S A execute PesquisaAlunoAction execute EscolhaAlunoAction execute CadastroMedidasCorporaisAction execute RegistroAvaliacaoAction

65 Continuações Permite que a execução de qualquer código possa ser interrompida e, depois, continuada Dessa forma, o mecanismo de continuações permite criar a ilusão de seqüência em um processamento não seqüêncial Surgiu na linguagem LISP e foi implementada em várias linguagens funcionais como Scheme e Haskell Tornou-se popular recentemente devido à linguagem Ruby e ao framework RubyOnRails

66 Continuações em Java Ao contrário de outras linguagens, Java não tem suporte nativo a continuações 3 alternativas: Simular continuações Threads suspensas Máquina de estados Usar uma linguagem sobre Java, que permita continuações Rhino, Jruby Usar classloaders próprios e bytecode enhancing para adicionar suporte a continuações à métodos existentes Framework Rife e WebWork

67 Continuações em Aplicações Web browser browser browser browser browser browser browser browser requisição servidor resposta P A U S A requisição servidor resposta P A U S A requisição servidor resposta P A U S A requisição servidor resposta P A U S A execute continue execute continue execute continue execute AvaliacaoBiometricaAction AvaliacaoBiometricaAction AvaliacaoBiometricaAction AvaliacaoBiometricaAction pause pause pause pause

68 Implementação do Workflow de Telas com Continuações FrontController AvaliacaoBiometricaAction... execute() { processaentrada1(); servico.executa(); defineview( view1 ); pause(); processaentrada2(); servico2.executa(); defineview( view2 ); pause(); processaentrada3(); servico3.executa(); defineview( view3 ); pause(); processaentrada4(); servico4.executa(); defineview( view4 ); } } Pesquisa de aluno Escolha de aluno Input de medidas corporais Registro de informações

69 Implementação do Workflow de Telas com Continuações (2) FrontController AvaliacaoBiometricaAction... execute() { processaentrada1(); servico.executa(); defineview( view1 ); pause(); processaentrada2(); servico2.executa(); defineview( view2 ); pause(); processaentrada3(); servico3.executa(); defineview( view3 ); pause(); processaentrada4(); servico4.executa(); defineview( view4 ); } } Pesquisa de aluno Escolha de aluno Input de medidas corporais Registro de informações

70 Utilização de Continuações em fluxos mais complicados Exemplo: Login e cadastro de usuário Usuário inexistente Senha inválida Login Cadastro de Usuário Página do Usuário Confirmação... execute() { processalogin(); // 1 status = servico.login(); // 2 while (status==senha_invalida) { // 3 defineview( senhainvalida ); // 4 pause(); // 5 processalogin(); status = servico.login(); } } if (status==ok) { defineview( paginausuario ); return; } else if (status==usuario_inexistente) { defineview( cadastrousuario ); pause(); processacadastrousuario(); servico.cadastrausuario(); defineview( confirmacao ); pause(); processaconfirmacao(); servico.confirma(); defineview( paginausuario ); return; }

71 Utilização de Continuações em fluxos mais complicados Exemplo: Login e cadastro de usuário Usuário inexistente Senha inválida Login Cadastro de Usuário Página do Usuário Confirmação reinício... execute() { processalogin(); status = servico.login(); while (status==senha_invalida) { //3 defineview( senhainvalida ); pause(); processalogin(); // 1 status = servico.login(); //2 } } if (status==ok) { // 4 defineview( paginausuario ); return; } else if (status==usuario_inexistente) { //5 defineview( cadastrousuario ); //6 pause(); //7 processacadastrousuario(); servico.cadastrausuario(); defineview( confirmacao ); pause(); processaconfirmacao(); servico.confirma(); defineview( paginausuario ); return; }

72 Utilização de Continuações em fluxos mais complicados Exemplo: Login e cadastro de usuário Usuário inexistente Senha inválida Login Cadastro de Usuário Página do Usuário Confirmação reinício... execute() { processalogin(); status = servico.login(); while (status==senha_invalida) { defineview( senhainvalida ); pause(); processalogin(); status = servico.login(); } } if (status==ok) { defineview( paginausuario ); return; } else if (status==usuario_inexistente) { defineview( cadastrousuario ); pause(); processacadastrousuario(); // 1 servico.cadastrausuario(); // 2 defineview( confirmacao ); // 3 pause(); // 4 processaconfirmacao(); servico.confirma(); defineview( paginausuario ); return; }

73 Modelagem do Fluxo de páginas (Máquina de Estados) Define os estados de uma aplicação e as transições possíveis entre esses estados. Máquina de Estados. Imagem extraída da documentação online do framework Spring Web Flow

74 Frameworks que suportam Continuações Rife, WebWork Frameworks que suportam Máquina de Estados Spring Web Flow Frameworks que não suportam nenhuma opção JSF, SpringMVC, Wicket, Stripes

75 Componentização de página e website

76 Tecnologias de componentização padrão Include JSP estático e runtime Tag libraries Tag files Frameworks de layout como o Struts Tiles

77 Componentização de página: modelo Tapestry ControllerServlet Arquivo de configuração lê Component Tag instancia Component Class HTML Template Component Tag Component Class

78 Anotações em vez de XML

79 Convenção em vez de Configuração

80 Suporte a AJAX

81 Suporte a múltiplas linguagens

82 Múltiplas linguagens.net vb.net C# F# C++ Iron python Iron ruby Java Java Groovy Jruby Jython Scala Clojure Linguagens de uso geral Linguagens dinâmicas

83 Por que usar outras Linguagens além do Java?

84 Linguagens dinâmicas Linguagens dinâmicas são linguagens não tipadas, com carregamento dinâmico, linguagens em que classes, atributos e métodos podem ser criados dinamicamente Algumas dessas linguagens têm características de linguagens funcionais Vantagens Produtividade Flexibilidade Facilidade para metaprogramação e DSLs Desvantagens Manutenção Dificuldade para criação de ferramentas Velocidade

85 Onde usar linguagens dinâmicas em uma aplicação Web/Java (exemplo do Grails)

86 Os Concorrentes

87 WebWork ou Struts Action 2.x Baseado em Actions A solução de continuidade defendida pelos desenvolvedores do Struts Suporte a interceptadores Suporte mínimo a AJAX

88 Java Server Faces A solução padrão (standard) da SUN Microsystems Apoiada por fabricantes como IBM, Oracle, BEA, JBOSS, etc Melhor suporte em IDEs Mais de 1 implementação Implementação de referência da SUN Apache MyFaces Muitas bibliotecas de componentes Tomahawk, RichFaces, IceFaces,...

89 Spring A solução alternativa ao padrão mais conhecida Suporte à camada de modelo também Pontos fortes: melhor suporte à IOC e AOP 2 frameworks MVC diferentes: SpringMVC Semelhante ao Struts SpringWebFlow Baseado no conceito de estados

90 Tapestry Baseado em componentes Bastante tempo no mercado

91 Wicket Baseado em componentes Ótimo suporte a AJAX Bastante recente

92 Grails Baseado na linguagem de script groovy e inspirado no framework Ruby on Rails Permite a integração com código Java legado ou a codificação de uma aplicação multi-linguagem

93 Stripes Baseado em Ações Convenção sobre configuração Uso extensivo de anotações

94 Qual o caminho?

95 Novos Padrões: JSF, JEE 1.5, EJB3 Forças de Mudança Ruby on Rails Metaprogramming Continuations Frameworks Open Source (Alternativos?) Spring, WebWork, Rife, Wicket IOC, Anotações, Modelo POJO

96 Java nos Trilhos? Java/JRuby Java/Groovy Jruby on Rails? Grails Django TurboGears Python Rails Ruby

97 1 Defina as features Que são importantes Para o seu projeto

98 Modelo POJO Inversão de Controle Independência do HTTP Entenda os recursos E Escolha o framework MVC Interceptadores AOP Templates HTML puros Componentização de página e de website Modelagem do Fluxo da interface Continuations

99 Componentização de página e de website Independência do HTTP Modelagem do Fluxo da interface Modelo POJO Interceptadores Continuations Inversão de Controle AOP Templates HTML puros Features importantes para o meu projeto

100 2 Entenda os riscos associados à escolha do framework Web

101 Projeto B Projeto A Projeto C Escolhendo um framework corporativo

102 Conseguirei treinar a minha equipe na utilização desse Framework?

103 Tendências: Livros Pesquisa na Amazon.com Quando não há cursos no mercado, sempre se pode educar uma equipe com livros Em geral os livros são uma alternativa melhor do que uma boa documentação Framework #Livros Struts1 12 (21%) Spring 9 (16%) JSF (sem facelets) 9 (16%) Jboss Seam 6 (11%) Grails 4 (7%) Struts2 4 (7%) JSF/Facelets 3 (5%) Wicket 3 (5%) Tapestry 3 (5%) Spring Web Flow 2 (4%) Spring MVC 1 (2%) Stripes 1 (2%) Rife 0

104 Se o framework Web ainda não é muito utilizado, qual a tendência dele se tornar mainstream?

105 O que os desenvolvedores alfa estão lendo?

106 Tendências: Livros (só em 2008) Livros recentes indicam interesse Framework #Livros (2008) #Livros Jboss Seam 3 (18%) 6 Struts2 3 (18%) 4 Spring 2 (12%) 9 Grails 2 (12%) 4 JSF/Facelets 2 (12%) 3 Wicket 2 (12%) 3 Tapestry 1 (6%) 3 Spring Web Flow 1 (6%) 2 Stripes 1 (6%) 1 Struts JSF padrão 0 9 Spring MVC 0 1 Rife 0 0

107 Artigos no INFOQ Framework #Livros JSF 249 (19%) Grails 223 (17%) Seam 223 (17%) Struts 215 (16%) Spring MVC 130 (10%) Spring Web Flow 97 (7%) Tapestry 79 (6%) Wicket 38 (3%) Rife 36 (3%) Stripes 14 (1%)

108 O framework é Open source, mas quão fácil é conseguir suporte gratuito para ele na Internet?

109 Mensagens no GUJ Framework #Msgs JSF (45%) Struts (44%) Facelets 1309 (3%) Jboss Seam 1136 (3%) Spring MVC 543 (1%) Grails 345 (1%) Wicket 254 (1%) Tapestry 181 (<1%) Rife 53 (<1%) Spring Web Flow 20 (<1%)

110 Que frameworks as empresas estão realmente usando?

111 Vagas no Indeed.com Palavra-chave #Vagas Java Struts (86%) Java JSF 2192 (11%) Java Spring MVC 254 (1%) Java Facelets 114 (1%) Java Grails 68 (0%) Java Wicket 67 (0%) Java JRuby 26 (0%) Java Spring Web Flow 20 (0%) Java Jruby Rails 7 (0%) Java Stripes 6 (0%) Java Rife 0 (0%)

112 Vagas no Catho Online Palavra-chave #Vagas Java Struts 213 (66%) Java JSF 94 (29%) Java Seam 8 (2%) Java Facelets 5 (2%) Java Spring MVC 5 (2%) Java Wicket 0 Java Grails 0 Java Tapestry 0 Java Spring Web Flow 0 JRuby 0 Java Stripes 0

113 3 Avalie a solução completa Para o seu projeto, não apenas o framework Web

114 Solução Completa = framework Web + framework Negócios + outros frameworks

115 Camada Web Camada de Negócio + Persistência WebWork JSF Tapestry Wicket SpringMVC SpringMVC SpringWebFlow Rife EJB 2.1 EJB 3.0 Spring Core Hibernate JDO Spring Core Rife

116 Escolhas para projetos específicos Escolhas departamentais stripe, rife e outros... wicket grails tapestry Alto risco Médio risco Escolhas corporativas struts2 jsf spring/mvc Baixo risco Features importantes para o meu projeto

117 MUITO OBRIGADO! O arquivo PDF da apresentação poderá ser obtido no site e Todas as imagens de fundo usadas nessa apresentação estão cobertas pela licença Creative Commons.

MÓDULO Programação para Web 2

MÓDULO Programação para Web 2 MÓDULO Programação para Web 2 Sistemas Web na JEE OBJETIVO DO MÓDULO Arquitetura Web em aplicações JEE Conceitos iniciais Desenvolvimento Web Aplicações web tornam-se mais e mais importantes Mais e mais

Leia mais

Groovy & Grails. Arian Pasquali. quarta-feira, 12 de outubro de 11

Groovy & Grails. Arian Pasquali. quarta-feira, 12 de outubro de 11 Groovy & Grails Arian Pasquali Arian Pasquali 24 anos eu Formado em Sistemas de Informação Java, Objective-C, Flex, Groovy SCJP, SCJA, ACE 6 anos de Java Orientação a Objetos Plataforma Multi-plataforma

Leia mais

Associação Carioca de Ensino Superior Centro Universitário Carioca

Associação Carioca de Ensino Superior Centro Universitário Carioca Desenvolvimento de Aplicações Web Lista de Exercícios Métodos HTTP 1. No tocante ao protocolo de transferência de hipertexto (HTTP), esse protocolo da categoria "solicitação e resposta" possui três métodos

Leia mais

JSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

JSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul JSF e PrimeFaces Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Introdução Desenvolvimento Web Java Server Faces Exercício 2 Introdução Ao longo dos anos diversas linguagens de programação foram

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

Java e Banco de Dados: JDBC, Hibernate e JPA

Java e Banco de Dados: JDBC, Hibernate e JPA Java e Banco de Dados: JDBC, Hibernate e JPA 1 Objetivos Apresentar de forma progressiva as diversas alternativas de persistência de dados que foram evoluindo na tecnologia Java, desde o JDBC, passando

Leia mais

DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC

DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC Felipe Moreira Decol Claro 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil felipe4258@hotmail.com, kessia@unipar.br

Leia mais

Guia para Iniciantes do WebWork

Guia para Iniciantes do WebWork Guia para Iniciantes do WebWork Marcelo Martins Este guia descreve os primeiros passos na utilização do WebWork Introdução Desenvolver sistemas para Web requer mais do que simplesmente um amontoado de

Leia mais

Fatos e Mitos do Java EE. Fernando Lozano Consultor 4Linux lozano@4linux.com.br

Fatos e Mitos do Java EE. Fernando Lozano Consultor 4Linux lozano@4linux.com.br Fatos e Mitos do Java EE Fernando Lozano Consultor 4Linux lozano@4linux.com.br O Que É o Java EE? É um padrão de bibliotecas e componentes (APIs) para a criação de aplicações corporativas Também é um padrão

Leia mais

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64 direcionados por comportamento 64 5 Estudo de caso Neste capítulo serão apresentadas as aplicações web utilizadas na aplicação da abordagem proposta, bem como a tecnologia em que foram desenvolvidas, o

Leia mais

Como sobreviver com Java 2? Saulo Arruda

Como sobreviver com Java 2? Saulo Arruda Como sobreviver com Java 2? Saulo Arruda Agenda Apresentação Contexto do mercado Soluções para Java 5+ Soluções para Java 2 Conclusões Apresentação Saulo Arruda (http://sauloarruda.eti.br) Trabalha com

Leia mais

Desenvolvimento WEB em JAVA. Palestrante: Lourival F. de Almeida Júnior

Desenvolvimento WEB em JAVA. Palestrante: Lourival F. de Almeida Júnior Desenvolvimento WEB em JAVA Palestrante: Lourival F. de Almeida Júnior Agenda Introdução Servlet Arquitetura de Software Velocity Struts Conclusão Referências Introdução (antes) Programador Produto Introdução

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Ambiente Web É o ambiente formado

Leia mais

Prova Específica Cargo Desenvolvimento

Prova Específica Cargo Desenvolvimento UNIVERSIDADE FEDERAL DO PIAUÍ Centro de Educação Aberta e a Distância CEAD/UFPI Rua Olavo Bilac 1148 - Centro CEP 64.280-001 Teresina PI Brasil Fones (86) 3215-4101/ 3221-6227 ; Internet: www.uapi.edu.br

Leia mais

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP Software cliente: browser e outros Protocolo HTTP Infraestrutura de transporte

Leia mais

TECNOLOGIA JAVA TENDÊNCIAS, MERCADO E FUTURO

TECNOLOGIA JAVA TENDÊNCIAS, MERCADO E FUTURO TECNOLOGIA JAVA TENDÊNCIAS, MERCADO E FUTURO Bacharel em Ciências da Computação PUC/SP 2001 Pós-graduado em Gestão de Negócios (MBA) IPT/USP 2006 Arquiteto de Software Desenvolvedor Java Consultoria, Treinamento

Leia mais

Curso - Padrões de Projeto Módulo 5: Model-View- Controller

Curso - Padrões de Projeto Módulo 5: Model-View- Controller Curso - Padrões de Projeto Módulo 5: Model-View- Controller Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java:

Leia mais

Padrões de Interação com o Usuário

Padrões de Interação com o Usuário Padrões de Interação com o Usuário Granularidade dos Padrões Padrões estão relacionados a 3 elementos: Contexto ocorre Problema resolve Solução Problemas e Soluções podem ser observados em diferentes níveis

Leia mais

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br SCE-557 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Ambiente Web É o ambiente

Leia mais

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma

Leia mais

Grails: o que isso quer dizer? Gilliard Cordeiro http://gilliard.eti.br

Grails: o que isso quer dizer? Gilliard Cordeiro http://gilliard.eti.br Grails: o que isso quer dizer? Gilliard Cordeiro http://gilliard.eti.br Sobre mim Formado em análise de sistemas pela UFMS Trabalho há 5 anos com desenvolvimento Web Minha principal área de atuação é P&D

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

Leia mais

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Tiago Peres Souza 1, Jaime Willian Dias 1,2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil tiagop_ti@hotmail.com 2 Universidade

Leia mais

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Tecnologia Java Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Origem da Tecnologia Java Projeto inicial: Oak (liderado por James Gosling) Lançada em 1995 (Java) Tecnologia

Leia mais

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira ENTERPRISE JAVABEANS 3 Msc. Daniele Carvalho Oliveira Apostila Servlets e JSP www.argonavis.com.br/cursos/java/j550/index.html INTRODUÇÃO Introdução Enterprise JavaBeans é um padrão de modelo de componentes

Leia mais

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br Você Gosta do EJB? O EJB esteve por muito tempo na berlinda do mundo Java É pesado... É complicado... Código muito

Leia mais

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério.

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério. EDSON GONÇALVES Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério. AGRADECIMENTOS Primeiramente gostaria de agradecer

Leia mais

JSF - Controle de Acesso FERNANDO FREITAS COSTA

JSF - Controle de Acesso FERNANDO FREITAS COSTA JSF - Controle de Acesso FERNANDO FREITAS COSTA ESPECIALISTA EM GESTÃO E DOCÊNCIA UNIVERSITÁRIA JSF Controle de Acesso Antes de iniciarmos este assunto, é importante conhecermos a definição de autenticação

Leia mais

Minha primeira aplicação utilizando Java Server Faces + Glassfish

Minha primeira aplicação utilizando Java Server Faces + Glassfish Minha primeira aplicação utilizando Java Server Faces + Glassfish Este tutorial apresenta de forma simples, como iniciar no desenvolvimento com o framework Java Server faces 1.2, utilizando-se o servidor

Leia mais

ORDEM DE SERVIÇO OS 003/DINFO/2013 16/09/2013

ORDEM DE SERVIÇO OS 003/DINFO/2013 16/09/2013 A DIRETORIA DE INFORMÁTICA DINFO DA UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO -UERJ, no uso de suas atribuições legais, estabelece: Art. 1º: Para fins de normatização do Desenvolvimento Tecnológico na UERJ

Leia mais

Sistema Gerador de Anúncios para Compra e Venda On-line. Leandro de Oliveira ol.leandro@gmail.com

Sistema Gerador de Anúncios para Compra e Venda On-line. Leandro de Oliveira ol.leandro@gmail.com Sistema Gerador de Anúncios para Compra e Venda On-line Leandro de Oliveira ol.leandro@gmail.com Roteiro da Apresentação Motivação Conceitos e Tecnologias Objetivos do trabalho Sistema SideCart Conclusões

Leia mais

WebApps em Java com uso de Frameworks

WebApps em Java com uso de Frameworks WebApps em Java com uso de Frameworks Fred Lopes Índice O que são frameworks? Arquitetura em camadas Arquitetura de sistemas WEB (WebApps) Listagem resumida de frameworks Java Hibernate O que são frameworks?

Leia mais

Tecnologias Web. Java Enterprise Edition

Tecnologias Web. Java Enterprise Edition Tecnologias Web Java Enterprise Edition Cristiano Lehrer, M.Sc. Introdução Java Enterprise Edition (JEE): Plataforma de tecnologias para o desenvolvimento de aplicações corporativas distribuídas. É uma

Leia mais

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS Emanuel M. Godoy 1, Ricardo Ribeiro Rufino 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil godoymanel@gmail.com,

Leia mais

Omar Alejandro Balcon Benvenuto

Omar Alejandro Balcon Benvenuto DADOS DE IDENTIFICAÇÃO Nome Data de Nascimento 13/04/1971 Naturalidade Estado Civil Residência atual Contato Omar Alejandro Balcon Benvenuto Montevidéu/Uruguai Casado Porto Alegre / RS Última atualização

Leia mais

JSP (Java Server Pages)

JSP (Java Server Pages) JSP (Java Server Pages) André Tavares da Silva andre.silva@udesc.br JSP A linguagem surgiu por volta de 1995. JSP foi inicialmente inventado por Anselm Baird-Smith durante um final de semana e depois Satish

Leia mais

ANÁLISE COMPARATIVA ENTRE OS PRINCIPAIS FRAMEWORKS DE DESENVOLVIMENTO JAVA COMPARATIVE ANALYSIS BETWEEN MAIN DEVELOPMENT FRAMEWORKS IN JAVA

ANÁLISE COMPARATIVA ENTRE OS PRINCIPAIS FRAMEWORKS DE DESENVOLVIMENTO JAVA COMPARATIVE ANALYSIS BETWEEN MAIN DEVELOPMENT FRAMEWORKS IN JAVA 1 ANÁLISE COMPARATIVA ENTRE OS PRINCIPAIS FRAMEWORKS DE DESENVOLVIMENTO JAVA COMPARATIVE ANALYSIS BETWEEN MAIN DEVELOPMENT FRAMEWORKS IN JAVA Erik Aceiro Antonio 1 Universidade Estadual Paulista Júlio

Leia mais

CURSO DESENVOLVEDOR JAVA Edição 2009

CURSO DESENVOLVEDOR JAVA Edição 2009 CURSO DESENVOLVEDOR JAVA Edição 2009 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos e com o uso

Leia mais

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho Banco de Dados de Músicas Andre Lima Rocha Campos Osório Pereira Carvalho Definição Aplicação Web que oferece ao usuário um serviço de busca de músicas e informações relacionadas, como compositor, interprete,

Leia mais

J550. Model View Controller

J550. Model View Controller J550 Model View Controller 1 Design de aplicações JSP Design centrado em páginas Aplicação JSP consiste de seqüência de páginas (com ou sem beans de dados) que contém código ou links para chamar outras

Leia mais

SUN324093. Camilo Lopes -Sun Certified Programmer Java

SUN324093. Camilo Lopes -Sun Certified Programmer Java CAMILO LOPES SUN324093 Camilo Lopes -Sun Certified Programmer Java 1 CERTIFICAÇÃO JAVA 1. A IMPORTÂNCIA DA CERTIFICAÇÃO 2. AS CERTIFICAÇÕES DA SUN 3. COMO SER CERTIFICADO? Camilo Lopes - Sun Certified

Leia mais

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Juarez Bachmann Orientador: Alexander Roberto Valdameri Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

Spring: Um suite de novas opções para Java EE

Spring: Um suite de novas opções para Java EE Spring: Um suite de novas opções para Java EE Alberto J Lemos (Dr. Spock) Instrutor Globalcode Ricardo Jun Taniguchi Instrutor Globalcode 1 Agenda > Sobre o Spring Framework > Escopo de integração com

Leia mais

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Por quê JSP? Com Servlets é fácil Ler dados de um formulário Recuperar dados de uma requisição Gerar informação de resposta Fazer gerenciamento

Leia mais

SISTEMA GERENCIAL TRATORPLAN

SISTEMA GERENCIAL TRATORPLAN SISTEMA GERENCIAL TRATORPLAN SIGET Fabrício Pereira Santana¹, Jaime William Dias¹, ², Ricardo de Melo Germano¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil fabricioblack@gmail.com germano@unipar.br

Leia mais

Boas Práticas de Desenvolvimento Seguro

Boas Práticas de Desenvolvimento Seguro Boas Práticas de Desenvolvimento Seguro Julho / 2.012 Histórico de Revisões Data Versão Descrição Autor 29/07/2012 1.0 Versão inicial Ricardo Kiyoshi Página 2 de 11 Conteúdo 1. SEGURANÇA DA INFORMAÇÃO

Leia mais

Struts 2 : Projeto e Programação Editora: Ciência Moderna Autor: Antunes Budi Kurniawan Número de páginas: 600

Struts 2 : Projeto e Programação Editora: Ciência Moderna Autor: Antunes Budi Kurniawan Número de páginas: 600 Objetivo Com enfoque totalmente prático permite que programadores Java possam ampliar seus conhecimentos no mundo Web na criação de sistemas profissionais. Utilizar os modelos de programação com Servlets,

Leia mais

Padrões de Projeto WEB e o MVC

Padrões de Projeto WEB e o MVC Padrões de Projeto WEB e o MVC Padrões de Projeto WEB e o MVC O que são padrões? "Cada padrão descreve um problema que ocorre freqüentemente em seu ambiente, e então descreve o cerne da solução para aquele

Leia mais

SCC-0263. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br

SCC-0263. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br SCC-0263 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side

Leia mais

Arquitetura de uma Webapp

Arquitetura de uma Webapp Arquitetura de uma Webapp Arquitetura J2EE Containers e componentes MVC: introdução Frederico Costa Guedes Pereira 2006 fredguedespereira@gmail.com Plataforma J2EE World Wide Web e a Economia da Informação

Leia mais

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos

Leia mais

J550. Apache Struts. Helder da Rocha (helder@acm.org) www.argonavis.com.br

J550. Apache Struts. Helder da Rocha (helder@acm.org) www.argonavis.com.br J550 Apache Struts Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Sobre este módulo Este é um módulo opcional. Apresenta uma visão geral do framework Struts, usado para desenvolver aplicações

Leia mais

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS Edi Carlos Siniciato ¹, William Magalhães¹ ¹ Universidade Paranaense (Unipar) Paranavaí PR Brasil edysiniciato@gmail.com,

Leia mais

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br WebWork 2 João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão: 0.5 Última Atualização: Agosto/2005 1 Agenda Introdução WebWork 2 & XWork Actions Views Interceptadores Validação Inversão de Controle (IoC)

Leia mais

Integrando Eclipse e Websphere Application Server Community Edition

Integrando Eclipse e Websphere Application Server Community Edition 1 Integrando Eclipse e Websphere Application Server Community Edition Sobre o Autor Carlos Eduardo G. Tosin (carlos@tosin.com.br) é formado em Ciência da Computação pela PUC-PR, pós-graduado em Desenvolvimento

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA. Informatização de farmácias publicas utilizando software livre.

UNIVERSIDADE FEDERAL DE SANTA CATARINA. Informatização de farmácias publicas utilizando software livre. UNIVERSIDADE FEDERAL DE SANTA CATARINA Informatização de farmácias publicas utilizando software livre. MURILO NUNES ELIAS FLORIANÓPOLIS SC 2007/2 UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE

Leia mais

OPORTUNIDADES: Analista de Sistemas

OPORTUNIDADES: Analista de Sistemas OPORTUNIDADES: Analista de Sistemas - Experiência em metodologias ágeis de desenvolvimento, - Experiência em desenvolvimento de sistemas com plataforma Microsoft.Net, - Experiência em banco de dados Microsoft

Leia mais

Projeto Arquitetural do IEmbedded

Projeto Arquitetural do IEmbedded Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Projeto I Professora: Francilene Garcia Equipe: Carolina Nogueira de

Leia mais

Evolução guiada por APIs. com REST para modernizar seu legado

Evolução guiada por APIs. com REST para modernizar seu legado Evolução guiada por APIs Option #2 híbrida Criando uma arquitetura com REST para modernizar seu legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da

Leia mais

PROJETO PEDAGÓGICO DE CURSOS

PROJETO PEDAGÓGICO DE CURSOS 1 de 6 PROJETO PEDAGÓGICO DE CURSOS BURITREINAMENTOS MANAUS-AM MARÇO / 2015 2 de 6 PACOTES DE TREINAMENTOS BURITECH A Buritech desenvolveu um grupo de pacotes de treinamentos, aqui chamados de BuriPacks,

Leia mais

Transaction Scripts: Uma Forma mais Simples de Organizar Lógica de Domínio

Transaction Scripts: Uma Forma mais Simples de Organizar Lógica de Domínio Roberto Perillo (jrcperillo@yahoo.com.br) é bacharel em Ciência da Computação e está atualmente cursando mestrado no ITA, onde já concluiu o curso de especialização em Engenharia de Software. Trabalha

Leia mais

Curso de Extensão Programação Orientada a Objetos com Java. Última atualização: 25/05/2010

Curso de Extensão Programação Orientada a Objetos com Java. Última atualização: 25/05/2010 Curso de Extensão Programação Orientada a Objetos com Java Última atualização: 25/05/2010 1 Objetivos do Curso Este curso fornece a você conhecimento e habilidades para: Programar e executar aplicações

Leia mais

Frameworks para Desenvolvimento em PHP Elton Luís Minetto

Frameworks para Desenvolvimento em PHP Elton Luís Minetto Frameworks para Desenvolvimento em PHP Elton Luís Minetto Novatec capítulo 1 Introdução Uma das grandes vantagens do PHP é sua facilidade de aprendizado. Ao ler poucas páginas de tutoriais ou de algum

Leia mais

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?

Leia mais

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES Hugo Henrique Rodrigues Correa¹, Jaime Willian Dias 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil hugohrcorrea@gmail.com, jaime@unipar.br Resumo.

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

PROJETO FINANCEIROWEB GRADUAÇÃO TECNOLÓGICA EM GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

PROJETO FINANCEIROWEB GRADUAÇÃO TECNOLÓGICA EM GESTÃO DA TECNOLOGIA DA INFORMAÇÃO FACULDADE DE TECNOLOGIA SENAC GOIÁS PROJETO FINANCEIROWEB GRADUAÇÃO TECNOLÓGICA EM GESTÃO DA TECNOLOGIA DA INFORMAÇÃO PROFº.: FABRICIO LEONARD PROGRAMAÇÃO COM FRAMEWORKS - MÓDULO V - GOIÂNIA - JUNHO ELABORAÇÃO

Leia mais

Há várias práticas e abordagens que facilitam a separação de responsabilidades, como veremos nos próximos tópicos.

Há várias práticas e abordagens que facilitam a separação de responsabilidades, como veremos nos próximos tópicos. Há várias práticas e abordagens que facilitam a separação de responsabilidades, como veremos nos próximos tópicos. 4.2. Gerencie suas dependências através de injeção Mesmo com o baixo acoplamento haverá

Leia mais

DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS

DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS Leandro Guilherme Gouvea 1, João Paulo Rodrigues 1, Wyllian Fressatti 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil leandrog.gouvea@gmail.com,

Leia mais

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA XML e Banco de Dados DCC/IM/UFBA Banco de Dados na Web Armazenamento de dados na Web HTML muito utilizada para formatar e estruturar documentos na Web Não é adequada para especificar dados estruturados

Leia mais

Curso de Introdução ao

Curso de Introdução ao Curso de Introdução ao Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br O que é? Struts Struts é um framework gratuito para construção de aplicações web implementadas em Java.

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

Omar Alejandro Balcon Benvenuto

Omar Alejandro Balcon Benvenuto DADOS DE IDENTIFICAÇÃO Nome Omar Alejandro Balcon Benvenuto Data de Nascimento 13/04/1971 Naturalidade Montevidéu/Uruguai Estado Civil Casado Residência atual Porto Alegre / RS Contato Celular(51)8152-5288

Leia mais

Evolução do Design através de Testes e o TDD

Evolução do Design através de Testes e o TDD c a p a Lucas Souza (lucas.souza@caelum.com.br): é bacharel em Engenharia da Computação pela Universidade de Ribeirão Preto, possui a certificação SCJP e trabalha com Java há 4 anos. Atualmente é desenvolvedor

Leia mais

Desenvolvimento em três camadas com PHP 5, MVC e AJAX

Desenvolvimento em três camadas com PHP 5, MVC e AJAX Desenvolvimento em três camadas com PHP 5, MVC e AJAX Almir Neto almirneto@gmail.com Otávio Calaça otaviocx@gmail.com http://phpendo.blogspot.com CoNaPHP CONISLI 2008 http://www.conaphp.com.br/ São Paulo,

Leia mais

World Wide Web e Aplicações

World Wide Web e Aplicações World Wide Web e Aplicações Módulo H O que é a WWW Permite a criação, manipulação e recuperação de informações Padrão de fato para navegação, publicação de informações e execução de transações na Internet

Leia mais

Cadernos UniFOA. Proposta de um Framework para aplicações web. Proposal for a Framework for web applications. 1. Introdução.

Cadernos UniFOA. Proposta de um Framework para aplicações web. Proposal for a Framework for web applications. 1. Introdução. 19 Proposta de um Framework para aplicações web Proposal for a Framework for web applications Francisco de Oliveira Dantas Filho 1 Hevanderson da Silva 1 Angelo Márcio de Paula 2 Artigo Original Original

Leia mais

JPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education

JPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education JPA Passo a Passo Henrique Eduardo M. Oliveira henrique@voffice.com.br 1 Palestrante Henrique Eduardo M. Oliveira (henrique@voffice.com.br) > Trabalha: Arquiteto JEE / Instrutor Java > Formação: Ciências

Leia mais

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais Curso de Java Geração de Páginas WEB Aplicação WEB Numa aplicação WEB de conteúdo dinâmico As páginas são construídas a partir de dados da aplicação (mantidos num banco de dados). Usuários interagem com

Leia mais

Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e JEE com JBoss Seam. João Paulo Viragine Solutions Architect joao.viragine@redhat.

Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e JEE com JBoss Seam. João Paulo Viragine Solutions Architect joao.viragine@redhat. Mais velozes e mais furiosos: Desenvolvimento Web 2.0 e JEE com JBoss Seam João Paulo Viragine Solutions Architect joao.viragine@redhat.com Motivação O JSF merece uma segunda chance? O EJB foi realmente

Leia mais

Experiência em missão crítica de missão crítica

Experiência em missão crítica de missão crítica 2 / 17 Experiência em missão crítica de missão crítica Pioneira no ensino de Linux à distância Parceira de treinamento IBM Primeira com LPI no Brasil + de 30.000 alunos satisfeitos Reconhecimento internacional

Leia mais

OPORTUNIDADES CWI: Principais atividades: - Análise e desenvolvimento de sites Cross-plataform (IE/Firefox/Chrome/Safari).

OPORTUNIDADES CWI: Principais atividades: - Análise e desenvolvimento de sites Cross-plataform (IE/Firefox/Chrome/Safari). OPORTUNIDADES CWI: Analista - Experiência mínima de 2 anos com ASP.NET (C Sharp). - Experiência com atendimento a usuários na resolução de problemas com sistemas já existentes. - Experiência em desenvolvimento

Leia mais

Visão Geral da Plataforma Java. Robinson Castilho - JUGMS castilho@bacarin.com.br http://www.jugms.com.br

Visão Geral da Plataforma Java. Robinson Castilho - JUGMS castilho@bacarin.com.br http://www.jugms.com.br Visão Geral da Plataforma Java Robinson Castilho - JUGMS castilho@bacarin.com.br http://www.jugms.com.br Agenda Apresentação Motivação para a palestra História do Java A máquina virtual Java (JVM) Java

Leia mais

SIQ GQF Plugin s WEB (Aplicações WEB) Gestão da Qualidade de Fornecedores

SIQ GQF Plugin s WEB (Aplicações WEB) Gestão da Qualidade de Fornecedores SIQ GQF Plugin s WEB (Aplicações WEB) Gestão da Qualidade de Fornecedores Requerimentos do Software Versão para Microsoft Windows/Unix Dezembro 2006 Bem-Vindo ao to SIQ GQF Plugin s WEB - Gestão da Qualidade

Leia mais

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado ARQUITETURA SISGRAD Manual de Utilização Versão: 2.0 Criação: 05 de julho de 2007 Autor: André Penteado Última Revisão: 09 de outubro de 2009 Autor: Alessandro Moraes Controle Acadêmico - Arquitetura SISGRAD

Leia mais

CURSO DESENVOLVEDOR JAVA Edição 2010

CURSO DESENVOLVEDOR JAVA Edição 2010 CURSO DESENVOLVEDOR JAVA Edição 2010 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos e com o uso

Leia mais

Linguagem de Programação Para Internet II

Linguagem de Programação Para Internet II Linguagem de Programação Para Internet II Resumo do Conteúdo 1 Tecnologias Emergentes Para o Desenvolvimento de Aplicações Web Java Server Faces (JSF) Struts Tapestry PHP Ruby on Rails ASP.NET Phyton Perl

Leia mais

OPORTUNIDADES CWI: Principais atividades: - Análise e desenvolvimento de sites Cross-plataform (IE/Firefox/Chrome/Safari).

OPORTUNIDADES CWI: Principais atividades: - Análise e desenvolvimento de sites Cross-plataform (IE/Firefox/Chrome/Safari). OPORTUNIDADES CWI: Analista Desenvolvedor.Net - Perfil Pleno. - Experiência mínima de 2 anos com ASP.NET (C Sharp). - Experiência com atendimento a usuários na resolução de problemas com sistemas já existentes.

Leia mais

OPORTUNIDADES CWI: Principais atividades: - Análise e desenvolvimento de sites Cross-plataform (IE/Firefox/Chrome/Safari).

OPORTUNIDADES CWI: Principais atividades: - Análise e desenvolvimento de sites Cross-plataform (IE/Firefox/Chrome/Safari). OPORTUNIDADES CWI: Analista de Testes - 2 anos de experiências em testes. - Experiência com alguma ferramenta de automação de testes. - Conhecimento em especificação de casos de testes. - Formação superior

Leia mais

Anatomia do JSF JavaServer Faces. Rafael Ponte rponte@gmail.com

Anatomia do JSF JavaServer Faces. Rafael Ponte rponte@gmail.com Anatomia do JSF JavaServer Faces Rafael Ponte rponte@gmail.com http://www.rponte.com.br Agenda Quem sou eu? Desenvolvimento de Aplicações Web O que é JavaServer Faces? Por que usar JSF? Overview da tecnologia

Leia mais

Programação Web Aula 12 - Java Web Software

Programação Web Aula 12 - Java Web Software Programação Web Aula 12 - Java Web Software Bruno Müller Junior Departamento de Informática UFPR 25 de Maio de 2015 1 Java 2 Java Web Software 3 Servlets Modelo de Trabalho Funcionamento API Java Código

Leia mais

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1 PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB PADRÕES MVC E DAO Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o conceito de Padrões de Projeto Compreender o Padrão MVC Conhecer o princípio de alguns dos

Leia mais

ANEXO IC. Arquitetura de Referência. Versão 1.1

ANEXO IC. Arquitetura de Referência. Versão 1.1 ANEXO IC Arquitetura de Referência Versão 1.1 Histórico da Revisão Data Versão Descrição Autor 01/09/2006 1.0 Primeira versão do documento. Rodrigo Barreiros 29/10/2007 1.1 Alteração de frameworks na camada

Leia mais

Framework para Acesso Web Automático a Objetos em Bancos de Dados via GWT

Framework para Acesso Web Automático a Objetos em Bancos de Dados via GWT UNIVERSIDADE FEDERAL DO ESTADO DO RIO DE JANEIRO CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA Framework para Acesso Web Automático a Objetos em Bancos de Dados via

Leia mais

Guilherme Augusto de Assis

Guilherme Augusto de Assis Guilherme Augusto de Assis Analista de Sistemas Pleno da empresa CPqD guiassys@gmail.com Resumo Possui graduação em Sistemas de Informação pela Faculdade de Administração e Ciências Contábeis de Hortolândia

Leia mais

Adobe Flex. Cainã Fuck dos Santos Thiago Vieira Puluceno Jonathan Kuntz Fornari Gustavo Nascimento Costa

Adobe Flex. Cainã Fuck dos Santos Thiago Vieira Puluceno Jonathan Kuntz Fornari Gustavo Nascimento Costa Adobe Flex Cainã Fuck dos Santos Thiago Vieira Puluceno Jonathan Kuntz Fornari Gustavo Nascimento Costa O que é Flex? Estrutura de Código aberto para a criação de aplicativos Web Utiliza o runtime do Adobe

Leia mais

Java Server Faces 2.0 Rich Faces 4.0

Java Server Faces 2.0 Rich Faces 4.0 DEPARTAMENTO DE INFORMÁTICA - DI Java Server Faces 2.0 Rich Faces 4.0 Quais as novidades e alterações nas novas versões das tecnologias? Pablo Bruno de Moura Nóbrega Analista de Sistemas pablo.nobrega@uece.br

Leia mais

Ensino Superior: IESB Instituto de Educação Superior de Brasília Ciências da Computação - Cursando

Ensino Superior: IESB Instituto de Educação Superior de Brasília Ciências da Computação - Cursando Vinicius Nascimento Informações pessoais Estado civil: Casado Nacionalidade Brasileira Idade: 30 anos Naturalidade: Brasília DF Formação Ensino Superior: IESB Instituto de Educação Superior de Brasília

Leia mais