Tecnologias e Frameworks

Um resumo das tecnologias incorporadas e utilizadas pelo JMine

Frameworks

Spring

O Spring é um framework utilizado para injeção de dependências e inversão de controle. Provê um container que permite injetar objetos em outros objetos de forma que eles não fiquem fortemente acoplados. Como já dito nessa cartilha, injeção de dependências é uma boa prática e é amplamente utilizada nos produtos da Maps. A injeção pode ser feita via setter ou via construtor e as classes gerenciadas pelo Spring precisam estar em conformidade com o padrão JavaBeans. A BeanFactory é usada para controlar os Spring Beans e a configuração pode ser feita via arquivos XML ou via anotações. Os novos objetos são criados como singletons por padrão mas também é possível configurá-los para ser criado sempre um novo objeto.

Hibernate

Hibernate é um framework para mapeamento objeto-relacional (ORM) escrito em Java. Este framework facilita o mapeamento dos atributos entre uma base tradicional de dados relacionais e o modelo objeto de uma aplicação, mediante o uso de arquivos (XML) ou anotações Java. Na MAPS, é utilizado o uso de anotações.

Além da ajuda em mapear as entidades, o Hibernate é muto útil para a criação de queries utilizando recursos como HQL e Criteria Query. HQL (Hibernate Query Language) provê uma sintaxe parecida com SQL e permite a criação de queries para os objetos mapeados. Criteria é uma forma alternativa ao HQL que provê formas de criar queries através de restrições.

Wicket

Wicket é um framework para desenvolvimento de aplicações web para a linguagem Java. É semelhante ao JSF (JavaServer Faces), porém com algumas vantagens, permitindo a criação de HTMLs mais limpos. É conhecido também pela forte componentização e reaproveitamento desses componentes. Possui uma estrutura hierarquica tanto na marcação quanto no componente, obrigando que essa hierarquia seja garantida em ambas para que a visualização seja produzida.

Web

A maioria dos produtos e projetos dentro da MAPS são Web, com exceção do Luna e dos produtos mobile, e portanto é importante conhecer as tecnologias utilizadas na composição e construção da camada de vizualização dessas aplicações.

HTML

HTML (Hyper Text Markup Language) é uma linguagem de hiper texto, ou seja, texto que produz informações necessárias para a leitura e visualização desse próprio texto. Utiliza da marcação de tags para produzir essa informação visual.

CSS

CSS (Cascade Style Sheet) é uma linguagem de estilo, utilizada para descrever como a marcação do texto HTML deve ser exibida. Não é uma linguagem dinâmica e é altamente hierarquica, o que pode dificultar escrever um estilo para a aplicação. Existem ferramentas que auxiliam na construção de CSS de forma que pareça algo mais dinâmico, como o SASS, que atua basicamente como um compilador de CSS.

JavaScript

JavaScript é uma linguagem de script (interpretada) que é executada pela grande maioria dos browsers. Possui uma grande comunidade e muitas bibliotecas e APIs (como o JQuery) para facilitar o desenvolvimento.