Pular para o conteúdo principal

Postagens

Como escolher um Framework para o meu projeto ?

Olá pessoal, hoje iremos abordar um assunto muito interessante, que é a escolha de um Framework , com certeza muitos desenvolvedores e arquitetos já ficaram com dúvidas na hora de tomar esta decisão tão importante, e que pode influenciar no sucesso do projeto. Vou listar algumas práticas e experiências que adquiri nesses últimos anos, onde fui responsável por estas escolhas, iremos focar na plataforma Java, mas o processo de definição e escolha de APIs e Frameworks,   pode ser adotado em qualquer outra linguagem, pois são passos que independente de tecnologia, ajudam a tomar as melhores decisões. Devemos Usar um Framework ? A necessidade do mercado por softwares  evoluiu muito com o passar dos anos, hoje temos sistemas operando em quase todas as áreas: Financeira, Médica, Jurídica, entre outras, com toda essa demanda, o setor de desenvolvimento teve que evoluir para acompanhar a alta procura por sistemas em um curto prazo. Os Frameworks entram nesse ponto...

Versionamento de Sistemas, Artefatos e Componentes

Olá pessoal, hoje iremos abordar um assunto voltado para arquitetura de sistemas, onde vamos analisar como realizar um bom versionamento de artefatos e componentes utilizando o Maven. Os Artefatos Quando desenvolvemos um sistema Java, iremos ao final gerar algum tipo de artefato para a implantação, seja ele um  JAR , WAR , ou EAR . Ao utilizar o Maven em nossos projetos, temos o chamado  GAV  no arquivo pom.xml , que são itens obrigatórios para todo tipo de artefato, o GAV é a abreviação de: G (<groupId>): Grupo de trabalho, aqui é um local onde podemos armazenar um grupo artefatos, que fazem parte de um sistema final, exemplo: br.com.cvinicius.erp; A (<artifactId>): Identificação do artefato gerado, este é o nome que terá o artefato, exemplo: erp-web; V (<version>): Versão do artefato, define a versão do artefato gerado, geralmente representado por casas decimais, exemplo: 1.0.0. O Que é Versionamento O versionamen...

AngularJS - Conhecendo o Framework

Olá pessoal, hoje iremos começar uma série de tutoriais falando sobre o AngularJS, que é um framework JavaScript que veem se tornando muito popular entre os frameworks de front-end . O   Framework AngularJS O AngularJS é um framework JavaScript mantido pelo Google para o desenvolvimento de aplicações ricas para Web, sua principal característica é a forma de trabalho, onde suas diretivas estendem os componentes do HTML utilizando marcações.  Para detalhes sobre o AngularJS podemos visitar o site oficial, onde também encontramos exemplos, links para downloads , cursos, etc. Site oficial:  https://angularjs.org/ Site com tutoriais e exemplos:   http://www.w3schools.com/angular/ Começando com AngularJS Como qualquer outro framework JavaScript, tudo começa com uma importação do arquivo principal do framework : <!DOCTYPE html> <html> <head> <title> Exemplo AngularJS </title> <script src= "http...

Compressão de CSS e JavaScript utilizando YuiCompressor e Maven

Olá pessoal, hoje iremos abordar um assunto muito interessante que é a compressão de    recursos   estáticos de uma aplicação web. O que são Recursos Estáticos Em quase todas as aplicações web sempre há os arquivos   estáticos, eles são principalmente HTML, CSS e JavaScript, estes tipos de arquivos não mudam seu estado entre as chamadas ao servidor, ou seja, eles são sempre os mesmo independente do número de  requests  que sejam feitos ao servidor Web. Antes de detalhar a compressão dos arquivos estáticos, vamos analisar alguns pontos importantes ao importar e utilizar códigos JavaScript e CSS em nossas páginas: Arquivos CSS externos devem ser importados dentro da tag  <head> , assim evitamos o problema de  flash effect ; Arquivos JavaScript externos devem ser importados antes do fechamento da tag  <body> , assim não temos problemas no momento da renderização da tela; Sempre que possível agrupe seus arquivos, para evitar ...

Replicação de sessão com VRaptor 3.5 e Cluster de Tomcat 7

Olá pessoal, hoje vou mostrar detalhes de uma aplicação desenvolvida com VRaptor rodando em um cluster de Tomcat 7. Características da Aplicação A aplicação foi desenvolvida utilizando: JDK 6; VRaptor 3.5.3; Spring 3.0.5, como provider de IoC/DI; Banco de dados PostgreSQL. Características do Ambiente O ambiente foi projetado com:  Apache Web Server 2.2.22; Sendo responsável pelo balanceamento de carga; Tomcat 7.0.54; JVM versão 6; Sendo este um cluster de 2 nós. Regras para replicação de sessão em Java EE Para que possamos trabalhar com cluster em um ambiente Java EE, a aplicação deve seguir algumas regras, que são as seguintes: A aplicação deve ter a tag <distributable /> no deployment descriptor ; Todos os dados que serão replicados, devem implementar a interface java.io.Serializable ; Para armazenar ou alterar um objeto na sessão, sempre devemos invocar o método setAttribute .  Seguindo estas regras, podemos afirm...

Maven 3 com Java EE - ClassFormatError: Absent Code attribute in method that is not native or abstract in class file

Olá pessoal, hoje iremos aprender a solucionar um erro estranho que acontece quando trabalhamos com projetos Maven e Java EE. Especificação Java EE Como já sabemos, no Java EE tudo segue uma especificação, e cada uma delas possui uma identificação que é chamada de JSR (Java Specification Requests) , elas possuem implementações de diferentes fornecedores, um exemplo disso é a JPA (Java Persistence API) , que é uma especificação para mapeamento e persistência de objetos relacionais, ela possui várias implementações diferentes, entre elas estão: Hibernate, TopLink, EclipseLink, etc. Maven e Projetos Java EE Como vimos nos outros tutoriais sobre o Maven, o desenvolvimento e as configurações do projeto ficam muito simples quando o utilizamos, c om Maven podemos setar várias configurações diferentes como:  versão de compilação, dependências, plugin para automatizar processos, etc. Dependência do Java EE Em um projeto Java EE geralmente trabalhamos com várias...

Gerenciamento de Transações com EJB - Parte 2

Olá pessoal, continuando a falar sobre transações, agora iremos ver como aplicar transações nos objetos EJB. Visão Geral sobre EJB Os EJBs são objetos que tem seu ciclo de vida gerenciados pelo Container, ou seja, ele é o responsável por criar, gerenciar, e encerrar este tipo de objeto, o Container prove vários serviços para objetos EJBs, tais como: transações, segurança, acesso concorrente, acesso remoto, entre outros. Os EJBs estão divididos basicamente em 2 tipo: Session Beans:  Este tipo expõem métodos para serem acessados local ou remotamente, eles são divididos em 3 subtipos: Stateless: Este não armazena estado entre as chamadas, ou seja, quando o cliente faz uma chamada a um método de um EJB Stateless, a instância que será disponibilizada pelo Container veem de um pool de objetos, onde a cada chamada um objeto diferente pode atender a solicitação; Stateful: Este armazena estado entre as chamadas, ou seja, quando um cliente faz uma chamada a um método de ...