Artigo WebMobile 9 - Desenvolvendo aplicações Web com framework MIOLO

Artigo Originalmente publicado na WebMobile 9.

Esse artigo faz parte da revista WebMobile edição 09. Clique aqui para ler todos os artigos desta edição

Desenvolvendo aplicações web com o framework MIOLO

A necessidade de desenvolver software de qualidade, aproveitando a tecnologia web e o paradigma orientado a objetos, possibilitou o surgimento de soluções conhecidas como frameworks para desenvolvimento. Um framework provê uma solução para uma família de problemas semelhantes, sendo flexível e extensível para permitir a construção de várias aplicações com menor esforço, especificando apenas as particularidades de cada aplicação.

Este artigo apresenta o MIOLO, um framework para desenvolvimento de aplicações web e orientadas a objetos, descrevendo suas principais funcionalidades e arquitetura. O artigo ainda apresenta os passos necessários para a construção de uma aplicação web utilizando este framework através de um estudo de caso. Este contempla a configuração do ambiente, a construção das classes de domínio e de interface da aplicação, a estruturação do modelo de dados e o mapeamento objeto-relacional.

O que é o MIOLO?

O MIOLO é um framework que começou a ser desenvolvido pela UNIVATES (Unidade Integrada Vale do Taquari de Ensino Superior) e atualmente está sendo desenvolvido em conjunto com a UFJF (Universidade Federal de Juiz de Fora). Esse framework foi desenvolvido com base nas linguagens PHP e JavaScript, utilizando conceitos de POO (Programação Orientada a Objetos).

A construção de sistemas através desse framework é baseada na implementação de módulos. Cada módulo pode ser configurado de forma independente, propiciando uma segurança maior, pois os administradores de cada módulo não precisam ter acesso à configuração global do framework. Além disso, a manutenção da aplicação fica facilitada, uma vez que módulos independentes propiciam que os membros da equipe de desenvolvimento atuem simultaneamente em diferentes módulos.

Funcionalidades básicas

Visando facilitar a criação de módulos através do framework MIOLO, algumas funcionalidades básicas são disponibilizadas. Essas funcionalidades são ortogonais aos módulos, ou seja, todo módulo herda automaticamente as funcionalidades oferecidas pelo framework. São elas:

·        Autenticação de usuários;

·        Controle de permissão de acesso;

·        Camada de abstração para acesso a banco de dados;

·        Gerenciamento de sessões e manutenção de log;

·        Tratamento da página como um webform, com captura de eventos;

·        Validação de entrada em formulários;

·        Customização de layout e temas;

·        Geração de arquivos em PDF.

Um ponto de destaque do MIOLO é que ele implementa, em uma de suas camadas, a persistência de objetos utilizando uma camada de abstração para acesso ao banco de dados (camada DAO – Data Access Objects). Atualmente, a camada DAO fornece acesso aos bancos de dados MySQL, PostgreSQL, Firebird, SQLite, SQL Server e Oracle.

Arquitetura

O MIOLO apresenta uma arquitetura baseada em camadas, conforme apresentado na Figura 1. Esta arquitetura é baseada no modelo MVC que enfatiza a independência entre os componentes da camada de domínio da aplicação (o modelo), da camada de apresentação (as visões) e da camada de aplicação (os controladores). As camadas que compõem o MIOLO são:

·        Interface com o Usuário (User Interface - UI): classes do framework responsáveis por adicionar os componentes visuais;

·        Handler: classes que representam a parte funcional da aplicação, criadas pelo desenvolvedor para fazer o tratamento das requisições dos clientes. Acessam a camada de negócios para desempenhar suas funções e usam a camada UI para definir a saída para o cliente;

·        Negócio (Business): classes criadas pelo desenvolvedor para representar o domínio da aplicação (as regras de negócio). São usadas pelas camadas UI e handlers, acessando o banco de dados através da camada BD;

·        BD: classes do framework responsáveis por abstrair o acesso às bases de dados, tornando as classes da camada "

[...] continue lendo...

Artigos relacionados