SlideShare uma empresa Scribd logo
Quick Form DataBase
       (QFDB)




     Everaldo Uavniczak
   everaldouav@gmail.com
Cronograma
- O que é?
- Características do Desenvolvimento Web
- Requisitos de uma Aplicação Web
- Etapas do Desenvolvimento Web
- O framework
- Desenvolvendo com o framework
- Status do framework
- Objetos QFDB
- Regras QFDB
- Exemplo de Uso
- Implementações Futuras
O que é? É de comer???
- Framework desenvolvido em PHP 5 (5.2)
- Implementado em OO
- Orientado a Plugins

- Permite desenvolver Aplicações Web
através de “montagem” usando “peças” do
framework

- Licenciado pela Licensa BSD
Características do Desenvolvimento Web


 - Implementados em requisitos vagos
 - Exigem alterações constantes
 - Requerem (re-)implementações em fase de
 produção

 Em geral:
 - Possuem inúmeras semelhanças estruturais e
 praticamente os mesmos requisitos
Requisitos de uma Aplicação Web

- Exibição de conteúdo atualizado

- Interação com usuários (feedback e/ou conteúdo)

- Painel administrativo

- Exibição de relatórios
Etapas do Desenvolvimento Web

- Modelagem (UML)
- Layout (Imagens)
- Layout (HTML)
- Layout (CSS)
- Regras de Negócio server-side (PHP, Python, etc)
- Validação dos Dados client-side (JavaScript)
- Validação dos Dados server-side (PHP, Python,
etc)
- Rotinas de Banco de Dados (MySQL, PG, etc)
- Segurança
O Framework
- Idéia Inicial: Agosto de 2006
- Motivação: Reutilizar códigos entre os projetos e
automatizar seus processos visando ganhar tempo
- Objetivos:
   * Tornar as aplicações multi-database (abstração DB)
   * Geração automática de código HTML e JS
   * Automatizar a validação de dados
   * Automatizar implementações de segurança
   * Permitir adição de plugins carregados
dinamicamente
   * Reduzir o número de arquivos da aplicação
   * Uma única linha alterada para cada
implementação
/quickformdb.php
/quickformdb_init.php
/qfdb_db_interface.php
/qfdb_db_mysql.php
/qfdb_themes_default.php
/objects/
/objects/qfdbobj_text.php
/rules/
/rules/text/qfdbr_text_max.php
/lang/
/lang/
/lang/pt-br/
Desenvolvendo com QFDB
- Modelagem UML
- Layout (Imagens)
- Definições QFDB
- Layuot (HTML)
- Layout (CSS)
- Regras de Negócio server-side (PHP, Python, etc)
- Validação dos Dados client-side (JavaScript)
- Validação dos Dados server-side (PHP, Python,etc)
- Rotinas de Banco de Dados (MySQL, PG, etc)
- Segurança
Status do QFDB
1: Constroi formulário para inserção de
dados
2: Inserir dados no banco de dados
3: Formulário para edição de dados
4: Atualizar dados no banco de dados

5: Geração de relatório

6-9: Status Livre
Objetos QFDB
 Plugins que desempenham as ações do framework

/objects/qfdbobj_*.php
$header[] = 'headdoctype ||| 12345 =>';
$header[] = 'headhtml ||| 12345 => html_lang=pt-br |||
html_xmllang=pt-br';
$header[] = 'headcss ||| 12345 => href=main.css &&&
qfdb.css';
$header[] = 'headicon ||| 12345 =>
href=image/favicon.ico';
$header[] = 'body ||| 12345 => ';
$header[] = 'literal ||| 12345 => content= <div
style="text-align: center;">';
$header[] = 'table ||| 12345 => border=0 ||| cellpadding=2
||| cellspacing=2 ||| class=qfdb_table ||| style=margin:
auto; width: 900px;';
Regras QFDB
 Validam os dados inseridos pelos usuários a
  partir dos Objetos QFDB que definem os
            campos de formulário


/rules/text/qfdbr_text_range.php
$body[] = 'text .... validate=range:::3:::10:::Digite entre
3 e 10 caracteres ';


/rules/text/qfdbr_text_br-cpf.php
$body[] = 'text .... validate=br-cpf:::Digite um CPF
válido';

 As Regras QFDB estão em fase de implementação na versão 0.5
Exemplo de Uso

index.php
qfdb_init.php
pre.php
pos.php
/qfdb_0.5/
/themes/
/themes/base.css
/themes/qfdb.css
/themes/img/
Implementações Futuras

- Regras QFDB (em andamento)

- Restrições por status

- Nicetitle

- Integração com Ajax usando xajax

- QFDB Wizard: Assistente gráfico

- QFDB Debug - rastreador de erros
Perguntas




Maiores informações:
   http://www.qfdb.net/
 everaldouav@gmail.com

Mais conteúdo relacionado

Mais procurados

Java web
Java webJava web
Java web
clauvane1708
 
Arquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieArquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/Mackenzie
Vivaldo Jose Breternitz
 
Mecanismo de busca .NET Core + MongoDB
Mecanismo de busca .NET Core + MongoDBMecanismo de busca .NET Core + MongoDB
Mecanismo de busca .NET Core + MongoDB
Luiz Duarte
 
Azure Cosmos DB - TDC 2017 - São Paulo
Azure Cosmos DB - TDC 2017 - São PauloAzure Cosmos DB - TDC 2017 - São Paulo
Azure Cosmos DB - TDC 2017 - São Paulo
Renato Groff
 
Ruby, Rails, Web - for rails girls Porto Alegre
Ruby, Rails, Web - for rails girls Porto AlegreRuby, Rails, Web - for rails girls Porto Alegre
Ruby, Rails, Web - for rails girls Porto Alegre
Julio Farah
 
Workshop Mundo Senai - Hello, Angular.js
Workshop Mundo Senai - Hello, Angular.jsWorkshop Mundo Senai - Hello, Angular.js
Workshop Mundo Senai - Hello, Angular.js
Fábio Elísio
 
Framework web 02 - 2016
Framework web 02 - 2016Framework web 02 - 2016
Framework web 02 - 2016
André Luiz Forchesatto
 
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
Renato Groff
 
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Renato Groff
 
A importância de padronizar nosso CSS
A importância de padronizar nosso CSSA importância de padronizar nosso CSS
A importância de padronizar nosso CSS
Fernando Henriques
 
Devise
DeviseDevise
Devise
Renato Sousa
 
Técnicas de Programação para a Web
Técnicas de Programação para a WebTécnicas de Programação para a Web
Técnicas de Programação para a Web
Luiz Cláudio Silva
 
CakePHP workshop ifsul
CakePHP workshop ifsulCakePHP workshop ifsul
CakePHP workshop ifsul
Waldemar Neto
 
Aula 8 php (intro, get e post)
Aula 8   php (intro, get e post)Aula 8   php (intro, get e post)
Aula 8 php (intro, get e post)
andreluizlc
 
Workshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseWorkshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + Mongoose
Luiz Duarte
 
Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDB
Luiz Duarte
 
Aula 5 java script
Aula 5   java scriptAula 5   java script
Aula 5 java script
andreluizlc
 
Azure Cosmos DB - Azure Weekend SP - Outubro/2017
Azure Cosmos DB - Azure Weekend SP - Outubro/2017Azure Cosmos DB - Azure Weekend SP - Outubro/2017
Azure Cosmos DB - Azure Weekend SP - Outubro/2017
Renato Groff
 
Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018
André Luiz Forchesatto
 

Mais procurados (19)

Java web
Java webJava web
Java web
 
Arquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieArquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/Mackenzie
 
Mecanismo de busca .NET Core + MongoDB
Mecanismo de busca .NET Core + MongoDBMecanismo de busca .NET Core + MongoDB
Mecanismo de busca .NET Core + MongoDB
 
Azure Cosmos DB - TDC 2017 - São Paulo
Azure Cosmos DB - TDC 2017 - São PauloAzure Cosmos DB - TDC 2017 - São Paulo
Azure Cosmos DB - TDC 2017 - São Paulo
 
Ruby, Rails, Web - for rails girls Porto Alegre
Ruby, Rails, Web - for rails girls Porto AlegreRuby, Rails, Web - for rails girls Porto Alegre
Ruby, Rails, Web - for rails girls Porto Alegre
 
Workshop Mundo Senai - Hello, Angular.js
Workshop Mundo Senai - Hello, Angular.jsWorkshop Mundo Senai - Hello, Angular.js
Workshop Mundo Senai - Hello, Angular.js
 
Framework web 02 - 2016
Framework web 02 - 2016Framework web 02 - 2016
Framework web 02 - 2016
 
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
 
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
 
A importância de padronizar nosso CSS
A importância de padronizar nosso CSSA importância de padronizar nosso CSS
A importância de padronizar nosso CSS
 
Devise
DeviseDevise
Devise
 
Técnicas de Programação para a Web
Técnicas de Programação para a WebTécnicas de Programação para a Web
Técnicas de Programação para a Web
 
CakePHP workshop ifsul
CakePHP workshop ifsulCakePHP workshop ifsul
CakePHP workshop ifsul
 
Aula 8 php (intro, get e post)
Aula 8   php (intro, get e post)Aula 8   php (intro, get e post)
Aula 8 php (intro, get e post)
 
Workshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseWorkshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + Mongoose
 
Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDB
 
Aula 5 java script
Aula 5   java scriptAula 5   java script
Aula 5 java script
 
Azure Cosmos DB - Azure Weekend SP - Outubro/2017
Azure Cosmos DB - Azure Weekend SP - Outubro/2017Azure Cosmos DB - Azure Weekend SP - Outubro/2017
Azure Cosmos DB - Azure Weekend SP - Outubro/2017
 
Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018
 

Semelhante a Quick Form DataBase (QFDB)

Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheiras
Lambda 3
 
Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 Palestra
David O'Keefe
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
Igor Moura
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Arlindo Santos
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
Pablo Dall'Oglio
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01
Maurício Linhares
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
Rodrigo Urubatan
 
jQuery
jQueryjQuery
jQuery
Bruno Cunha
 
jQuery
jQueryjQuery
jQuery
Bruno Cunha
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHP
Marcelo Andrade
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
Dr. Spock
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQL
Raul Oliveira
 
O que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seoO que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seo
introfini
 
Estrutura do Projeto
Estrutura do ProjetoEstrutura do Projeto
Estrutura do Projeto
rafaelbozzetti
 
Estrutura do Projeto
Estrutura do ProjetoEstrutura do Projeto
Estrutura do Projeto
rafaelbozzetti
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
Pedro Sousa
 
Criando APIs com Node e TypeScript
Criando APIs com Node e TypeScriptCriando APIs com Node e TypeScript
Criando APIs com Node e TypeScript
Andre Baltieri
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer Faces
Eduardo Bregaida
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
Vinícius de Paula
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
Dr. Spock
 

Semelhante a Quick Form DataBase (QFDB) (20)

Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheiras
 
Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 Palestra
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 
jQuery
jQueryjQuery
jQuery
 
jQuery
jQueryjQuery
jQuery
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHP
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQL
 
O que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seoO que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seo
 
Estrutura do Projeto
Estrutura do ProjetoEstrutura do Projeto
Estrutura do Projeto
 
Estrutura do Projeto
Estrutura do ProjetoEstrutura do Projeto
Estrutura do Projeto
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
 
Criando APIs com Node e TypeScript
Criando APIs com Node e TypeScriptCriando APIs com Node e TypeScript
Criando APIs com Node e TypeScript
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer Faces
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 

Último

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 

Último (8)

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 

Quick Form DataBase (QFDB)

  • 1. Quick Form DataBase (QFDB) Everaldo Uavniczak everaldouav@gmail.com
  • 2. Cronograma - O que é? - Características do Desenvolvimento Web - Requisitos de uma Aplicação Web - Etapas do Desenvolvimento Web - O framework - Desenvolvendo com o framework - Status do framework - Objetos QFDB - Regras QFDB - Exemplo de Uso - Implementações Futuras
  • 3. O que é? É de comer??? - Framework desenvolvido em PHP 5 (5.2) - Implementado em OO - Orientado a Plugins - Permite desenvolver Aplicações Web através de “montagem” usando “peças” do framework - Licenciado pela Licensa BSD
  • 4. Características do Desenvolvimento Web - Implementados em requisitos vagos - Exigem alterações constantes - Requerem (re-)implementações em fase de produção Em geral: - Possuem inúmeras semelhanças estruturais e praticamente os mesmos requisitos
  • 5. Requisitos de uma Aplicação Web - Exibição de conteúdo atualizado - Interação com usuários (feedback e/ou conteúdo) - Painel administrativo - Exibição de relatórios
  • 6. Etapas do Desenvolvimento Web - Modelagem (UML) - Layout (Imagens) - Layout (HTML) - Layout (CSS) - Regras de Negócio server-side (PHP, Python, etc) - Validação dos Dados client-side (JavaScript) - Validação dos Dados server-side (PHP, Python, etc) - Rotinas de Banco de Dados (MySQL, PG, etc) - Segurança
  • 7. O Framework - Idéia Inicial: Agosto de 2006 - Motivação: Reutilizar códigos entre os projetos e automatizar seus processos visando ganhar tempo - Objetivos: * Tornar as aplicações multi-database (abstração DB) * Geração automática de código HTML e JS * Automatizar a validação de dados * Automatizar implementações de segurança * Permitir adição de plugins carregados dinamicamente * Reduzir o número de arquivos da aplicação * Uma única linha alterada para cada implementação
  • 9. Desenvolvendo com QFDB - Modelagem UML - Layout (Imagens) - Definições QFDB - Layuot (HTML) - Layout (CSS) - Regras de Negócio server-side (PHP, Python, etc) - Validação dos Dados client-side (JavaScript) - Validação dos Dados server-side (PHP, Python,etc) - Rotinas de Banco de Dados (MySQL, PG, etc) - Segurança
  • 10. Status do QFDB 1: Constroi formulário para inserção de dados 2: Inserir dados no banco de dados 3: Formulário para edição de dados 4: Atualizar dados no banco de dados 5: Geração de relatório 6-9: Status Livre
  • 11. Objetos QFDB Plugins que desempenham as ações do framework /objects/qfdbobj_*.php $header[] = 'headdoctype ||| 12345 =>'; $header[] = 'headhtml ||| 12345 => html_lang=pt-br ||| html_xmllang=pt-br'; $header[] = 'headcss ||| 12345 => href=main.css &&& qfdb.css'; $header[] = 'headicon ||| 12345 => href=image/favicon.ico'; $header[] = 'body ||| 12345 => '; $header[] = 'literal ||| 12345 => content= <div style="text-align: center;">'; $header[] = 'table ||| 12345 => border=0 ||| cellpadding=2 ||| cellspacing=2 ||| class=qfdb_table ||| style=margin: auto; width: 900px;';
  • 12. Regras QFDB Validam os dados inseridos pelos usuários a partir dos Objetos QFDB que definem os campos de formulário /rules/text/qfdbr_text_range.php $body[] = 'text .... validate=range:::3:::10:::Digite entre 3 e 10 caracteres '; /rules/text/qfdbr_text_br-cpf.php $body[] = 'text .... validate=br-cpf:::Digite um CPF válido'; As Regras QFDB estão em fase de implementação na versão 0.5
  • 14. Implementações Futuras - Regras QFDB (em andamento) - Restrições por status - Nicetitle - Integração com Ajax usando xajax - QFDB Wizard: Assistente gráfico - QFDB Debug - rastreador de erros
  • 15. Perguntas Maiores informações: http://www.qfdb.net/ everaldouav@gmail.com