MIOLOv2. Ely Edison Matos ely.matos@ufjf.edu.br fev2005



Documentos relacionados
DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

Sistemas para internet e software livre

Framework MIOLO 2.5 Tutorial: Criando um módulo

Programando em PHP. Conceitos Básicos

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Microsoft Access XP Módulo Um

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

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

Documento de Arquitetura

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

Material de Apoio Configuração Auditoria Pós

18/04/2006 Micropagamento F2b Web Services Web rev 00

Fonte: - Illustration by Gaich Muramatsu

Aula 03 - Projeto Java Web

Tutorial - Programando com o MIOLO

INTRODUÇÃO AO DESENVOLVIMENTO WEB

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS -

Programação Web Prof. Wladimir

SIMEC Sistema Integrado de Planejamento, Orçamento e Finanças

Introdução ao Active Directory AD

Manual Captura S_Line

Sistemas Operacionais 3º bimestre. Dierone C.Foltran Jr.

Criando Frameworks Inteligentes com PHP. Uma abordagem prática: vantagens, aplicações e procedimentos.

Programação Web com Webdev 19 Julio Cesar Pedroso Conteúdo

Aplicação Prática de Lua para Web

Integração com o Ambiente Virtual de Aprendizagem Moodle

CONTEÚDOS PROGRAMÁTICOS DA ACADEMIA

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

MANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Procedimentos para Instalação do SISLOC

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

UFG - Instituto de Informática

MIOLO 2.0 Overview. Ely Edison Matos.

Alinhamento Prático Ferramenta ARIS Operação Básica

3 SCS: Sistema de Componentes de Software

DWEB. Design para Web. CSS3 - Fundamentos. Curso Superior de Tecnologia em Design Gráfico

SISTEMA GERENCIADOR DE BANCO DE DADOS

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

Especificação do 3º Trabalho

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Noções de. Microsoft SQL Server. Microsoft SQL Server

Processo Digital Gerir Combustível Manual do Usuário

LINGUAGEM DE BANCO DE DADOS

Cursos de Magento Gugliotti Consulting

Procedimentos para Instalação do Sisloc

Roteiro 2 Conceitos Gerais

Visualizando relatórios pelo NeoNews Player. Documentação para Usuário Final

formação em WeB developer

Escrito por Sáb, 15 de Outubro de :19 - Última atualização Seg, 26 de Março de :32

Procedimentos para Reinstalação do Sisloc

Manual do Visualizador NF e KEY BEST

Projeto SIGA-EPT. Manual do usuário Módulo Requisição de Almoxarifado SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

BI Citsmart Fornece orientações necessárias para instalação, configuração e utilização do BI Citsmart.

Novas funcionalidades do RAD Studio 2007 em aplicações ASP.NET 2.0

Voltado para novos usuários, este capítulo fornece uma instrução para edição de Leiaute do SILAS e suas funções.

POLÍTICA DE PRIVACIDADE SEGUROS UNIMED


MANUAL DE UTILIZAÇÃO

Módulo 6: Linguagem de Programação IV 6.1. Introdução 6.2. Bases de Dados Visão Estrutural SGBD: Sistema de Gestão de Bases de Dados

Personalizações do mysuite

Footprints Service Core. Manual de uso do sistema

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

GRRF GUIA DE RECOLHIMENTO RESCISÓRIA DO FGTS PROCEDIMENTOS NA FOLHA CONSISA SGRH

HIBERNATE EM APLICAÇÃO JAVA WEB

Boletim Técnico. Criação de formulário dinâmico para o módulo WEB. Produto : TOTVS Web,

PROGRAMAÇÃO MANUAL DE INSTRUÇÕES SEJA BEM VINDO VERSÃO /01/2013 UDS SOLUÇÕES DIGITAIS

Menus Personalizados

Documento de Análise e Projeto VideoSystem

Criando variáveis via URL

CONFIGURAÇÃO Cobian Backup Programa gratuito e de qualidade para realizar seus backups automáticos

Trabalho de Sistema de Informações. Instalação e configuração aplicativo Ocomon

COMO FUNCIONA UM FORMULÁRIO

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -HTML 5: ARMAZENAMENTO DE DADOS (CLIENTE) Prof. Angelo Augusto Frozza, M.Sc.

Gerador de aplicativos Oracle PL/SQL WEB baseado na estrutura das tabelas do. Wagner da Silva Orientando Prof. Alexander Roberto Valdameri Orientador

Rational Requirements Composer Treinamento aos Analistas de Qualidade e Gestor das Áreas de Projeto

Tema UFPel 2.0 WP Institucional Guia de Opções de Personalização

Curso de Aprendizado Industrial Desenvolvedor WEB

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

SSE 3.0 Guia Rápido Parametrizando o SISTEMA DE SECRETARIA Nesta Edição Configurando a Conexão com o Banco de Dados

Módulo e-rede Magento v1.0. Manual de. Instalação do Módulo. estamos todos ligados

MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA

Desenvolvendo plugins WordPress usando Orientação a Objetos

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?

A. O Sindepark. 1. História

Cenários do CEL. Acessar ao sistema

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

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

Conteúdo Programático de PHP

Tutorial: Joomla! Explicar o gerenciamento de conteúdos por meio do Joomla! 14 de novembro de 2014 Fernando Pablos Versão 1.0

Mercado Eletrônico Instalação e Atualização MEConnect2

Guia do RepositorioDocumento

Version Notes (Notas da versão) Versão

Desenvolvimento de um CMS 1 para a criação e publicação de web sites acessíveis por deficientes visuais.

INTRODUÇÃO 2 ACESSO AO SIGTECWEB 3 TEMPO DE CONEXÃO 5 NAVEGAÇÃO 7 BARRA DE AÇÕES 7 COMPORTAMENTO DOS BOTÕES 7 FILTROS PARA PESQUISA 8

Transcrição:

MIOLOv2 Ely Edison Matos ely.matos@ufjf.edu.br fev2005

OqueéoMIOLO? Framework para desenvolvimento de aplicações web Controles de interface com o usuário escritos em PHP e renderizados em HTML Autenticação de usuários Controle de permissão de acesso Camada de abstração para acesso a bancos de dados Gerenciamento de sessões 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 PDF

Arquitetura

Camadas MIOLO Representa o framework, expondo métodos que fazem a integração entre as diversas camadas. Implementa o padrão Façade. User Interface (UI) São as classes do framework responsáveis pela geração de arquivos, renderização dos controles HTML e da criação dos scripts javascript enviados ao cliente, com base no tema em uso Handlers São as classes que representam a parte funcional da aplicação, criadas pelo desenvolvedor para fazer o tratamento dos dados enviados pelo cliente. Acessa a camada de negócios para desempenhar suas funções e usa a camada UI para definir a saída para o cliente. Estão localizadas no diretório handlers de cada módulo.

Camadas Business São as 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 São as classes do framework responsáveis por abstrair o acesso às bases de dados, tornando as classes da camada Business independentes do SGBD usado.

Diretórios

Arquivosprincipais <miolo>/html/index.html <miolo>/html/index.php <miolo>/etc/miolo.conf <miolo>/classes/support.inc <miolo>/html/scripts/common.js <miolo>/classes/miolo.class

Conceitosbásicos Aplicação Os sistemas são construídos através do desenvolvimento de módulos. Oconjunto de módulos é chamado aplicação. Assim, de forma geral, cada instalação do framework está associado a uma única aplicação, composta por umou vários módulos integrados.

Conceitosbásicos Módulo Um módulo é um componente de uma aplicação. Um módulo reflete um sub-domínio da aplicação, agregando as classes de negócio que estão fortemente relacionadas e provendo o fluxo de execução (handlers) e a interface com o usuário (forms, grids, reports) para se trabalhar com tais classes. Um módulo é caracterizado por um nome, usado como subdiretório do diretório <miolo>/modules. Cada módulo tem uma estrutura de diretórios padrão, que é usada pelo framework para localizar os recursos Possui seu próprio arquivo de configuração

Conceitosbásicos Controles (Widgets) Os controles são componentes de interface como usuário, usados na renderização das páginas html. Umcontrole pode agregar outros controles e tempropriedades e eventos associados a ele. Página A página é umcontrole específico (instanciado da classe MPage) que serve de base para a renderização de uma página HTML.

Conceitosbásicos Tema Um tema é um controle específico (instanciado da classe Theme) que trabalha como um container para os controles que vão ser renderizados na página HTML. Cada tema define elementos, e cada elemento agrega controles visuais específicos. Um tema é associado a uma folha de estilos (um arquivo CSS) que define o posicionamento, as dimensões e a aparência dos controles a serem renderizados. Podem ser definidos vários temas (cada um com seu próprio diretório no diretório <miolo>/classes/ui/themes), embora geralmente cada módulo utilize apenas um tema.

Conceitosbásicos Handler Um handler é uma instância da classe Handler. Sua função é tratar a solicitação feita pelo usuário através do browser. Em cada módulo (no diretório <miolo>/modules/<modulo>/handler) é definida uma classe Handler<Modulo>, que é instanciada pelo MIOLO quando é feita a análise da solicitação do usuário. O controle é então passado para esta classe, que inclui o handler específico para tratar a solicitação. O handler atua, assim, no papel de controller, fazendo a integração entre as regras de negócio e a interface com o usuário.

Conceitosbásicos Namespace Namespaces são apenas aliases para diretórios. Oobjetivo do uso de namespaces é a possibilidade de mudança física dos arquivos, sema necessidade de se alterar o código já escrito. Os namespaces são usados basicamente no processo de importação (include) de arquivos, emtempo de execução.

Desenvolvimento Modelagem das classes e do banco de dados Criação da estrutura do módulo, com seus subdiretórios Definição do tema a ser utilizado (um já existente, ou a criação de um novo tema) Criação de controles específicos para o módulo, caso seja necessário Criação do arquivo de configuração do módulo em <miolo>/modules/< modulo> /etc/module.conf Criação da classe handler em <miolo>/modules/<modulo>/handler/handler.class Criação do handler principal em <miolo>/modules/<modulo>/handler/main.inc Criação das classes de negócio em <miolo>/modules/<modulo>/classes caso existam Criação dos formulários em <miolo>/modules/<modulo>/forms caso existam

URL http://host.dominio/index.php?module=<module>&actio n=<action>[& lista de parâmetros] Esta estrutura é generalizada para acessar: A - Handlers http://host.dominio/index.php?module=common&action=main :login B Arquivos Imagens: http://host.dominio/index.php?module=common&action=html:i mages:save.png PDF: http://host.dominio/index.php?module=common&action=html:f iles:exemplo.pdf Texto: http://host.dominio/index.php?module=common&action=html:f iles:exemplo.txt CSS: http://host.dominio/index.php?module=miolo&action=themes: kenobi:theme.css

Ciclodevidadapágina Miolo::RequestHandler() New Mcontext Se for arquivo Miolo::SendFile() Senão Miolo::Init() Miolo::Handler()

Ciclodevidadapágina Miolo::Handler() page = new MPage(); GetTheme(); GetPainter(); CheckLogin(); InvokeHandler($startup,'main'); page->generate();

Ciclodevidadapágina Miolo::InvokeHandler(module,action) handler = GetHandler($module); handler->dispatch($action); Handler::Dispatch(action) Define global vars Include arquivo.inc emmodule/handlers Handler típico ui = $MIOLO->GetUI() form= ui->getform($module, formname ) theme->setcontent($form) InvokeHandler again...

Webforms Cada página gerada pelo processamento da seqüência de handlers, constitui-se em um único formulário html, mesmo que vários controles estejam presentes na página É importante observar, portanto, que os controles colocados na página devem ter nomes distintos, mesmo que estejam em objetos diferentes (por exemplo, os botões de submit de duas entradas de dados diferentes) Como padrão, os formulários usados pelos handlers são armazenados em um arquivo chamado <nome_do_form>.class, que contém a definição da classe do formulário (derivada da classe Form), com os métodos dos formulário e os tratadores dos eventos (tipicamente as funções para tratar os eventos OnClick dos botões de submit)

Webforms $this->page->ispostback Para testar se a página está sendo chamada a primeira vez, ou se ocorreu um post do formulário $this->page é uma instância da classe MPage, que representa as definições para a página atualmente sendo executada Para usar as variáveis cujo estado foi mantido entre round-trips, usamos os métodos do objeto State Eventos Os botões do tipo submit são programados para gerar eventos quando clicados O nome do evento tem o formato <nome_do_botão>_click Pode-se usar o método AttachEventHandler, para definir um outro nome para o método que vai tratar o evento

Webforms EventHandler No processamento do formulário, quando a página é submetida, usa-se o método EventHandler para que o manipulador do evento (ummétodo do formulário que estejamos tratando) seja executado Ométodo EventHandler tambémtrata eventos forçados através da URL (quando é usado o método GET, ao invés do POST). Umevento na URL é definido através da variável event http://.../handler.php?module=...&action=...&event=btnpost: click

Temas Denominamos tema, no ambiente MIOLO, à definição do layout da página html que será enviada para o cliente O tema pode ser considerado como um container lógico para a página, sendo formado por elementos visíveis (o conteúdo da tag body, do html) por elementos não-visíveis (os arquivos CSS, os scripts, as tag meta do html) A definição e manipulação do tema é sustentada por algumas classes internas ao framework MIOLO O tema portanto deve definir não apenas como a página será dividida, mas também como os controles html serão renderizados

Temas Title Navbar Menus Content StatusBar Cada uma destas áreas é definida por um elemento do Tema (classe ThemeElement) e manipulada através dos métodos expostos pela classe Theme

Temas Cada ThemeElement é renderizado como um controle HTML Div, com um atributo id ou class, definido no arquivo theme.css relativo ao tema

Temas Os handlers são responsáveis por gerar o conteúdo de cada uma das áreas visíveis Os elementos não-visíveis são gerados pelo framework A renderização do conteúdo do tema em uma página html é feita através da chamada ao método $page->generate() Para esta renderização são utilizados a classe Theme (theme.class) para os elementos do tema e o arquivo com a folha de estilo CSS (theme.css) Definidos no diretório <miolo>/classes/ui/themes/<nome do tema> ou em <miolo>/modules/<modulo>/ui/themes/<nome do tema>

Módulos Todos os sistemas ficam localizados abaixo do diretório modules Cada módulo ou sistema, para possibilitar o total reaproveitamento de código (seja de formulários, menus ou instruções SQL), deve separar essas informações, colocandoos em seus respectivos diretórios

Variáveisglobais As seguintes variáveis são definidas como globais sendo disponibilizadas para todos os módulos chamados pelo Miolo $MIOLO: acesso a instancia da classe principal do framework $context: acesso ao objeto MContext $action: url completa do handler em execução $item: campo item da url atual $session: acesso ao objeto session (sessão atual) $page: acesso ao objeto MPage $url: url completa do handler em execução $theme: acesso ao objeto Theme $auth: acesso ao objeto auth $perms: acesso ao objeto perms $navbar: acesso ao objeto NavigationBar (barra de navegacao) $module: nome do módulo do handler em execução (ex:

ToDo s Em andamento: D ocumentação, documentação, documentação D isponibilizar no C odigolivre ISR (Index-Search-Retrieve) Generalizar o Painter: H T M L, X H T M L, PD F, X M L,... A fazer/estudar/pesquisar: U so de X M L para Forms, Grids e C ontroles. Import/Export de ambientes gráficos - ex. Glade-GT K, QT, D elphi(!?) Retormar o projeto M iolo-id E U so opcional/obrigatório de cookies para controle da sessão Reestruturar procedimentos de Login (A utenticação, criptografia, etc) M ódulo de A dministração/c ommon re-design H erança em classes de negócios Ferramenta para administração do ambiente de produção