Aplicações Verticais para o OpenACS



Documentos relacionados
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

ADMINISTRAÇÃO DE BANCO DE DADOS

Tutorial da Ferramenta de Desenvolvimento de Software OpenACS

Sistemas de Informação

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Engenharia de Software Aplicações de Internet

Serviços: API REST. URL - Recurso

Sisorc. Tutorial de Criação de Novos Módulos

Aqui pode escolher o Sistema operativo, e o software. Para falar, faça download do Cliente 2.

OpenACS e as Comunidades Virtuais

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Desenvolvimento de Aplicações para Internet Aula 8

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

Gatilhos (Triggers) Prof. Márcio Bueno Elaborado por Maria Lígia B. Perkusich

Projeto de Banco de Dados: Empresa X

Objetivo Use este procedimento para inserir/remover/atualizar os Clippings no Website.

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

Prof. Carlos Majer Aplicações Corporativas UNICID

MySQL. Prof. César Melo. com a ajuda de vários

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

Criação de uma aplicação Web ASP.NET MVC usando Code First

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela

TUTORIAL WEEBLY. 2-Crie um cadastro (lembrando que palavra passe é a senha). Após preencher o formulário, clique em Sign Up. It s Free!

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

Consultas a banco de dados no ArcView

Padrão J2EE Data Access Object (DAO)

Profº Aldo Rocha. Banco de Dados

Banco de Dados SQL (Structured Query Language) Ana Paula Toome Wauke

Programação Web Prof. Wladimir

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

PHP e MySQL Autenticação de Usuários

José Francisco Ladeira Neto

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Banco de Dados Avançados Banco de Dados Ativo

Click the + sign to add new server details. Clique no sinal de "+" para adicionar novos detalhes do servidor. Enter a friendly name for your BI Server

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

JDBC. Prof. Márcio Bueno

Persistência de Classes em Tabelas de Banco de Dados

Triggers no PostgreSQL

Migrations for Java EVOLUINDO SEU BANCO DE MANEIRA INCREMENTAL

INSTALANDO E CONFIGURANDO O MY SQL

Drupal. Desenvolvimento de Módulos

Android Banco de Dados. Ivan Nicoli

Banco de Dados. Conversão para o Banco de Dados SisMoura

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Tutorial EPF Básico. 1)Vá a File-> New->Method Library. Escolha uma pasta para criar a Method Library.

Alertas por utilizando SMTP autenticado

ANDROID APPLICATION PROJECT

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

Bem vindos ao Curso de ASP.NET MVC 3 Razor e C#

Intel Teach Program Essentials Course. Tutorial para wik.is

MT BOOKING SYSTEM BACKOFFICE. manual for management

Prática em Laboratório N.04 (Parte 01) Criando uma aplicação composta a partir de um serviço Web

Configuração e Instalação do Atendimento Online

Plano de Trabalho Docente Ensino Técnico

Banco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr

Regras de Negócios é com o Elefante!

Introdução ao SQL. Aécio Costa

Construindo Aplicações com ASP.NET MVC 2.0 Aula 03 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas

Um objeto de estatística contém informações de distribuição de valores de uma ou mais colunas de uma tabela ou view indexada

CRIAÇÃO DE RELATÓRIOS EM DELPHI

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

PADRÕES DE DESENVOLVIMENTO SOLIS. Diagrama

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO.

Controle de transações em SQL

Introdução a relatórios Crosstab com ireport/jasperreports

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Aparecerá a tela abaixo:

Tutorial sobre criação de blogs no blogger.com. Como Criar um Blog1

Framework MIOLO 2.5 Tutorial: Criando um módulo

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro Maio/ 2015

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Criação de Formatos para detalhamento. Ambiente de trabalho no SOLIDWORKS

Data Transformation Services (DTS) por Anderson Ferreira Souza

Envio de SMS usando Zenvia

Drive MySql de conexão para Eclipse

Aceder à plataforma do concurso Accessing the call for applications platform. Submeter documentos Upload documents. Apagar documentos Delete documents

PHP INTEGRAÇÃO COM MYSQL PARTE 2

Telefonia IP MOT. Prática 1

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

PostgreSQL. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

Procedimentos armazenados

Treinamento sobre SQL

Módulos Customizados. Descomplicando a criação de módulos personalizados para Drupal 7

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Provedores de Conteúdo

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5.

Treinamento PostgreSQL - Aula 03

Tutorial de Conversão Xvid/Divx para DVD com legendas embutidas Versão 1.00 Julho / 2005 por m0l0c0

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

Aula Extra Conexão ODBC para aplicações Delphi 7 que usam SQL Server 2005

Transcrição:

Aplicações Verticais para o OpenACS Eduardo Santos eduardo.edusantos@gmail.com eduardo.santos@planejamento.gov.br www.softwarepublico.gov.br

Roadmap De acordo com Phillip Greenspun, os passos para desenvolver aplicações: Faça a modelagem de dados. O que você vai representar? Desenvolva uma série de scripts para criar o banco (SQL). Desenhe o fluxo de páginas. Como será a interação com o usuário? Implemente as páginas individualmente

Modelagem de Dados

Modelagem A minha aplicação vai ter: Armazenamento de notas; Controle de versões para as notas; Permissões nas notas; Comentários sobre os dados inseridos.

Modelagem A minha aplicação vai ter: Armazenamento de notas; Controle de versões para as notas; Permissões nas notas; Comentários sobre os dados inseridos. (Opcionais)

Modelagem Questão 1: onde armazenar as notas. As notas devem utilizar o sistema de objetos? Como controlar versões de objetos? Onde elas ficarão armazenadas fisicamente: no sistema de arquivos ou no banco de dados? Como você resolveria isso sem o OpenACS?

Modelagem Tutorial My First Package -- creation script -- -- @author joel@aufrecht.org -- @cvs-id &Id:$ -- select content_type create_type( 'mfp_note', -- content_type 'content_revision', -- supertype 'MFP Note', -- pretty_name, 'MFP Notes', -- pretty_plural 'mfp_notes', -- table_name 'note_id', -- id_column null -- name_method ); -- necessary to work around limitation of content repository: select content_folder register_content_type(-100,'mfp_note','t');

Modelagem Utilizando o sistema de objetos, permissões e categorias vêm como bônus. Nenhuma tabela extra será criada para isso!!!

Modelagem Um vez criadas as tabelas, como armazenar os dados nas tabelas?

Modelagem Um vez criadas as tabelas, como armazenar os dados nas tabelas? API's (Application Programing Interface)

Modelagem Criando uma biblioteca: ad_library { } Procs to add, edit, and remove notes for My First Package. @author oumi@arsdigita.com @cvs-id $Id: note-procs.tcl,v 1.2 2004/02/04 16:47:34 joela Exp $ namespace eval mfp {} namespace eval mfp::note {}

API's ad_proc -public mfp::note::get { -item_id:required -array:required } { This proc retrieves a note. This is annoying code that is only here because we wanted to give you a working tutorial in 5.0 that uses content repository, but the tcl api for content repository won't be complete until 5.1. At least we can use the pregenerated views for select and edit. } { upvar 1 $array row content::item::get -item_id $item_id \ -revision "live" \ -array_name row #set row(user_name) "$row(first_names) $row(last_name)" set row(user_name) [acs_user::get_element -user_id $row(creation_user) -element name] }

ad_proc -public mfp::note::add { -title:required -user_id:required } { This proc adds a note. @return item_id of the new note. } { db_transaction { set item_id [content::item::new -name $title \ -parent_id "-100" \ -creation_user $user_id \ -item_subtype "content_item" \ -content_type "mfp_note"\ -title $title] #[ -context_id context_id ] [ -package_id package_id ] #[ -creation_ip creation_ip ] #[ -item_id item_id ] [ -locale locale ] #[ -creation_date creation_date ] #[ -description description ] [ -mime_type mime_type ] #[ -nls_language nls_language ] [ -text text ] [ -data data ] #[ -relation_tag relation_tag ] [ -is_live is_live ] #[ -storage_type storage_type ] [ -attributes attributes ] #[ -tmp_filename tmp_filename ]]

API's set revision_id [db_nextval acs_object_id_seq] content::revision::new -revision_id $revision_id -item_id $item_id \ -title $title \ -creation_user $user_id \ -is_live "t" #[ -content_type content_type ] \ [ -description description ] [ -content content ] \ [ -mime_type mime_type ] [ -publish_date publish_date ] \ [ -nls_language nls_language ] [ -creation_date creation_date ] \ [ -content_type content_type ] [ -creation_user creation_user ] \ [ -creation_ip creation_ip ] [ -package_id package_id ] \ [ -attributes attributes ] \ [ -tmp_filename tmp_filename ] [ -storage_type storage_type ]

API's } db_exec_plsql create { select acs_object new ( :user_id, --new object_id 'dono', --new object_type NULL, --new creation_date :user_id, --new creation_user NULL, --new creation_ip NULL, --new context_id NULL, --new security_inherit_p :title, --new title NULL --new package_id ); } } return $item_id

API's ad_proc -public mfp::note::edit { -item_id:required -title:required {-user_id ""} } { This proc edits a note. Note that to edit a cr_item, you insert a new revision instead of changing the current revision. } { db_transaction { set revision_id [db_nextval acs_object_id_seq] if {![exists_and_not_null user_id]} { set user_id [ad_conn user_id] }

API's } } content::revision::new -revision_id $revision_id -item_id $item_id \ -title $title \ -creation_user $user_id \ -is_live "t" #[ -content_type content_type ] \ [ -description description ] [ -content content ] \ [ -mime_type mime_type ] [ -publish_date publish_date ] \ [ -nls_language nls_language ] [ -creation_date creation_date ] \ [ -content_type content_type ] [ -creation_user creation_user ] \ [ -creation_ip creation_ip ] [ -package_id package_id ] \ [ -attributes attributes ] \ [ -tmp_filename tmp_filename ] [ -storage_type storage_type ]

API's ad_proc -public mfp::note::delete { -item_id:required } { This proc deletes a note. } { content::item::delete -item_id $item_id }

Roadmap De acordo com Phillip Greenspun, os passos para desenvolver aplicações: Faça a modelagem de dados. O que você vai representar? -OK Desenvolva uma série de scripts para criar o banco (SQL). -OK Desenhe o fluxo de páginas. Como será a interação com o usuário? Implemente as páginas individualmente

Fluxo de Páginas

Fluxo Questão 2: o que o usuário deve fazer?

Fluxo Questão 2: o que o usuário deve fazer? Adicionar uma nota Editar uma nota Apagar uma nota Listar as notas

Fluxo

Roadmap De acordo com Phillip Greenspun, os passos para desenvolver aplicações: Faça a modelagem de dados. O que você vai representar? -OK Desenvolva uma série de scripts para criar o banco (SQL). -OK Desenhe o fluxo de páginas. Como será a interação com o usuário? -OK Implemente as páginas individualmente

Implementação

Implementação Uma vez definido o que sua aplicação vai fazer, implemente as páginas individualmente.