CENTRO UNIVERSITÁRIO METODISTA BENNETT. Rafael Gomes de Oliveira Polo Sabrina Arêas DESENVOLVIMENTO ÁGIL DE SISTEMAS PARA A WEB 2.
|
|
- Valentina Pais Costa
- 8 Há anos
- Visualizações:
Transcrição
1 CENTRO UNIVERSITÁRIO METODISTA BENNETT Rafael Gomes de Oliveira Polo Sabrina Arêas DESENVOLVIMENTO ÁGIL DE SISTEMAS PARA A WEB 2.0 COM RAILS 2009
2 CENTRO UNIVERSITÁRIO METODISTA BENNETT Rafael Gomes de Oliveira Polo Sabrina Arêas DESENVOLVIMENTO ÁGIL DE SISTEMAS PARA A WEB 2.0 COM RAILS Monografia apresentada ao Centro Universitário Metodista Bennett, como parte dos requisitos para obtenção do título de Bacharel em Ciência da Computação. Orientador: Prof. Sávio Figueiredo Rio de Janeiro Novembro, 2009
3 CENTRO UNIVERSITÁRIO METODISTA BENNETT Rafael Gomes de Oliveira Polo Sabrina Arêas Orientador: Prof. Sávio Figueiredo DESENVOLVIMENTO ÁGIL DE SISTEMAS PARA A WEB 2.0 COM RAILS Trabalho de Conclusão do Curso de Ciência da Computação do Centro Universitário Metodista Bennett como parte dos requisitos necessários à obtenção do título de Bacharel em Ciência da Computação. Aprovado por: Prof. Sávio Figueiredo, MSc Presidente Prof. Carolina Xavier, MSc Prof. Vinicius da Fonseca Vieira, MSc Rio de Janeiro Novembro, 2009
4 RESUMO DESENVOLVIMENTO ÁGIL DE SISTEMAS PARA A WEB 2.0 COM RAILS Rafael Gomes de Oliveira Polo Sabrina Arêas Orientador: Prof. Sávio Figueiredo Este trabalho tem por objetivo apresentar alguns aspectos dos novos princípios de arquitetura de software voltadas para a World Wide Web, mostrando que o refinamento dos novos frameworks para sistemas de informação na Web permitem o desenvolvimento ágil e com qualidade, eliminando tarefas recorrentes nos projetos. Demonstramos essa viabilidade na implementação de dois sistemas Web com um moderno framework. Palavras-chave: HTTP, WEB 2.0, REST, URI, RUBY ON RAILS Rio de Janeiro Novembro, 2009
5 ABSTRACT AGILE SYSTEMS DEVELOPMENT FOR WEB 2.0 WITH RAILS Rafael Gomes de Oliveira Polo Sabrina Arêas Advisor: Prof. Sávio Figueiredo This paper aims to present some aspects of the new principles of software architecture focused on the World Wide Web, showing that the refinement of new information system s frameworks allows agile development with quality, eliminating recurring tasks in projects. We demonstrates its viability implementing two Web systems with a modern framework. Key-words: HTTP, WEB 2.0, REST, URI, RUBY ON RAILS Rio de Janeiro Novembro, 2009
6 AGRADECIMENTOS Agradeço ao meu esposo por sempre me mostrar que posso ir além. Aos meus pais que são responsáveis por eu estar aqui hoje. Ao meu irmão por sempre me levar a busca pela sabedoria e aos Mestres da casa por todo conhecimento transmitido. (Sabrina) Agradeço à meus pais e familiares pelo exemplo de determinação e bondade que me faz seguir em frente, a minha irmã pelo incentivo e colaboração, aos amigos pelos momentos de diversão e por manterem minha curiosidade no mundo acesa. (Rafael)
7 A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original. Albert Einstein
8 Sumário 1 - Introdução Objetivos Justificativa Revisão Mapeamento Objeto Relacional Active Record ActiveRecord do Framework Ruby On Rails Desvantagens do Active Record Sistema de caching Caching on Rails Paging Cache Action Cache Fragment Caching Sweepers SQL caching Conditional GET Support View e Templates Partials Rer RHTML Helpers Roteamento de URLs Conectando URLs com o código Gerando URLs do código Routes.rb Processando o arquivo Rotas RESTful Rotas Nomeadas...19
9 Rotas Aninhadas Rotas Regulares Rotas Padrão Roteamento RESTful: o Padrão Rails Estudo de caso Estudo de caso - baixogavea.com Criação do Projeto Definição do SGBD Definição do Schema Modelos Migrando e Testando Roteando as requisições HTTP aos controladores Visualizando as respostas através dos templates AJAX Resultados e Conclusões Trabalhos Futuros...40 REFERÊNCIAS BIBLIOGRÁFICAS...42
10 1 - Introdução Desde a crise do software nos anos 70 - ano de desenvolvimento e comercialização do microprocessador - quando a demanda por sistemas de informação era progressiva, boa parte dos projetos estourava o orçamento e o prazo e softwares tinham baixa qualidade ou se tornavam muito complexos para serem gerenciados, o uso de melhores técnicas, métodos e ferramentas se fez necessário. Muito se evoluiu em pouco mais de 40 anos, desde quando o termo Engenharia de Software foi utilizado oficialmente em 1968 na Conferência sobre Engenharia de Software da OTAN. A década de 80 viveu a popularização dos Sistemas Operacionais e o uso de PCs (computadores pessoais) para uso não necessariamente empresarial ou científico. No ápice de um contexto histórico, da guerra fria aos movimentos de contra-cultura, essa época é considerada o fim da Sociedade Industrial e o início da Sociedade da Informação, a computação foge do seu único destino de processamento de dados corporativos para tornar-se um instrumento de criação de textos, imagens e música. A informática perde seu status de técnica industrial para fundir-se com as telecomunicações, editoração, digitalização e multimídia. No começo da década de 90 o cientista da computação Tim Berners Lee publicou seu projeto sobre a World Wide Web (teia de alcance global) e um sistema de identificação global e único de recursos, o Uniform Resource Identifier (URI), além de um servidor de hipertexto e o primeiro browser, desenvolvido na CERN (Organização Europeia para a Investigação Nuclear), o WorldWideWeb, que funda toda a arquitetura de nossa Web contemporânea. 1
11 De forma geral, visualizar uma página web ou outro recurso disponibilizado na rede normalmente inicia ao digitar uma URL (Uniform Resource Locator) no navegador ou seguindo um hiperlink. Primeiramente, a parte da URL referente ao servidor web é separada e transformada em um ereço IP, por um banco de dados da Internet chamado Domain Name System (DNS). O navegador estabelece então uma conexão TCP-IP com o servidor web localizado no ereço IP retornado. Em seguida o navegador envia uma requisição HTTP (Protocolo de Transferência de Hipertexto) ao servidor para obter o recurso indicado pela parte restante da URL. No caso de uma página web típica, o texto HTML é recebido e interpretado pelo navegador, que realiza então requisições adicionais para figuras, arquivos de formatação, arquivos de script e outros recursos que fazem parte da página. O navegador então gera a página na tela do usuário, assim como descrita pelos arquivos que a compõe. Diversas são as camadas de tecnologias que nos permitem a Internet tal como é hoje. No ano 2000, Roy Fielding, um dos principais autores das especificação do protocolo HTTP, em sua tese de doutoramento (PHD) apresenta a Transferência de Estado Representacional (Representational State Transfer) ou somente REST, uma técnica de engenharia de software para sistemas hipermídia distribuídos, como é a própria World Wide Web. Sistemas RESTful maximizam o uso de interfaces bem definidas préexistentes e minimizam a necessidade de novas camadas de abstração ao sistema Objetivos So notório que cada pedaço de conhecimento deve ter uma representação inequívoca num sistema de informação e que na Web um sistema te a ser aberto, evolutivo e 2
12 reusado por outros nós da rede, é cada vez mais comum o uso de APIs públicas (Interface de Programação de Aplicativos) por conhecidas organizações como o Flickr, Youtube, Open Social, Facebook, Blogspot, ebay e Twitter que fazem de seu sistema de informação um eco-sistema aberto além de seu domínio. Um nó na rede pode ter seu próprio repositório de vídeos, imagens, microblogging integrado à mapas apenas com mashups dessas interfaces. Hoje, a Web vai muito além da simples exibição de páginas, quase duas décadas desde sua invenção, aproximadamente 20% da população mundial usa a Internet para atividades cada vez mais essenciais, países como a Estônia já elegeram seus governantes pela Internet. Como o computador é uma máquina universal, em rede, reinventamos a comunicação, a mídia e as próprias relações humanas. Diversos são os estudos que demonstram a simbiose da tecnologia e a cultura na última década, mas nos limitaremos a analisar e demonstrar o atual estado da arte da ágil construção de sistemas de informação com base no protocolo de transferência de hipertexto, o HTTP, a aquitetura REST e apresentar estudos de caso que desenvolvemos e publicamos na Web, o e o utilizando um moderno framework publicado inicialmente em 2004, o Ruby on Rails, cujos principais conceitos (mapeamento objetorelacional, sistema de cache, template e roteamento) faremos uma revisão e apresentaremos como pesquisa dos sistemas desenvolvidos Justificativa Nos quatro anos de experiência em desenvolvimento Web vimos diversos frameworks com as mais distintas funções. 3
13 "Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação." - FAYAD e SCHMIDT Em Java, uma das linguagem mais bem aceitas pelo mercado, conhecemos o Hibernate, o Velocity e o Spring, em Python o Django, adotado como base em muitos serviços do Google, em PHP o CakePHP e em Ruby o Rails, to sido esse último escolhido por ser um meta-framework open-source em constante evolução por uma engajada comunidade internacional de desenvolvedores e ter uma ótima documentação - é a junção de quatro frameworks, Active Record, Action Pack, Action Mailer e Active Support. Além disso, o Rails oferece um inovador roteamento de requisições, um conjunto de utilitários de testes e geração de documentação inspirados em sistemas UNIX em uma bem definida arquitetura MVC (Model-View-Controller), como a figura 1 representa. figura 1 4
14 2 - Revisão O conteúdo e os conceitos necessários para o desenvolvimento de uma aplicação Web completa extrapolam nosso intuito de apresentar as novas abordagens para realizá-las com ganhos significativos em produtividade, portanto resumiremos nossa revisão aos principais conceitos modernos de Mapeamento Objeto Relacional, Sistema de Caching, View e Templates e Roteamento de URLs Mapeamento Objeto Relacional Mapeamento objeto-relacional (ou ORM) é uma técnica de desenvolvimento utilizada para reduzir a redundância da programação orientada a objetos utilizando banco de dados relacionais. As tabelas do banco de dados são representadas através dos modelos do sistema, as classes, e os registros de cada tabela são representados como instâncias das classes correspondentes. Com esta técnica, o programador não precisa se preocupar com os comandos em linguagem SQL e sua tradução a objetos em sistemas orientados à objetos, ele irá usar uma interface de programação simples que faz todo o trabalho de persistência. Não é necessária uma correspondência direta entre as tabelas de dados e as classes do programa. A relação entre as tabelas onde originam os dados e o objeto que os disponibiliza é configurada pelo programador, isolando o código do programa das alterações à organização dos dados nas tabelas do banco de dados. 5
15 Existem dois padrões comuns para a comunicação com o BD/Framework: o Data Access Object (DAO) e o Active Record (AR). Os dois, DAO e AR, são padrões bem distintos e refletem abordagens extremamente diferentes na modelagem da aplicação Active Record Active Record é uma abordagem para acessar dados em um banco de dados. Uma tabela do banco de dados ou view é envolta em uma classe, desta maneira, uma instância é vinculada a uma única linha (registro) na tabela. Após a criação de um objeto, um novo registro é adicionado na tabela. Qualquer objeto carregado obtém informações do seu banco de dados; quando um objeto é atualizado, o registro correspondente na tabela também é atualizado. A classe wrapper implementa os métodos de acesso ou propriedades para cada coluna na tabela ou view. O Active Record Pattern é comumente usado por ferramentas de persistência de objetos e em mapeamento objeto relacional. Normalmente relacionamentos de chave estrangeira serão expostos como um objeto de tipo apropriado por meio de uma propriedade ActiveRecord do Framework Ruby On Rails O Active Record se tornou extremamente popular com o framework Rails, para a linguagem Ruby, como a produtividade e simplicidade do framework revoluciona o desenvolvimento, muitos abraçaram o padrão também em outros frameworks. Esse padrão é muito comum em frameworks para linguagens dinâmica, como Python. 6
16 O Active Record fornece acesso conveniente e programático à camada de domínio de nossas aplicações. Ele é um mecanismo de armazenagem persistente que geralmente interage diretamente com o banco de dados relacional, baseia-se e recebe o nome de um padrão de design definido por Martin Fowler em seu livro, Patterns of Enterprise Application Architecture (Addison-Wesley). Neste livro Fowler resume este padrão como: "Um objeto que encapsula um registro em uma tabela ou view do banco de dados. Além disso, este objeto cuida das rotinas de acesso ao banco e adiciona lógica de domínio às informações encapsuladas." O Active Record trabalha criando um mapeamento objeto-relacional (ORM) entre os objetos Ruby da aplicação e as linhas e colunas das tabelas no banco de dados. Este mapeamento nos permite interagir com o banco de dados da mesma forma que interagimos com os objetos Ruby, eliminando a necessidade de usar SQL para manipular os dados das tabelas. Em vez de trabalhar com registros nas tabelas, trabalhamos com objetos Ruby, e as colunas das tabelas do banco de dados passam a ser vistas como atributos destes objetos, os quais podemos ler ou escrever usando métodos de acesso. Um modelo de domínio consiste dos dados e um conjunto de regras que definem como estes dados interagem com o restante da aplicação. O Active Record permite a definição da lógica de nossos modelos de domínio usando Ruby. Com isso há flexibilidade ao definir regras de negócios específicas aos dados, e, uma vez que esta lógica está centralizada no modelo, a alteração se torna muito mais fácil. O Active Record, assim como boa parte do framework Rails, trabalha com o conceito de "convenção em vez de configuração - convention over configuration" para simplificar os estágios iniciais, assumindo que geralmente os projetos tem padrões em comum. Por exemplo, o Active Record determina os campos da tabela, eliminando a necessidade de 7
17 definir métodos básicos de acesso para cada campo. A forma que o Active Record faz isso é analisando as convenções de nomes de tabelas e campos para mapear o esquema do banco de dados para os objetos Ruby com o mínimo possível de configuração. Os nomes das tabelas são entidos como so o plural do objeto armazenado na tabela. Assim, cada registro de uma tabela "clientes" guarda um "cliente". Além disso, todas as tabelas (exceto tabelas de ligação) devem possuir uma chave primária única chamada id. Chaves estrangeiras (foreign keys) recebem seus nomes baseado no nome da tabela seguido por _id. Por exemplo, uma tabela alunos referenciando uma tabela chamada cursos possuiría uma coluna chamada cursos_id. Tabelas de ligação, usadas em relacionamentos muitos-para-muitos recebem os nomes das duas tabelas envolvidas, com seus nomes em ordem alfabética. Ex: alunos_cursos, artigos_categorias, etc. Os benefícios da abstração do acesso direto ao banco de dados usando Active Record inclui a habilidade de mudar o banco de dados sempre que necessário, a aplicação não fica depente de apenas um banco de dados. Uma vez que os detalhes dos dados e suas formas de acesso estão incluídos no Active Record, para mudar de MySQL para PostgreSQL ou SQLite é só editar o arquivo databases.yml no diretório conf do projeto. Para finalizar, como o Ruby possui a capacidade de instrospecção e metaprogramação de objetos, o Active Record no Rails fornece finders (métodos de pesquisa) dinâmicos baseados em atributos e um bom número de métodos auxiliares que facilitam e tornam a interação com o banco de dados extremamente ágeis Desvantagens do Active Record As classes sempre são persistidas no banco. Quando você cria uma nova instância de 8
18 aluno, por exemplo, o Active Record criará um registro na tabela aluno automaticamente. Isso às vezes é ruim, pois não é possível utilizar objetos não persistidos, como na API JPA do Java. A principal queixa com o Active Record é a sua lentidão para sistemas complexos com uma base de dados muito grande. O programa pode demorar para exibir listas de objetos persistidos e seus atributos, pois além de gerar o SQL necessário de acordo com o banco de dados definido, o resultado é convertido em objetos. Mas apesar dessa desvantagem, contornada utilizando SQL direto para consultas complexas, o Active Record ainda traz muitos ganhos ao mapear objetos, relacionamentos e automatizar todas as conexões com o banco de dados. Uma forma de melhorar o desempenho é o uso do cache, que pode manter o resultado das consultas em memória para evitar outras consultas ao banco e páginas préviamente construídas Sistema de Caching Cache é uma área de acesso rápido que pode ser utilizada para otimização de sistemas que se utilizam de recursos do sistema. Os dados existentes em cache estão lá duplicados, os dados existem em uma área de armazenamento permanente e no cache. A área de armazenamento permanente, normalmente, é de acesso mais caro, e normalmente o acesso mais caro é compensado pela capacidade superior de armazenamento. Já em áreas de cache o acesso aos dados é mais rápido. Só que a capacidade de armazenamento é menor. Assim, é necessário que existam heurísticas que se encarreguem de eleger quem será 9
19 removido do cache para liberar espaço para o armazenamento de outro recurso. Apesar de alguns dispositivos de computação terem o nome "cache" contido em seus nomes, cache não é um dispositivo - é um conceito - onde é utilizado recursos de acesso mais rápido para armazenar dados mais, ou recentemente, acessados. Cache é um bloco de memória temporário para acesso futuro. Para acesso aos dados, um cliente primeiramente consulta sua existência em um cache. Indo ao recurso mais lento apenas se o dado não puder ser encontrado no cache. A este processo se dá o nome de cache hit, utilizado nos navegadores Web recentes. Ao requisitar um ereço na Web, o navegador, primeiramente, verifica se a página solicitada existe no disco local. Se a solicitação (tag) for encontrada no disco local, a página (dado) é exibida sem ir a rede buscá-la. Em contrapartida, se a solicitação não for encontrada no cache local do browser, o mesmo se encarrega em ir no local destino para buscar a página solicitada. A partir daí a página é inserida no cache para acesso futuro. A esse evento dá-se o nome de cache miss. Durante o processo de cache miss o processador de cache se encarrega de prover espaço para entrada do dado mais recentemente acessado que ainda não existia no cache. O algoritmo para o processamento disso chama-se replacement policy. Existem dois métodos de escrita no cache. Write-through e write-back. No write-through o dado armazenado no cache é gravado sincronamente no local de armazenamento. No write-back, quando um dado é escrito no cache ele ainda não foi armazenado na área definitiva de armazenamento. O sistema de cache deve se encarregar de escrever o dado na área de armazenamento a fim de precaver-se de perda de dados. 10
20 Caching on Rails Em servidores Web é possível implementar funcionalidades se aproveitando do conceito de cache. O objetivo é manter as páginas, já processadas, em uma área temporária para acessos futuros. Com isso é economizado acesso a recursos mais onerosos do sistema armazenando informações recuperáveis por meios mais eficientes. No Ruby on Rails pode-se utilizar de técnicas de cache já implementadas no framework, como cache de páginas ou de SQL a fim de aproveitar recursos do sistema Paging Cache Por este método, o primeiro cliente que acessar uma determinada página irá processar a página e armazena-la no cache. Com isso o próximo cliente que precisar desta página, não irá esperar o processamento da mesma. Receberá uma cópia já processada. Esse recurso não pode ser utilizado para páginas em que os dados enviados precisam ser checados para estabelecer uma conexão ao recurso solicitado. É muito utilizado para páginas que são idênticas para todos os usuários que acessam ou para páginas que não precisam de autenticação para serem acessadas Action Cache Isso resolve o problema existente em paging cache. Antes de servir ao cliente a página em cache, é possível efetuar filtros. Isso utiliza processamento para efetuar as verificações de permissão, por exemplo, e depois serve a página em cache. Assim, uma 11
21 página que depe de autenticação não seria exibida simplesmente por estar em cache Fragment Caching Como atualmente as páginas Web são mais componentizadas e cada componente da página tem um comportamento diferente, também será necessário aplicação de regras de cache diferente para cada componente da página - para isso o Rails provê este mecanismo Sweepers Com esta técnica, é possível internalizar o momento de expirar um determinado cache a partir de ações. Quando há um objeto em cache, é necessário que o mesmo seja inválido a partir do momento que algum dado é alterado. Sweeper são pequenos pedaços de código que removem do cache informações que já são antigas, ou devem ser expiradas programáticamente SQL caching Query cache é uma característica do Rails que permite colocar em cache todo resultset de querys solicitadas pelos clientes. Uma vez solicitada uma consulta que já possui seu resultado em cache o Rails utilizará esse resultado ao invés de consultar novamente no banco de dados. Este recurso está disponível apenas na execução de uma Action. 12
22 Conditional GET Support É uma característica da especificação do protocolo HTTP. Ele provê ao Web browser um mecanismo para informar ao Web browser que o recurso solicitado não foi alterado desde sua última solicitação. Então ele pode usar o já existente em seu cache local. 2.3 View e Templates O ActionView é a parte do framework responsável pelo tratamento do View, o que é visualizado, na abordagem do Rails para o MVC. O ActionView utiliza os objetos criados pelo controlador e gera a saída, geralmente como HTML ou XML. O ActionView está inserido com o ActionController em uma gem (pacote) Ruby chamada ActionPack. Juntamente com o ActiveRecord, o ActionView e o ActionController formam o núcleo do Rails. Embora seja possível gerar o conteúdo diretamente a partir do controlador, quase 100% dos aplicativos Rails utilizam o ActionView. O ActionView suporta muitas abordagens diferentes para a gerar a página por meio de um mecanismo de um modelo pré-definido. O ActionView é fornecido com três estilos de modelos. Os modelos Embedded Ruby (Erb) são armazenados em arquivos.rhtml e utilizam um misto de marcação e Erb para a construção do conteúdo dinâmico. Os modelos construtores são armazenados como arquivos.rxml e utilizam o Ruby puro para a construção da saída XML. Os modelos JavaScript são armazenados como arquivos.rjs e utilizam uma API Ruby para a construção da saída JavaScript. Do controlador é gerado a saída de uma action para o view, a camada de representação 13
23 na arquitetura MVC. O modelo.ehtml ou.rhtml geralmente tem o mesmo nome da ação do controlador. Ou seja, o app/view/bandas/list.ehtml representa o template da ação list do bandas_controller.rb Partials O partials é um arquivo especial que começa com _, como _itens.ehtml, que é utilizado como um componente reutilizável de modelo de template. Objetos representados igualmente em diferentes partes do sistema são fortes candidato a possuir um único modelo de template parcial Rer As possíveis chamadas à visão pelo controlador. Action: rer :action => 'some_action' rer :action => 'some_action', :layout => 'another_layout' Partial: rer :partial => 'subform' rer :partial => 'error', :status => 500 rer :partial => 'subform', :locals => { :variable } rer :partial => 'listitem', :collection Template: rer :template => 'weblog/show' 14
24 Arquivo: rer :file => '/path/to/some/file.rhtml' rer :file => '/path/to/some/filenotfound.rhtml', status => 404, :layout => true Texto: rer :text => "Hello World" rer :text => "This is an error", :status => 500 rer :text => "Let's use a layout", :layout => true rer :text => 'Specific layout', :layout => 'special' Template Inline: rer :inline => "<%= 'olá novamente' %>" Redefinindo o content-type: rer :action => "status", :content_type => "application/json rer :json => texto.to_json Além da eficiente integração dos controladores com a view, a elaboração dos.rhtml não diferem muito das aplicações como ASP e PHP, so utilizado Ruby puro. Porém há o foco na arquitetura RESTful, onde cada recurso tem uma representatividade bem definida, um Identificador Uniforme de Recurso, facilitando a manipulação das entidades do sistema de informação, como melhor apresentado no roteamento das URLs RHTML Modelo de template que gera links para todos os últimos álbuns. do album %> <li> 15
25 </li> <% %> <%= link_to album_name(album), album_path(album) %> Modelo de template que gera links para todas as bandas e seu número de álbuns. do banda %> <li> <%= link_to "#{banda.nome} (#{banda.albuns.count})", banda_path(banda) %> </li> <% %> Helpers Helpers são classes auxiliadoras para fornecer métodos para as views. Supondo a necessidade de um método de formatação para que apenas os dez primeiros caracteres de uma determinada string sejam exibidos, o método so10() poderia ser definido no helper. # esse texto é muito grande => esse texto... def so10(str) str[0..10]+"..." E utilizado num template: <h2>so10(@artigo.comentario)</h2> Em nossa pesquisa, desenvolvemos um helper capaz de buscar o primeiro resultado de 16
26 imagem do Google Imagens, dado um termo, como o nome de um álbum de banda, usando a API do Google. def getalbumimage(album) google_image = nil banda_nome = CGI.escape('"'+album.banda.nome+'"') album_nome = CGI.escape('"'+album.nome+'"') query = "#{banda_nome}+#{album_nome}" url = " BR&rsz=large&start=#{position=0}&v=1.0&q=#{query}" results = JSON.parse(open(url).read) image_array = results['responsedata']['results'] if image_array && image_array[0] image = image_array[0] google_image = {:thumbnail => image['tburl'], :original => image['unescapedurl'], :name => query.titleize} Assim, representamos álbuns não só pelo seu nome, mas exibindo suas capas como se fossem de nosso próprio domínio Roteamento de URLs Roteamento Rails é um dos conceitos mais inovadoras e importantes do Framework, que conecta as solicitações HTTP com os controllers da aplicação e ajuda a gerar URLs automáticas sem ter que ser codificadas como strings Conectando URLs com o código A engine de roteamento dentro do Rails é a parte do código que envia a solicitação para o 17
27 local apropriado na sua aplicação. Quando a aplicação Rails recebe uma solicitação HTTP de entrada, como GET /livros/17 Neste caso, a aplicação provavelmente executaria a action show dentro do controller livros, mostrando os detalhes do livro cujo ID é Gerando URLs do código O roteamento também funciona no caminho reverso. Em uma aplicação que contém o = Livro.find(17) <%= link_to "Livro Grande", livro_path(@livro) %> Então a engine de roteamento é a parte que traduz o link para a URL, assim como Usando o roteamento desta maneira, pode-se reduzir a fragilidade da aplicação se comparada com uma aplicação com URLs codificada, além de tornar o código fácil de ler e enter. Livro necessita ser declarado como um recurso mapeado para que este estilo de tradução por rotas nomeadas esteja disponível Routes.rb Há dois componentes para roteamento no Rails: a própria engine de roteamento, que é 18
28 fornecida como parte do Rails, e o arquivo config/routes.rb, que contém as rotas atuais que serão usadas pela aplicação. É nesse importante arquivo que todas as requisições ao sistema devem ser repassadas aos devidos controladores para serem devidamente respondidas. Rotas podem ser definidas a partir de expressões regulares. O arquivo routes.rb define todas as requisições que o sistema é capaz de responder Processando o arquivo O routes.rb não é nada mais que um grande bloco enviado para ActionController::Routing::Routes.draw. Dentro do bloco, pode-se ter comentários, mas é provável que a maior parte do conteúdo seja de linhas individuais de código cada linha so uma rota na aplicação. Existem cinco tipos principais de conteúdo que estarão neste arquivo: Rotas RESTful (RESTful Routes) Rotas Nomeadas (Named Routes) Rotas Aninhadas (Nested Routes) Rotas Regulares (Regular Routes) Rotas Padrão (Default Routes) O arquivo é processado de cima para baixo quando chega uma requisição. A requisição será despachada para a primeira rota que combine. Se nenhuma rota combina, então o Rails retorna o status HTTP 404 ao chamador. 19
29 Rotas RESTful Rotas RESTful tiram vantagem da orientação do REST embutido no Rails para empacotar muitas das informações de roteamento em uma simples declaração. Uma rota RESTful se parece como esta: map.resources :livros Rotas Nomeadas Rotas nomeadas nos dão links muito legíveis no seu código, bem como manipulação de solicitações recebidas. Exemplo típico de rota nomeada: map.login '/login', :controller => 'sessions', :action => 'new' Rotas Aninhadas Rotas aninhadas permitem-nos declarar que um recurso está contido dentro de outro recurso Rotas Regulares Em muitas aplicações, há roteamento não RESTful, que conecta explicitamente cada parte da URL a uma ação em particular. Por exemplo, map.connect 'pagina/:numero', :controller => 'paginas', :action => 'show' 20
Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009. Rafael Polo e Sabrina Arêas
Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009 Rafael Polo e Sabrina Arêas Contexto 60 s - Primeiros sistemas de informação corporativos. 70 s Desenvolvimento e comercialização
Leia maisConteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo
Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de
Leia maisDesenvolvendo Websites com PHP
Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.
Leia maisDESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES
DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.
Leia maisFRWTC800 - Desenvolvimento Web com Ruby on Rails
FRWTC800 - Desenvolvimento Web com Ruby on Rails SOBRE A FRAMEWORK A Framework (www.frwtc.com) atua diretamente com profissionais do segmento de tecnologia em busca de capacitação, atualização e certificação,
Leia maisANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.
ANEXO 11 O MATRIZ Para o desenvolvimento de sites, objeto deste edital, a empresa contratada obrigatoriamente utilizará o framework MATRIZ desenvolvido pela PROCERGS e disponibilizado no início do trabalho.
Leia maisAplicativo web para definição do modelo lógico no projeto de banco de dados relacional
Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Juarez Bachmann Orientador: Alexander Roberto Valdameri Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento
Leia maisDesenvolvendo para WEB
Nível - Básico Desenvolvendo para WEB Por: Evandro Silva Neste nosso primeiro artigo vamos revisar alguns conceitos que envolvem a programação de aplicativos WEB. A ideia aqui é explicarmos a arquitetura
Leia maisSistema Gerador de Anúncios para Compra e Venda On-line. Leandro de Oliveira ol.leandro@gmail.com
Sistema Gerador de Anúncios para Compra e Venda On-line Leandro de Oliveira ol.leandro@gmail.com Roteiro da Apresentação Motivação Conceitos e Tecnologias Objetivos do trabalho Sistema SideCart Conclusões
Leia maisWireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira
Wireshark Captura de Protocolos da camada de aplicação Maicon de Vargas Pereira Camada de Aplicação Introdução HTTP (Hypertext Transfer Protocol) 2 Introdução Camada de Aplicação Suporta os protocolos
Leia maisBANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG mhollweg@terra.com.br BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS
CONTEÚDO HARDWARE - 2 AULAS SISTEMA OPERACIONAL - 2 AULAS INFORMÁTICA Prof.: MARCIO HOLLWEG mhollweg@terra.com.br APLICATIVOS OFFICE - 3 AULAS INTERNET - 1 AULA REDE - 2 AULA SEGURANÇA - 1 AULA BANCO DE
Leia maisProgramação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL
Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre
Leia mais4 O Workflow e a Máquina de Regras
4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu
Leia maisDesenvolvimento de aplicação web com framework JavaServer Faces e Hibernate
Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Tiago Peres Souza 1, Jaime Willian Dias 1,2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil tiagop_ti@hotmail.com 2 Universidade
Leia maisTecnologias Web. Padrões de Projeto - Camada de Apresentação
Tecnologias Web Padrões de Projeto - Camada de Apresentação Cristiano Lehrer, M.Sc. Padrões da Camada de Apresentação (1/2) Intercepting Filter Viabiliza pré e pós processamento de requisições. Front Controller
Leia maisUFG - Instituto de Informática
UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 10 Persistência de Dados
Leia mais10/07/2013. Camadas. Principais Aplicações da Internet. Camada de Aplicação. World Wide Web. World Wide Web NOÇÕES DE REDE: CAMADA DE APLICAÇÃO
2 Camadas NOÇÕES DE REDE: CAMADA DE APLICAÇÃO Introdução à Microinformática Prof. João Paulo Lima Universidade Federal Rural de Pernambuco Departamento de Estatística e Informática Aplicação Transporte
Leia maisNoções de. Microsoft SQL Server. Microsoft SQL Server
Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados
Leia maisCONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;
CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.
Leia maisProgramação Web Prof. Wladimir
Programação Web Prof. Wladimir Linguagem de Script e PHP @wre2008 1 Sumário Introdução; PHP: Introdução. Enviando dados para o servidor HTTP; PHP: Instalação; Formato básico de um programa PHP; Manipulação
Leia maisDOCUMENTAÇÃO DO FRAMEWORK - versão 2.0
DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando
Leia maisPRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)
RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,
Leia maisResumo: Perguntas a fazer ao elaborar um projeto arquitetural
Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?
Leia maisSistemas Distribuídos. Professora: Ana Paula Couto DCC 064
Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução
Leia maisProgramação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza
Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem
Leia maisDesenvolvendo Websites com PHP
Desenvolvendo Websites com PHP 2ª Edição Juliano Niederauer Novatec Copyright 2009, 2011 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução
Leia maisPrevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki
Prevayler Perola André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki Prevayler Prevayler é a implementação em Java do conceito de Prevalência. É um framework que prega uma JVM invulnerável
Leia maisAplicação Prática de Lua para Web
Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio
Leia maiswww.neteye.com.br NetEye Guia de Instalação
www.neteye.com.br NetEye Guia de Instalação Índice 1. Introdução... 3 2. Funcionamento básico dos componentes do NetEye...... 3 3. Requisitos mínimos para a instalação dos componentes do NetEye... 4 4.
Leia maisAmbiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração
Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Ambiente Web É o ambiente formado
Leia maisIntrodução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger www.elizabete.com.br
IntroduçãoàTecnologiaWeb TiposdeSites ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br TiposdeSites Índice 1 Sites... 2 2 Tipos de Sites... 2 a) Site
Leia maisManual do Painel Administrativo
Manual do Painel Administrativo versão 1.0 Autores César A Miggiolaro Marcos J Lazarin Índice Índice... 2 Figuras... 3 Inicio... 5 Funcionalidades... 7 Analytics... 9 Cidades... 9 Conteúdo... 10 Referência...
Leia maisAmbiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro
Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Ambiente Web É o ambiente
Leia maisSumário. Parte I Introdução 21. 1 Introdução 15 1.1 O Rails é ágil... 17 1.2 Explorando o conteúdo... 18 1.3 Agradecimentos... 19
Sumário 1 Introdução 15 1.1 O Rails é ágil.......................................................... 17 1.2 Explorando o conteúdo................................................... 18 1.3 Agradecimentos........................................................
Leia maisIntrodução a Banco de Dados
Introdução a Banco de Dados Ricardo Henrique Tassi - Departamento de Replicação Índice 1- Introdução... 03 2- Quais são os bancos de dados mais conhecidos hoje em dia...04 3- Quais são os tipos de banco...05
Leia maisLuiz Arão Araújo Carvalho Bacharel em Ciência da Computação Desenvolvedor RedeSat-TO maximusmano@gmail.com http://www.maxonrails.wordpress.
Parte II Luiz Arão Araújo Carvalho Bacharel em Ciência da Computação Desenvolvedor RedeSat-TO maximusmano@gmail.com http://www.maxonrails.wordpress.com Rails - Instalação Windows gem install rails Plataformas
Leia maisABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE
ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com
Leia maiswww.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00
www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 Controle de Revisões Micropagamento F2b Web Services/Web 18/04/2006 Revisão Data Descrição 00 17/04/2006 Emissão inicial. www.f2b.com.br
Leia maisProgramando em PHP. Conceitos Básicos
Programando em PHP www.guilhermepontes.eti.br lgapontes@gmail.com Conceitos Básicos Todo o escopo deste estudo estará voltado para a criação de sites com o uso dos diversos recursos de programação web
Leia maisII Semana de Tecnologia da Informação. Rails Framework
II Semana de Tecnologia da Informação Rails Framework Rails Instalação Ruby versão 1.8.7 Linux: ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz ou apt-get install ruby (Debian/Ubuntu) Windows:
Leia maisConteúdo Programático de PHP
Conteúdo Programático de PHP 1 Por que PHP? No mercado atual existem diversas tecnologias especializadas na integração de banco de dados com a WEB, sendo o PHP a linguagem que mais se desenvolve, tendo
Leia maisConstrutor de sites SoftPixel GUIA RÁPIDO - 1 -
GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template
Leia maisO CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE
O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE Renan Leme Nazário, Ricardo Rufino Universidade Paranaense (Unipar) Paranavaí PR - Brasil renazariorln@gmail.com, ricardo@unipar.br Resumo. Este artigo
Leia maisSumário. Apresentação O que é o Centro de Gerenciamento de Serviços (CGS) NTI? Terminologia Status do seu chamado Utilização do Portal Web
Sumário Apresentação O que é o Centro de Gerenciamento de Serviços (CGS) NTI? Terminologia Status do seu chamado Utilização do Portal Web Fazendo Login no Sistema Tela inicial do Portal WEB Criando um
Leia maisCurso de Aprendizado Industrial Desenvolvedor WEB
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os
Leia maisINFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima
INFORMÁTICA FUNDAMENTOS DE INTERNET Prof. Marcondes Ribeiro Lima Fundamentos de Internet O que é internet? Nome dado a rede mundial de computadores, na verdade a reunião de milhares de redes conectadas
Leia maisCamada de Aplicação. DNS Domain Name System. Redes de Computadores Prof. Leandro C. Pykosz
Camada de Aplicação Redes de Computadores Prof. Leandro C. Pykosz Camada de Aplicação A camada de aplicação fornece os serviços "reais" de rede para os usuários. Os níveis abaixo da aplicação fornecem
Leia maisManual do usuário - Service Desk SDM - COPASA. Service Desk
Manual do usuário - Service Desk SDM - COPASA Service Desk Sumário Apresentação O que é o Service Desk? Terminologia Status do seu chamado Utilização do Portal Web Fazendo Login no Sistema Tela inicial
Leia maisUm Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena
Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE
Leia maisO Framework Rails. Diego Rubin http://diegorubin.com @diegorubin
O Framework Rails Diego Rubin http://diegorubin.com @diegorubin Introdução David Heinemeier Hansson (DHH) 2004 MVC Restful Meta-Framework Convention over configuration Rails 3.1 Ferramentas Rake Bundler
Leia maisIntrodução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional
Introdução à Linguagem JAVA Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação Laboratório de Visão Computacional Vantagens do Java Independência de plataforma; Sintaxe semelhante às linguagens
Leia maisUnidade 8: Padrão MVC e DAO Prof. Daniel Caetano
Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores
Leia maisMANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal
MANUAL DO ADMINISTRADOR LOCAL Entidade Municipal Abril / 2011 ÍNDICE Objetivos do Sistema de Registro de Integrado - REGIN... 3 Principais Módulos do Sistema... 4 Módulo Controle de Acesso... 5 Módulo
Leia maisRoteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido
Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura
Leia maisSISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl
SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo
Leia maisDWEB. Design para Web. Fundamentos Web I. Curso Superior de Tecnologia em Design Gráfico
DWEB Design para Web Curso Superior de Tecnologia em Design Gráfico Fundamentos Web I E não vos conformeis com este século, mas transformai-vos pela renovação da vossa mente, para que experimenteis qual
Leia maisProduto: Webscan Relatório II Programas desenvolvidos, testados e documentados
Produto: Webscan Relatório II Programas desenvolvidos, testados e documentados Sérgio Oliveira Campos Contrato N : 2008/000514 Sumário 1 Introdução 1 2 Bibliotecas Utilizadas 2 2.1 Reconhecimento de Texto
Leia maisCriando Frameworks Inteligentes com PHP. Uma abordagem prática: vantagens, aplicações e procedimentos.
Criando Frameworks Inteligentes com PHP Uma abordagem prática: vantagens, aplicações e procedimentos. Apresentação Equipes ao redor do mundo utilizam diferentes padrões de projeto, de acordo com suas necessidades
Leia maisDocumento de Análise e Projeto VideoSystem
Documento de Análise e Projeto VideoSystem Versão Data Versão Descrição Autor 20/10/2009 1.0 21/10/2009 1.0 05/11/2009 1.1 Definição inicial do documento de análise e projeto Revisão do documento
Leia maisIntegração de sistemas utilizando Web Services do tipo REST
Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br
Leia mais2 a Lista de Exercícios
Projeto de Sistemas 2011/2 2 a Lista de Exercícios (1) Um importante aspecto do projeto da camada de Lógica de Negócio (LN) diz respeito à organização das classes e distribuição de responsabilidades entre
Leia maishttp://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho
vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS
Leia maisConfigurando o IIS no Server 2003
2003 Ser ver Enterprise Objetivo Ao término, você será capaz de: 1. Instalar e configurar um site usando o IIS 6.0 Configurando o IIS no Server 2003 Instalando e configurando o IIS 6.0 O IIS 6 é o aplicativo
Leia maisProjeto Arquitetural do IEmbedded
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Projeto I Professora: Francilene Garcia Equipe: Carolina Nogueira de
Leia maisConceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)
Márcio Koch 1 Currículo Formado na FURB em Ciência da Computação Pós graduado em Tecnologias para o desenvolvimento de aplicações web Mestrando em Computação Gráfica na UDESC Arquiteto de software na Senior
Leia maisUniversidade da Beira Interior
Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação
Leia maisSISTEMA DE BANCO DE IMAGENS MANUAL DE USO
SISTEMA DE BANCO DE IMAGENS MANUAL DE USO Versão: BETA Última atualização: 24/06/2012 Índice O sistema de banco de imagens 03 Pesquisa de fotos 04 Pautas e eventos 08 Cadastro de fotos 09 Edição e indexação
Leia maisIntrodução ao PHP. Prof. Késsia Marchi
Introdução ao PHP Prof. Késsia Marchi PHP Originalmente PHP era um assíncrono para Personal Home Page. De acordo com convenções para atribuições de nomes recursivas do GNU foi alterado para PHP Hypertext
Leia maisSistemas Distribuídos
Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor
Leia maisSCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br
SCE-557 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side
Leia maisIntranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO
Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial
Leia maisWebMail --------------------------------------------------------------------------------------------------------------- Manual do cliente
WebMail --------------------------------------------------------------------------------------------------------------- Manual do cliente www.plugin.com.br 1 ÍNDICE Prefácio...3 Sobre Este Manual... 3
Leia maisWebApps em Java com uso de Frameworks
WebApps em Java com uso de Frameworks Fred Lopes Índice O que são frameworks? Arquitetura em camadas Arquitetura de sistemas WEB (WebApps) Listagem resumida de frameworks Java Hibernate O que são frameworks?
Leia mais5 Detalhes da Implementação
Detalhes da Implementação 101 5 Detalhes da Implementação Neste capítulo descreveremos detalhes da implementação do Explorator que foi desenvolvido usando o paradigma MVC 45 e o paradigma de CoC 46 (Convention
Leia maisSistemas Distribuídos. Professora: Ana Paula Couto DCC 064
Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para
Leia maisINTRODUÇÃO: 1 - Conectando na sua conta
INTRODUÇÃO: Com certeza a reação da maioria dos que lerem esse mini manual e utilizarem o servidor vão pensar: "mas porque eu tenho que usar um console se em casa eu tenho uma interface gráfica bonito
Leia maisComeçando com Ruby on Rails @gibsongabriel
Começando com Ruby on Rails @gibsongabriel Yukiriho 'Matz' Matsumoto http://ruby-lang.org/pt/ Ruby é uma linguagem de programação interpretada, com tipagem forte e dinâmica, que tem como foco a simplicidade
Leia maisManual de utilização do sistema OTRS (Atendimento) Cliente Externo
Manual de utilização do sistema OTRS (Atendimento) Cliente Externo 1 LISTA DE ILUSTRAÇÕES FIGURA 1 - TELA DE LOGIN... 5 FIGURA 2 - TELA INICIAL... 6 FIGURA 3 PREFERÊNCIAS DO USUÁRIO... 6 FIGURA 4 NOVO
Leia maisCapítulo 04: Persistência com SQLite
Capítulo 04: Persistência com SQLite Instrutor Programador desde 2000 Aluno de doutorado Mestre em informática pelo ICOMP/UFAM Especialista em aplicações WEB FUCAPI marcio.palheta@gmail.com sites.google.com/site/marcio
Leia maisWeb Design Aula 11: Site na Web
Web Design Aula 11: Site na Web Professora: Priscilla Suene priscilla.silverio@ifrn.edu.br Motivação Criar o site em HTML é interessante Do que adianta se até agora só eu posso vê-lo? Hora de publicar
Leia maisProgramação para a Web - I. José Humberto da Silva Soares
Programação para a Web - I José Humberto da Silva Soares Fundamentos de Internet Rede Mundial de Computadores; Fornece serviços, arquivos e informações; Os computadores que têm os recursos são chamados
Leia maisDespachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1
DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 1 Sumário 1 - Instalação Normal do Despachante Express... 3 2 - Instalação do Despachante Express em Rede... 5 3 - Registrando o Despachante Express...
Leia maisManual Administrador - Mídia System
Manual Administrador - Mídia System Logo após cadastrarmos sua Empresa em nosso sistema, será enviado um e-mail confirmando as informações de acesso do Administrador do sistema. Obs: Caso não tenha recebido
Leia maisRotina de Discovery e Inventário
16/08/2013 Rotina de Discovery e Inventário Fornece orientações necessárias para testar a rotina de Discovery e Inventário. Versão 1.0 01/12/2014 Visão Resumida Data Criação 01/12/2014 Versão Documento
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maiswww.victorpinheiro.jimdo.com www.victorpinheiro.jimdo.com
SERVIÇOS DE REDES DE COMPUTADORES Prof. Victor Guimarães Pinheiro/victor.tecnologo@gmail.com www.victorpinheiro.jimdo.com www.victorpinheiro.jimdo.com Modelo TCP/IP É o protocolo mais usado da atualidade
Leia maisCAPÍTULO 2. Este capítulo tratará :
1ª PARTE CAPÍTULO 2 Este capítulo tratará : 1. O que é necessário para se criar páginas para a Web. 2. A diferença entre páginas Web, Home Page e apresentação Web 3. Navegadores 4. O que é site, Host,
Leia maisAnexo I Formulário para Proposta
PLATAFORMA CGI.br Solicitação de Propostas SP Anexo I Formulário para Proposta Data: 05/07/2013 Versão: 1.1 Plataforma CGI.br Solicitação de Propostas - SP Anexo I Formulário para Proposta 1. Estrutura
Leia maisSistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG
Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Marco T. A. Rodrigues*, Paulo E. M. de Almeida* *Departamento de Recursos em Informática Centro Federal de Educação Tecnológica de
Leia maisProjeto de Arquitetura
Introdução Projeto de Arquitetura (Cap 11 - Sommerville) UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Até agora, estudamos: Os
Leia maisFERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS
FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS PAULO ALBERTO BUGMANN ORIENTADOR: ALEXANDER ROBERTO VALDAMERI Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento
Leia maisAspectos técnicos do desenvolvimento baseado em componentes
Aspectos técnicos do desenvolvimento baseado em componentes Um novo processo de desenvolvimento O uso de componentes traz mudanças no processo de desenvolvimento Além de desenvolver um produto, queremos
Leia maisRede de Computadores
Escola de Ciências e Tecnologia UFRN Rede de Computadores Prof. Aquiles Burlamaqui Nélio Cacho Luiz Eduardo Eduardo Aranha ECT1103 INFORMÁTICA FUNDAMENTAL Manter o telefone celular sempre desligado/silencioso
Leia maisProf. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br
Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,
Leia maisAlterações Easycaptive 2.0.10
Alterações Easycaptive 2.0.10 data: 10/04/2010 Este documento tem por objetivo demonstrar as alterações feitas nos scripts que compõem o addon easycaptive do sistema BrazilFW Firewall and Router. Todo
Leia mais1. Introdução. 2. Funcionamento básico dos componentes do Neteye
1. Introdução Esse guia foi criado com o propósito de ajudar na instalação do Neteye. Para ajuda na utilização do Software, solicitamos que consulte os manuais da Console [http://www.neteye.com.br/help/doku.php?id=ajuda]
Leia maisProcedimentos para Reinstalação do Sisloc
Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...
Leia maisHardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)
Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,
Leia maisUSO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP
USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP SMTP "Protocolo de transferência de correio simples (ou em inglês Simple Mail Transfer Protocol ) é o protocolo padrão para envio de e- mails através da
Leia mais