Avaliação de Frameworks de Produtividade para aplicações CRUD

Documentos relacionados
GT-MobVida. Manual de Operações

Introdução ao Zend Framework 2

Projeto de Sistemas para Internet

Configuração do Apache Cordova Lab. 13. Prof. Bruno C. Vani

Grails. Desenvolvimento Java Açucarado

Especialização em Engenharia e Desenvolvimento de Software Web

Especialização em Engenharia e Desenvolvimento de Software Web

Globo Photo Documentation

Guia itexto. Usando Jenv. Essencial. Henrique Lobo Weissmann

Desenvolvimento Web TCC Turma A-1

Analista de Negócios. Local de Trabalho: Porto Alegre. Número de Vagas: 02. Analista de Sistemas

MERCADO DE TRABALHO DE TI E O IMPACTO DO ANGULAR 7

Como criar sua aplicação em React em poucos minutos. um ebook produzido por: CodePrestige

Desenvolva passo a passo um Sistema Web seguro com C# e Web Services!

EA975 - Laboratório de Engenharia de Software

Curso. Liferay Desenvolvedor

Uso da plataforma Ionic para Desenvolvimento de Aplicativo Móvel

OPORTUNIDADES: Analista de Sistemas Sênior

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

Academia Programador de Aplicações JAVA

Casa do Código Livros para o programador Rua Vergueiro, º andar Vila Mariana São Paulo SP Brasil

Configurando seu ambiente de desenvolvimento Java com o SDKMan

Frameworks funcionais para JSF que proporciona o desenvolvimento de aplicações computacionais WEB

GERADOR DE INTERFACES GRÁFICAS PARA IOS GABRIEL SEBASTIAN RAMIREZ JOYCE MARTINS

(Visualizar versões remotas do NodeJs) $ nvm ls-remote Obs.: várias versões escolher/copiar a última versão LTS para instalação

POO Documentation. Release 1.0. Felipe Dau e Francisco Pereira Junior

Júlio César Falbo da Silveira

Frameworks - Grails. Aécio Costa

Aplicações Web com Servlets e JSP

Bianca Hahn Lucas Manassés Vitor Sabbi

EA975 - Laboratório de Engenharia de Software. Objetivo do curso. Turmas K/L Aula 1

Aula 11 Introdução ao Java Script

Introdução à Programação para Dispositivos Móveis

Sistema SGPA-IFSP. Manual de Instalação

Introdução ao Desenvolvimento de

Juliana Gonçalves da Costa

Desenvolvimento Web II

DESVENDANDO O FRAMEWORK ANGULARJS 1. Ricardo Wiesner 2, Gerson Battisti 3.

Informática Parte 25 Prof. Márcio Hunecke

SOFTWARE DE GERENCIAMENTO DE

GERAÇÃO DE ARQUIVOS DE SCRIPT EM PHP. Acadêmico: Leonardo Sommariva Orientador: Alexander Roberto Valdameri

Web Services REST JAX-RS

Ricardo R. Lecheta. Novatec

Padrões de codificação Java (JSF)

Arquitetura do servidor por Sprint 1 e Sprint 2

Primeiros Passos para o Desenvolvimento de Aplicações Móveis na Plataforma Android. Odette Mestrinho Christian Reis 1

Algoritmos e Programação

DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade KDE/IFBA

1ª FECITI - FEIRA MUNICIPAL DE CIÊNCIA E TECNOLOGIA E INOVAÇÃO DE RONDONÓPOLIS

Instalando Apache Solr no Mac OSX

Módulo II Arquitetura em Camadas

Guilherme Fernando Gielow

O CMS JOOMLA! UM GUIA PARA INICIANTES

Introdução ao Desenvolvimento de Aplicativos Android

SISTEMA PARA A GESTÃO DE RESERVAS DOS EQUIPAMENTOS DE UMA EMPRESA DE TI COM INTEGRAÇÃO DOS USUÁRIOS DO ACTIVE DIRECTORY

Arquitetura em Camadas

Introdução ao Javascript

GROOVY. Diogo Eládio Igor

ESET Secure Authentication

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADO AO GERENCIAMENTO DE INFORMAÇÃO DE TRANSPORTE URBANO

Módulo I - Introdução. Faculdade Christus Sistemas de Informação 24/09/2010. Carlos Eugênio Torres Engenheiro de Informática

Introdução ao GAM. Agora queremos aumentar a Segurança da aplicação, tanto na parte web como a de Smart Device. Page1

front-end development curso

Acelere a inovação simplificando o Desenvolvimento de Apps Fiori e Leonardo

TUTORIAL INTEGRAÇÃO SPRING, HIBERNATE E MYSQL

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER utilizando o Eclipse Galileo Modelling Tools

DISTRIBUINDO SUA APLICAÇÃO

>>> RESTful API >>> Com Node.js e Restify. Name: Anderson Pimentel Date: 19 de Março de

Introdução à Programação para Dispositivos Móveis

Autores. Carlos Theophilo Latsch Cherem Maurício Costa

Android OLÁ MUNDO MÓVEL. Prof. Dr. Joaquim assunção.

Criação de um novo projeto no Eclipse utilizando Maven

CURSO DE TÉCNICO DE INFORMÁTICA - PLANO DE DISCIPLINA/2016 PROGRAMAÇÃO PARA MODELAGEM DE SISTEMA

COLOSSUS DESENVOLVIMENTO DE FERRAMENTA CASE PARA APOIO A CRIAÇÃO DE SISTEMAS WEB UTILIZANDO FRAMEWORKS PHP COMO MODELO E BANCO DE DADOS MYSQL RESUMO

Python para web com Flask. #PythonAmazonas

Alura Ensino Online. Rua Vergueiro, 3185, 8º andar, São Paulo, SP

UMA INTERFACE DE GERENCIAMENTO DE REDES DEFINIDAS POR SOFTWARE

Breve introdução. Uma breve introdução. Simplicidade e Poder. Rápido Dinâmico Robusto

Guia DigiAtlas. Sobre o projeto:

ADIANTI FRAMEWORK PARA PHP

SOOS. Simple Organize Office System INDUSTRIA 4.0

COMUNICADO. Brasília, 07 de novembro de Jorge Almeida Guimarães Diretor Presidente

Gustav Dallmann Júnior

TCC - LagarLottery. Desenvolvimento de um software para jogadores de loterias. Aluno: Euclides Pinheiro de Melo

Desenvolvimento Java com ferramentas IBM

JBoss Seam. Vinicius Senger Co-fundador Globalcode Alberto J Lemos (Dr. Spock) Instrutor Globalcode. Globalcode Open4Education

Laboratório 01 NetBeans

Algoritmos e Programação

Utilizando o Framework SubMacro no Desenvolvimento de Aplicações Java para Internet. Kleber Taffarel Novembro de 2008

AVISO Nº 02 - RETIFICAÇÃO. A Companhia de Processamento de Dados do Estado do Rio Grande do Sul PROCERGS, torna público, por este Aviso, o que segue:

Oportunidades de trabalho em TI&Telecom Instituto Eldorado - Campinas

ALUNO: RONI FABIO BANASZEWSKI

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

Augusto Roselli

front-end & responsive web development

modelos, bancos de dados e active record

MANUAL DE INSTALAÇÃO DA WIZARD - VIMET

M V C P R O F. M E. H É L I O E S P E R I D I Ã O

Escrito por Neri Neitzke Qua, 21 de Dezembro de :34 - Última atualização Dom, 02 de Abril de :04

Transcrição:

Superintendência de Informática - SINFO/UFRN Avaliação de Frameworks de Produtividade para aplicações CRUD Leonardo René Campos Analista de TI

Agenda 1. Introdução 2. Objetivos 3. Critérios de Avaliação 4. Escolha dos Frameworks 5. "Metendo a mão na massa" 6. Considerações finais e próximas etapas 7. Bate-papo para troca de experiências

Introdução Algumas demandas específicas de novos sistemas são apenas um conjunto de CRUDs Número pequeno de usuários Baixa necessidade de manutenção Por que implementar numa arquitetura robusta como a dos SIGs?

Objetivos Investigar soluções alternativas para implementação de sistemas web com foco na agilidade e produtividade do desenvolvedor Fazer uma pesquisa preliminar de tecnologias apropriadas Estabelecer critérios para a tomada de decisão Avaliar pontos favoráveis de cada solução

Frameworks Candidatos Java Não-Java

Critérios de Avaliação Complexidade do Framework Facilidade de Uso Experiência prévia dos colaboradores Rapid application prototyping e pesquisadores da SINFO Throughput/Escalabilidade Manutenção de código/atualizações Curva de aprendizado necessária UX (User Experience), Look and feel Familiaridade das tecnologias/ Documentação & Comunidade ferramentas envolvidas Ecosistema do Framework Testabilidade Segurança

All rights reserved. 2013 ZeroTurnaround OÜ Comparativo Geral

Resultado Geral

Ranking para aplicações do tipo CRUD Legenda: H - Alta importância - Peso 2 M - Média importância - Peso 1 L - Baixa importância - Peso 0

Ranking para aplicações do tipo CRUD

Os escolhidos para a nossa avaliação

www.playframework.com Play Framework

Play Framework Sem reboot: basta alterar o código e dar refresh na página REST: aplicações RESTful por padrão Templates: Sistema eficiente de templates Console: Crie aplicações e faça ajustes no próprio console MVC: Model e Controllers escritos em Java ou Scala, Views em HTML + Scala Sistema de build e gerenciamento de dependências: sbt (http://www.scalasbt.org/)

Play Framework - Kickstart 1. Download do Typesafe Activator (https://typesafe.com/get-started) 2. Descompactar e adicionar ao PATH do sistema 3. Executar $ activator ui, depois acessar http://localhost:8888 OU 4. Executar $ activator new nome-da-aplicacao nome-do-template Ex: $ activator new my-first-app play-java

Play Framework - CRUD Criar formulários e listagens HTML+CSS+Scala Utilizar os conceitos REST para definir as ações de Create, Retrieve, Update, Delete Módulos para scaffolding de CRUD não suportados oficialmente (na versão atual - 2.4.x)

Play Framework - Considerações Bastante complexo Vem com o Netty, sbt, Akka (engine de templates Scala) e vários outros módulos embutidos Enfatiza convenção ao invés de configuração, fazendo muita coisa automaticamente, o que às vezes faz nos sentirmos "meio perdidos" Requer conhecimento das ferramentas/linguagens utilizadas por baixo dos panos para solução de eventuais problemas Incompatibilidade de versões

grails.org Grails Framework

Grails Framework Groovy: linguagem dinâmica que roda na JVM. Bastante similar ao Java. Construído sobre tecnologias Java estabelecidas como Spring e Hibernate Convenções ao invés de Configurações Geração de CRUD s nativa (comando generate-all) Validação a partir das classes de entidade (ou de domínio) Live Reloading: sem reboot do servidor de aplicação Excelente Documentação (http://grails.org/doc/latest/) Gradle utilizado como ferramenta de build/gerenciamento de dependências

Grails Framework - Kickstart GVM (the Groovy environment Manager) $ cd helloworld $ curl -s get.gvmtool.net bash $ grails $ source "$HOME/.gvm/bin/gvminit.sh" grails> create-controller hello $ gvm install grails grails> run-app $ grails -version grails> test-app $ grails create-app helloworld

Grails Framework - CRUD $ grails generate-all $ grails generate-controller $ grails generate-views

Grails Framework - Considerações Grails adiciona uma camada de abstração sobre o Spring MVC e o Hibernate Projeto gerado automaticamente possui alguns templates básicos de views e CSS como ponto de partida Plugins permitem integração com frameworks JavaScript populares como jquery e Bootstrap Excelente documentação, bastante completa e de fácil compreensão Vem com o Tomcat, Gradle e várias outras ferramentas já embutidas

Minha escolha final: Grails Próximas etapas: Desenvolver um projeto-piloto Avaliar eficiência/produtividade