Integrando Frameworks para Desenvolvimento de Aplicações RIA (Rich Internet Applications) com Ruby On Rails e Adobe Flex Utilizando a Arquitetura MVC

Tamanho: px
Começar a partir da página:

Download "Integrando Frameworks para Desenvolvimento de Aplicações RIA (Rich Internet Applications) com Ruby On Rails e Adobe Flex Utilizando a Arquitetura MVC"

Transcrição

1 FACULDADE SETE DE SETEMBRO - FASETE Curso de Bacharelado em Sistemas de Informação Jackson Pires de Oliveira Santos Júnior Integrando Frameworks para Desenvolvimento de Aplicações RIA (Rich Internet Applications) com Ruby On Rails e Adobe Flex Utilizando a Arquitetura MVC Paulo Afonso BA NOV / 2007

2 JACKSON PIRES DE OLIVEIRA SANTOS JÚNIOR Integrando frameworks para Desenvolvimento de Aplicações RIA (Rich Internet Applications) com Ruby On Rails e Adobe Flex Utilizando a Arquitetura MVC Monografia apresentada ao Curso de Bacharelado em Sistemas de Informação da Faculdade Sete de Setembro FASETE como requisito para avaliação conclusiva para obtenção do grau de Bacharel em Sistemas de Informação. Orientador: Prof. Ryan Ribeiro de Azevedo. Paulo Afonso - BA NOV / 2007 i

3 JACKSON PIRES DE OLIVEIRA SANTOS JÚNIOR Integrando Frameworks para Desenvolvimento de Aplicações RIA (Rich Internet Applications) com Ruby On Rails e Adobe Flex Utilizando a Arquitetura MVC Monografia submetida ao corpo docente da Faculdade Sete de Setembro FASETE, como parte dos requisitos necessários à obtenção da Graduação no Curso de Bacharelado em Sistemas de Informação. Aprovada por: Prof. Ryan Ribeiro de Azevedo, MSc. (Orientador) Thiago Sávio Carbone, MSc. Igor Medeiros Vanderlei, MSc. Paulo Afonso - BA NOV / 2007 ii

4 Dedico este trabalho primeiramente a Deus presente em todos os momentos, à minha esposa Daiany que sempre me apoiou em minhas decisões, aos meus pais Jackson e Ruth, razão da minha existência, aos meus irmãos e as pessoas especiais que fazem parte do meu dia-a-dia. iii

5 AGRADECIMENTOS Para a elaboração desta monografia contei com o apoio de muitas pessoas importantes, sem as quais não teria conseguido concluí-la. Agradeço a Deus pela oportunidade da vida e por estar presente em todos os momentos que precisei. À minha esposa Daiany Pires, que tem estado sempre ao meu lado me apoiando em todas as decisões e me incentivando na minha caminhada. A toda minha família, em especial aos meus pai Jackson Pires e Ruth Wanderley que amo tanto e que sempre me mostram o caminho certo a seguir. Aos meus irmãos, Michelle Wanderley, Priscilla Wanderley e Samuel Wanderley que sempre me encorajam quando necessário. Aos professores que colaboraram direta e indiretamente para a realização desse trabalho, em especial aos Professores Ryan Ribeiro Azevedo e Eloy Lago Nascimento, profissionais capacitados que não meço minhas palavras para agradecer a atenção e compreensão. Aos colegas de classe que conquistei ao longo de 4 anos em especial a Igor Costa e Marcus Alves que sempre me ajudaram quando precisei. E aos demais amigos, familiares que apoiaram para conclusão desse trabalho. A todos meu sincero agradecimento. iv

6 "Aprender é a única coisa de que a mente nunca se cansa, nunca tem medo e nunca se arrepende. (Leonardo da Vinci) v

7 RESUMO Com o constante crescimento e evolução das aplicações utilizadas através da Web, empresas e profissionais procuram uma forma de portar suas aplicações para a Internet de forma que elas fiquem disponíveis em qualquer lugar e a qualquer hora, permitindo assim um maior conforto para seus usuários. Diante das novas tecnologias disponíveis para o desenvolvimento de aplicações RIA (Rich Internet Applications), escolheu-se o Ruby on Rails e o Adobe Flex, por se tratarem de tecnologias fortemente comentadas por especialistas nos últimos tempos. Esse trabalho propõe-se a mostrar o funcionamento e integração dos frameworks Ruby on Rails e Adobe Flex como ferramentas para o desenvolvimento de aplicações RIA. Para que esse estudo fosse concluído foram utilizadas pesquisas bibliográficas e também foi utilizado um estudo de caso onde foi desenvolvida uma aplicação piloto que demonstrou a possibilidade de integração entre as tecnologias estudadas. Por fim, observou-se que as tecnologias se integram de forma simples aumentando a produtividade de aplicações ricas para a Internet. Palavras-chaves: RIA, desenvolvimento Web, Adobe Flex, Ruby on Rails. vi

8 ABSTRACT With the constant growth and development of applications used by the Web, companies and professionals look for a way to port their applications to the Internet so that they are available anywhere and at any time, thus allowing greater comfort for its users. In the face of new technologies available for the development of applications RIA (Rich Internet Applications), It has been chosen the Ruby on Rails and the Adobe Flex, because they deal with technology heavily commented by experts recently. This work proposes to show the operation and integration of the frameworks Ruby on Rails and Adobe Flex as tools for the development of applications RIA. For this study to be completed, bibliographic research was used and also it was used a case study where a pilot application that was developed showed the possibility of integration between the technologies studied. Finally, it was observed that the technologies integrate themselves in a simple way increasing the productivity of rich applications for the Internet. Keywords: RIA, Web development, Adobe Flex, Ruby on Rails. vii

9 LISTA DE FIGURAS Figura 2.1 Aplicações em três camadas Figura 2.2 Modelo MVC Figura 3.1 Site do instalador One Click Installer Figura 3.2 Comando ruby v para verificar a versão instalada do Ruby Figura 4.1 Resultado do Rails após o comando rails Minha_App Figura 4.2 O diretório app/ Figura 4.3 Documentação interna da nossa aplicação Figura 4.4 Passos para a criação de Aplicações Web com Ruby on Rails Figura 5.1 Arquitetura de uma aplicação Flex Figura 5.2 Tela Inicial de Instalação Figura 5.3 Escolhendo a opção de Instalação Figura 5.4 Selecionando o local de instalação Figura 5.5 Instalando o Flash Player para cada browser Figura 5.6 Tela de confirmação antes da instalação Figura 5.7 Caixa de diálogo de um novo projeto Flex Figura 5.8 Obtendo o nome do projeto Figura 6.1 Separação da aplicação na arquitetura MVC Figura 6.2 Exemplo do ciclo de comunicação utilizando HTTPService Figura 6.3 Diagrama Entidade Relacionamento BDDOC Figura 6.4 Estrutura de Pastas da Aplicação Piloto BDDOC Figura 6.5 Edição do arquivo database.yml Figura 6.6 Configuração do arquivo documentos.rb Figura 6.7 Configuração do arquivo area.rb Figura 6.8 Configuração do arquivo tipo.rb Figura 6.9 Listagem de tipos Figura 6.10 Listagem de áreas Figura 6.11 Listagem dos documentos Figura 6.12 Criação do projeto na pasta public Figura 6.13 Tela de cadastro de documentos Figura 6.14 Tela de pesquisa Figura 6.15 Tela principal e de listagem de documentos Figura 6.16 Funções HTTPService viii

10 Figura 6.17 Componentes de tela preenchidos com o retorno do HTTPService Figura 6.18 Funcionalidade de envio de arquivo Figura 6.19 Função cadastrar() Figura 6.20 Listagem de trabalhos cadastrados ix

11 LISTA DE ABREVIATURAS AJAX Asynchronous Javascript and XML API Application Programming Interface BDDOC Banco de Dados de Documentos CRUD Create Read Update Delete DRY Don't Repeat Yourself IDE Integrated Development Environment HTML Hyper Text Markup Language HTTP Hiper Text Transference Protocol JSP Java Server Pages MVC Model View Controller MXML Macromedia Extensible Markup Language ORM Object Relational Mapping PHP Personal Home Page RIA Rich Internet Applications RJS Ruby Javascript SDK Software Development Kit SWF Small Web File URL Uniform Resource Locator XML Extensible Markup Language x

12 SUMÁRIO CAPÍTULO 1 INTRODUÇÃO Contextualização Identificação do problema principal e motivação Relevância do tema Objetivos do trabalho Metodologia Organização do trabalho... 6 CAPÍTULO 2 - A ARQUITETURA MVC Introdução Apresentação Características do MVC Camadas do MVC Vantagens e Desvantagens Discussão CAPÍTULO 3 - RUBY A LINGUAGEM Introdução Histórico Características Vantagens e desvantagens Instalação Aspectos práticos Discussão CAPÍTULO 4 - RUBY ON RAILS O FRAMEWORK Introdução Histórico Características Frameworks do Rails Active Mailer Action Pack Active Record Action WebService Active Support xi

13 4.5 Estrutura de Diretórios Scripts do Ruby on Rails Vantagens e desvantagens Instalação Aspectos práticos Discussão CAPÍTULO 5 - ADOBE FLEX O FRAMEWORK Introdução Histórico Características MXML Action Script Programação Dirigida a Eventos Instalação Aspectos práticos Discussão CAPÍTULO 6 - ESTUDO DE CASO Introdução Estrutura Básica da Aplicação Piloto Funcionalidades da Aplicação Piloto Definindo o padrão de comunicação entre os frameworks Desenvolvendo o Server-Side Desenvolvendo o Client-Side Efetivando o cadastro de documentos Efetivando a pesquisa de documentos Discussão CAPÍTULO 7 - CONCLUSÕES Introdução Considerações sobre o trabalho realizado Identificação de Trabalhos Futuros Conclusão Pessoal a Respeito dotrabalho Realizado REFERÊNCIAS BIBLIOGRÁFICAS xii

14 Capítulo 1 Introdução CAPÍTULO 1 INTRODUÇÃO 1.1 Contextualização Nos dias atuais, a Web tem demonstrado sua nova roupagem, o famoso termo Web 2.0 que segundo O Reilly (2003) é definido como sendo a mudança para uma Internet como plataforma, e um entendimento das regras para obter sucesso nesta nova plataforma, vem se tornando cada vez mais real através de empresas e serviços como a Google (NODA, 2005), Yahoo! (NODA, 2005), Wikipedia (NODA, 2005), que trazem em seus mais diversos serviços e produtos novas formas de interação para o usuário. Entre outras, a regra mais importante é desenvolver aplicativos que aproveitem os efeitos de rede para se tornarem melhores quanto mais são usados pelas pessoas, aproveitando a inteligência coletiva. Uma das vertentes da Web 2.0 são as aplicações RIA (Rich Internet Applications - Aplicações Ricas para Internet) (O REILLY, 2003). Essas aplicações prometem levar uma nova experiência ao usuário, com novas formas de interação, como se estivessem em aplicativos standalone 1. Quando falamos em uma nova experiência, estamos focados na facilidade e interatividade que o usuário vai ter ao usar a aplicação (FRANCO, 2007). As aplicações RIA, combinam os benefícios da Web, como o baixo custo de atualizar aplicações, com o uso rico de aplicações standalone. Com as aplicações RIA, não há necessidade de atualização de página, como acontece no modo convencional, assim, as respostas ao usuário são mais rápidas facilitando a integração do usuário com o sistema (FAIN, 2007, p ). RIA (Rich Internet Application) é um conceito inovador no modo de pensar e desenvolver na web. Uma aplicação RIA tem como foco principal os usuários, ou seja, levar até eles uma forma rápida e fácil de usabilidade e interatividade, unindo as funcionalidades dos softwares desktop 2 com serviços e aplicações Web, proporcionando assim um novo nível de experiência. (FRANCO, 2007) 1 Programas completamente autosuficientes, que não necessitam de software auxiliar para funcionar. Mais detalhes em: < 2 Desktop, expressão inglesa oriunda de desktop publisher (editor de textos de mesa). Mais detalhes em: < 1

15 Capítulo 1 Introdução Para tal, existem diversas ferramentas no mercado que auxiliam os desenvolvedores no desenvolvimento, depuração e publicação (colocar em modo de produção) dessas aplicações. Pode-se citar dentre as diversas tecnologias disponíveis no mercado que auxiliam o desenvolvimento de aplicações RIA, os frameworks 3 Ruby on Rails (FOWLER, 2006) e Adobe Flex (BROWN, 2007) que juntos podem diminuir consideravelmente o tempo de desenvolvimento de uma aplicação RIA, facilitando o trabalho da equipe de desenvolvimento. Destaca-se ainda, que os frameworks Ruby on Rails e Adobe Flex utilizam linguagens de programação específicas, tais como: Ruby (OLIVEIRA JUNIOR, 2006) para o Ruby on Rails e Action Script 3 (BROWN, 2007) para o Adobe Flex. Essas tecnologias utilizam o padrão de arquitetura MVC (Model, View, Controller) (KRASNER & POPE, 1998). Este padrão é bastante utilizado no desenvolvimento de aplicações, pois determina a separação de uma aplicação em três entidades. A entidade Model que é formada por entidades que representam os dados da aplicação. A View que tem por objetivo realizar a apresentação destes dados e capturar os eventos do usuário; sendo representada pelas telas. A entidade Controller que faz a ligação entre a Model e a View, realizando o tratamento dos eventos, atuando sobre a Model e alterando a View para representar a nova forma dos dados. Nota-se que uma aplicação RIA tem relacionamento direto com o View, o que pode confundir a necessidade do Ruby on Rails para tal solução. No entanto, o uso do framework Ruby on Rails será de suma importância, visto que o mesmo dará suporte ao Adobe Flex como será visto no Capítulo 6. Diante do exposto, esse trabalho tem como proposta mostrar a possível integração dos frameworks citados, apresentando assim, as facilidades e vantagens de utilizá-los para o desenvolvimento de aplicações RIA utilizando a arquitetura MVC. 3 Conjunto de programas e rotinas que facilitam o desenvolvimento de uma aplicação. Mais detalhes em: < 2

16 Capítulo 1 Introdução 1.2 Identificação do problema principal e motivação Cada vez mais é possível ler e ouvir pessoas falando sobre usabilidade, design centrado no usuário e outros conceitos. Com o aparecimento de tecnologias como AJAX (EICHORN, 2006) e Adobe Flex, está sendo possível mostrar que o HTML 4, por si só, não é capaz de criar experiências mais ricas e intuitivas para os usuários de aplicativos Web (TERRACINI, 2007). Geralmente quando pensamos em construir uma página, imaginamos página a página. Esse pensamento toma como base um método de desenvolvimento pobre utilizado até mesmo antes da Web (BROW, 2007, p. 1-10). É um tanto quanto óbvio a importância de se querer melhorar a interface dos aplicativos: é com eles que os usuários interagem. Eles não estão interessados com quais linguagens de programação foi feito, se o framework "x" ou "y" foi utilizado. Eles querem conseguir utilizar o aplicativo e que ele ajude-os a fazer o que eles querem fazer (TERRACINI, 2007). Segundo Cagan & Vogel,(1997) uma boa experiência em um software significa ser útil, usável e desejável, onde: Útil: Ajuda os usuários a resolverem problemas importantes de maneira rápida e eficiente, de acordo com suas necessidades; Usável: Fácil de aprender e usar, de maneira intuitiva e natural para os usuários, com uma qualidade visual agradável passando a sensação de alta qualidade; Desejável: De acordo com os valores e costumes dos usuários, dando sensação de controle e liberdade. O Adobe Flex possui funcionalidades para entrega eficiente de aplicações ricas e de alta performance. As aplicações baseadas nele permitem que os desenvolvedores estendam todas as suas funcionalidades, criando aplicações mais robustas e integradas com arquiteturas de servidor (FRANCO, 2007). 4 HTML é uma linguagem de marcação utilizada para produzir páginas na Web. Mais detalhes em: < 3

17 Capítulo 1 Introdução Contudo, o Adobe Flex foi desenvolvido para trabalhar como a camada View de um projeto, necessitando dessa forma de uma tecnologia que a auxilie com procedimentos que sejam executados do lado do servidor. O Ruby on Rails, por sua vez, é um framework Web de alto nível, ou seja, se propõe a esconder os detalhes menos interessantes do desenvolvimento Web permitindo que o programador se concentre no que realmente é importante, ou seja, na lógica e apresentação de sua aplicação (FERRAZ, 2007) Rails leva em sua arquitetura o padrão de arquitetura MVC. O molde MVC oferece vantagens significativas no desenvolvimento de aplicativos, através da separação das camadas, possibilitando implementar com maior facilidade e clareza questões programáticas importantes como a persistência de dados, controle de segurança, comunicação em rede e fluxo de visualização (FRANCO, 2007). Procura-se então, uma forma de poder construir softwares RIA que atendam com plenitude o que os usuários precisam, oferecendo uma experiência positiva no tocante em todos os aspectos (facilidade, design, requisitos, etc). Diante do exposto, este trabalho tem, portanto, como principal motivação mostrar a possibilidade de integração entre os frameworks (Adobe Flex e Ruby on Rails) utilizando a arquitetura MVC, se houver possibilidade de integração, quais seriam as formas possíveis, e ainda saber se essas ferramentas integradas facilitam o desenvolvimento das aplicações RIA. 1.3 Relevância do tema Automatizar tarefas e ganhar tempo faz parte do nosso dia a dia, sabemos que ter ferramentas adequadas que nos dê flexibilidade e garantia de um bom suporte é essencial nos dias de hoje para que possamos desenvolver produtos com produtividade e qualidade. Hoje no mercado existe uma infinidade de ferramentas e frameworks que prometem proporcionar isso, mas, o grande problema é garantir flexibilidade de expansão, manutenção e suporte (FRANCO, 2007). Uma das melhores formas de desenvolvimento Web é usar frameworks, pois estes têm uma estrutura definida que facilita o desenvolvimento da aplicação, habilitando designers e programadores a gastarem mais tempo determinando as exigências do software do que com detalhes tediosos de baixo nível do sistema, deixando-o organizado e de fácil expansão (FRANCO, 2007). 4

18 Capítulo 1 Introdução Nesse contexto, observa-se que existe a necessidade tanto do usuário, para conseguir usar os recursos oferecidos, como do provedor dos serviços, tentando desenvolver soluções que facilitem o trabalho de seus usuários. Tais soluções são muitas vezes alcançadas facilmente quando a utilização de aplicações RIA é empregada. Para a comunidade acadêmica, bem como profissionais do ramo, esse estudo traz a oportunidade de conhecimento, visto que o assunto abordado utiliza tecnologias que surgiram a poucos anos, e por isso, existe uma grande dificuldade de se encontrar material bibliográfico sobre o assunto. Este trabalho ainda trará o desenvolvimento de uma aplicação piloto, na qual será possível perceber de forma real como implementar uma aplicação rica para Internet utilizando as tecnologias abordadas. 1.4 Objetivos do trabalho Este trabalho possui como objetivo geral, mostrar à comunidade acadêmica e profissional a possibilidade de integração dos frameworks Adobe Flex e Ruby on Rails utilizando a arquitetura MVC para desenvolver aplicações RIA. Este trabalho tem como objetivos específicos: Apresentar os padrões da arquitetura MVC; Apresentar o funcionamento do framework Ruby on Rails; Apresentar o funcionamento do framework Adobe Flex; Apresentar um método para o desenvolvimento de uma aplicação RIA utilizando a arquitetura MVC e integrando os frameworks apresentados. Dessa forma será possível mostrar como trabalhar com os dois frameworks em conjunto para desenvolver uma aplicação RIA. Para tal será criada uma aplicação piloto, que apesar de simples, demonstrará funcionalidades que são a base para a maioria dos tipos de aplicação que venham a surgir, através dessa integração. 5

19 Capítulo 1 Introdução 1.5 Metodologia Para que o trabalho aqui proposto possa ser desenvolvido, foram executadas as seguintes atividades: revisão da literatura, identificando os pontos críticos dos trabalhos analisados, tendo o tema baseado em literatura nacional e internacional, sendo realizada, em parte, durante o início do ano de 2007; participações em cursos de aperfeiçoamento; desenvolvimento de uma aplicação piloto utilizando os recursos aprendidos durante o estudo do tema para promover a integração entre os frameworks. Tal aplicação demonstrará como é feita a comunicação entre os dois frameworks em pelo menos duas situações: envio de mensagens a partir do Adobe Flex para o Ruby on Rails, bem como o contrário. Por fim análise dos resultados obtidos e escrita da monografia. 1.6 Organização do trabalho O trabalho foi estruturado em sete capítulos. O presente capítulo tem por objetivo permitir ao leitor uma visão geral das tecnologias dos frameworks apresentados e seus benefícios para a comunidade acadêmica e sociedade, justificando a escolha e a relevância do tema e explicando os objetivos do trabalho. Além disso, este capítulo apresenta uma breve visualização dos demais capítulos deste documento, mostrando nos parágrafos a seguir uma breve descrição desses capítulos. No Capítulo 2 são apresentados os conceitos do padrão arquitetural MVC utilizado nos frameworks e discutindo o seu funcionamento na aplicação piloto que servirá para demonstrar os objetivos deste trabalho. No Capítulo 3 é analisada a linguagem Ruby que é a base para o framework Ruby on Rails, fundamentando conceitos e apresentando a história e aspectos práticos da linguagem. No Capítulo 4 é analisado o framework Ruby on Rails, apresentando seu funcionamento, histórico, conceitos e aspectos práticos que ajudarão no desenvolvimento da aplicação piloto. 6

20 Capítulo 1 Introdução No Capítulo 5 é analisado o framework Adobe Flex, onde é apresentado seu histórico, funcionamento, conceitos básicos e linguagens utilizadas para a manipulação do mesmo, tornando possível o desenvolvimento de uma aplicação RIA. Ainda neste capítulo é apresentado como se enquadra esse framework na arquitetura MVC. No Capítulo 6 é descrito como foi criada a aplicação piloto utilizando os frameworks e a arquitetura MVC. Nessa aplicação será demonstrado como enviar e receber mensagens entre as duas tecnologias, possibilitando assim a criação de qualquer aplicação a partir desses princípios. No Capítulo 7 são apresentadas as considerações finais do trabalho de monografia e uma conclusão de todo estudo realizado. Neste capítulo também são apresentadas sugestões para trabalhos futuros. 7

21 Capítulo 2 A Arquitetura MVC CAPÍTULO 2 - A ARQUITETURA MVC 2.1 Introdução Este capítulo abordará a arquitetura de desenvolvimento MVC (Model, View, Controller), apresentando seus conceitos e fundamentos, bem como o funcionamento da sua estrutura. Essa arquitetura divide o sistema em camadas, permitindo uma fácil interação dos desenvolvedores envolvidos em determinado projeto. Será apresentada também cada uma das camadas que compõe a arquitetura MVC, bem como suas características, vantagens e desvantagens, demonstrando que a arquitetura quando bem utilizada tende a aumentar a produtividade no desenvolvimento de uma aplicação. 2.2 Apresentação O grande desafio das equipes de desenvolvimento de sistemas é cada vez mais produzir aplicativos eficientes, seguros, de fácil manutenção, reutilizáveis e em prazos cada vez menores (MACORATTI, 2004). Segundo Balthazar et. al (2006, p. 02), uma organização que consegue trabalhar com sistemas de informação, baseado em um software com alta manutenibilidade, disponibilidade e segurança, tende a ser mais competitivo perante seus concorrentes. Nesse contexto, vem se destacando alguns conceitos como o desenvolvimento em camadas, a orientação a objetos, a utilização de padrões de projeto e frameworks para o desenvolvimento de sistemas (MACORATTI, 2004). A fundamentação da divisão das funcionalidades de um sistema em camadas surgiu como alternativa para solucionar problemas existentes nas aplicações de camada única, nas quais, dados e código eram armazenados em um mesmo módulo, dificultando a manutenção dos sistemas devido à grande quantidade de linhas de código em um mesmo local (BALTHAZAR et. al., 2006, p. 2). 8

22 Capítulo 2 A Arquitetura MVC Segundo Macoratti (2004), o advento da Internet foi mais uma forma de separar os sistemas em camadas de modo que eles se tornam mais flexíveis, permitindo que as partes possam ser alteradas de forma independente. O modelo de três camadas físicas (3-tier) tornou-se um padrão para sistemas corporativos com base na Web, ele divide um aplicativo de modo que a lógica de negócio resida no meio das três camadas físicas. A maior parte do código escrito reside na camada de apresentação e de negócio (MACORATTI, 2004). Segundo a Wikipedia 5, Model-view-controller (MVC) é um padrão de arquitetura de software. O MVC é uma arquitetura de software que separa o modelo de dados da aplicação, a interface do usuário, e o controle de lógica em três componentes distintos. Dessa forma, alterações feitas em um componente causa impactos mínimos nos outros (ROBALINHO, 2006, p. 27). Este padrão é bastante utilizado no desenvolvimento de aplicações, pois determina a separação de uma aplicação em três entidades. A entidade Model, que é formada por entidades que representam os dados da aplicação. A View, que tem por objetivo realizar a apresentação destes dados e capturar os eventos do usuário, sendo representada pelas telas. A entidade Controller, que faz a ligação entre a Model e a View, realizando o tratamento dos eventos, atuando sobre a Model e alterando a View para representar a nova forma dos dados (KRASNER & POPE, 1998). Segundo Silva & Moreira (2004), um dos principais objetivos do padrão arquitetural MVC é a organização do código de uma aplicação em camadas para facilitar o desenvolvimento e separação do código, bem como da interface visual, uma vez que cada camada pode ser modificada sem afetar diretamente as outras. Nota-se então a grande vantagem de se utilizar um desenvolvimento em camadas utilizando a arquitetura MVC, por esta permitir o desenvolvimento de suas camadas separadamente, não perdendo a interação entre as mesmas. 5 Enciclopédia eletrônica disponível em: 9

23 Capítulo 2 A Arquitetura MVC 2.3 Características do MVC Segundo MACORATTI (2004), algumas das características relevantes da arquitetura MVC são: Alta manutenibilidade devido ao sistema de divisão modular; Possui responsabilidades mais definidas; Separar a lógica da apresentação; Reduz o esforço do desenvolvedor na camada de apresentação; Torna a aplicação escalável. 2.4 Camadas do MVC Agora que é conhecida a idéia de desenvolvimento em camadas para utilização na produção de software, podem-se conhecer as camadas do MVC em detalhe. Verificando a Figura 2.1, podem-se notar as camadas que compõe a arquitetura MVC (Model-View-Controller). Camada de apresentação ou visualização Camada de lógica de negócios Camada de acesso a dados Figura 2.1 Aplicações em três camadas Fonte: A camada de apresentação ou visualização, conhecida como View, transforma o modelo em uma forma adequada para a interação, tipicamente um elemento da interface do usuário (KAWASE, 2006, p. 27). Segundo Gimenes & Huzita (2005, p. 18), a camada View é responsável por exibir os dados aos usuários através de um dispositivo de saída. Ainda segundo Macoratti (2004), a camada View não se preocupa como a informação foi obtida ou onde foi obtida, ela apenas exibe a informação. 10

24 Capítulo 2 A Arquitetura MVC A camada de lógica de negócios, conhecida como Controller, representa eventos, geralmente ações do usuário, e realiza mudanças no componente Model e às vezes na View (KAWASE, 2006, p. 28). O Controller aceita entradas assíncronas, por exemplo, do mouse ou teclado, passando as mensagens apropriadas para o Model e View, de modo a permitir a edição dos dados da aplicação (GIMENES & HUZITA, 2005, p. 18). A camada de acesso a dados, conhecida como Model, representa a informação para um domínio específico no qual a aplicação é executada. Model é apenas um outro nome para a camada de domínio (KAWASE, 2006, p. 27). Ainda segundo Thomas (2005, p. 9), o Model é responsável por manter o estado da aplicação. O Model contém dados específicos do domínio que serão representados e manipulados a partir das interfaces com o usuário (GIMENES & HUZITA, 2005, p. 18). Kawase (2006, p. 28) informa que muitas aplicações utilizam repositórios de dados como, por exemplo, bancos de dados. MVC não menciona essa camada de dados, pois considera que ela está encapsulada pelo componente Model. O Model é mais do que apenas dados, ele reforça as regras de negócio aplicadas aos dados (THOMAS, 2005, p. 9). É apresentada na Figura 2.2 a interação entre as camadas do padrão MVC. Entradas, ex: Teclado e mouse Controller View Mensagens Mensagens Model Figura 2.2 Modelo MVC Fonte: GIMENES & HUZITA,

25 Capítulo 2 A Arquitetura MVC Em suma, a camada View é responsável por receber a interação do usuário e apresentar às informações na tela. O Controller por sua vez recebe as ações do usuário e, caso necessário, acessa o Model que é o responsável por gerenciar e persistir os dados do sistema. 2.5 Vantagens e Desvantagens Segundo Macoratti (2004), dentre as diversas vantagens relevantes além das citadas anteriormente, pode-se ainda citar que o MVC: Trabalha com desenvolvimento em paralelo entre Model, View e Controller É fácil de manter, testar e atualizar sistemas Também se pode citar algumas desvantagens, começando pela necessidade de trabalhar com pessoal especializado e que tenham bom conhecimento dos padrões MVC (MACORATTI, 2004). Outra desvantagem é que a concepção do aplicativo geralmente leva mais tempo, visto a necessidade de modelar o sistema de acordo com os padrões MVC (MACORATTI, 2004). 2.6 Discussão Agora que se tem uma visão geral do padrão de desenvolvimento, pode-se notar a grande vantagem de utilizá-lo para o desenvolvimento de sistemas, corporativos ou não, prezando assim pela qualidade em todos os aspectos do desenvolvimento. É notório que ao utilizar esse padrão de desenvolvimento a equipe trabalhará em um formato em que seus colaboradores terão ações definidas, pois, como visto nesse capítulo, ao se separar as três camadas, funções e atribuições podem ser entregues a diferentes profissionais, sem ter a complicação de depois organizar tudo no mesmo lugar novamente. 12

26 Capítulo 3 Ruby A Linguagem CAPÍTULO 3 - RUBY A LINGUAGEM 3.1 Introdução É apresentada nesse capítulo a linguagem de programação Ruby, de forma a apresentar as definições, características, histórico, vantagens e desvantagens, instalação e também uma sucinta utilização da mesma. Segundo Oliveira Júnior (2005, p. 9) Ruby é uma linguagem de script interpretada para programação orientada a objetos de um modo fácil e rápido. Possui sintaxe bastante simples, parcialmente inspirada por linguagens de programação como Eiffel e Ada. Os recursos da linguagem Ruby foram inspirados em linguagens como SmallTalk, Perl e Python. Segundo Steele (2001), Ruby combina a programação totalmente orientada a objetos de SmallTalk, com o poder de Python e com a utilidade e praticidade de Perl no desenvolvimento de aplicações Web, tudo isso em uma linguagem Open Source Histórico A criação da linguagem Ruby foi iniciada pelo japonês Yukihiro Matsumoto, conhecido por Matz, em 24 de fevereiro de Quase dois anos depois, em dezembro de 1994, ficara pronta sua primeira versão alpha da linguagem (STEWART, 2001). Em 1995, Matz continuou sozinho com o desenvolvimento da linguagem, porém, já em 1996 começava a se formar uma comunidade em torno do seu desenvolvimento, visto que é uma linguagem Open Source. A partir daí, apesar de ainda fazer a maior parte do desenvolvimento sozinho, Matz passou a receber atualizações por parte da comunidade (STEWART, 2001). Em 2001, a linguagem ganhou reconhecimento no meio especializado quando o renomado programador pragmático Dave Thomas adotou-a como uma de suas linguagens preferidas, lançando o livro que passou a ser conhecido como a bíblia do Ruby (Programming Ruby: The Pragmatic Programmer's Guide) (THOMAS, 2005). 6 Software cujo código fonte é visível publicamente, mais informações disponíveis em: 13

27 Capítulo 3 Ruby A Linguagem O impulso que faltava a linguagem para emplacar de vez foi dado por David Heinemeier Hansson (AKITA, 2006) e seus colaboradores, em 2004, quando desenvolveram o Ruby on Rails, ou simplesmente Rails, um framework de desenvolvimento para Web que será apresentado no Capítulo Características Além do que já foi dito na Seção 3.1, Ruby possui muitos recursos que o caracterizam de modo bastante particular. Segundo Oliveira Júnior (2006, p ), algumas das características do Ruby são: Tratamento de Exceções: do mesmo modo que Java e Python, Ruby possui tratamento de exceções para facilitar o tratamento de erros, como toda boa linguagem moderna; Totalmente orientado a objetos: todo dado em Ruby, sem exceções, é um objeto, inclusive tipos básicos como números; Sintaxe enxuta: há poucos caracteres, como colchetes, facilitando a leitura; Adaptabilidade dinâmica: pode-se adicionar métodos a uma classe ou mesmo instâncias de classe em tempo de execução; Herança única: é menos complexa e mais utilizada. Contudo, da mesma forma que outras linguagens como Java, pode-se simular a herança múltipla, sem cair nos seus problemas, importando um módulo e utilizando seus métodos; Closures verdadeiras: não são apenas funções sem nome, mas com bindings de váriaveis verdadeiras; Blocos de códigos: podem ser passados para os métodos, ou ainda convertidos em closures; Garbage collector: é do tipo marca e limpa. Ele atua em todos os objetos do Ruby; Tipagem dinâmica: Ruby não precisa de declaração de variáveis, o tipo é definido pela maior semelhança e pode ser alterado em tempo de execução, porém é uma tipagem forte; Controle de acesso: em Ruby há três tipos de acesso aos métodos: público, privado e protegido; 14

28 Capítulo 3 Ruby A Linguagem Multi-threading 7 : Ruby tem um sistema threading independente do Sistema Operacional. 3.4 Vantagens e desvantagens Por tudo que já foi exposto no tópico anterior ficam evidentes as vantagens da linguagem, visto que compila boas características comuns das principais linguagens utilizadas no mercado. Como qualquer outra linguagem o Ruby também tem suas desvantagens, tais como: Desempenho: por se tratar de uma linguagem puramente interpretada, este é prejudicado (BURD, 2007, p. 34); O mecanismo de Multi-Threading: é independente do sistema operacional, e portanto simulado, ou seja, gerenciado pelo próprio Ruby causando desta maneira perda de performance. (THOMAS, 2005); Não tem suporte a UNICODE 8 para o sistema de caracteres. (THOMAS, 2005) 3.5 Instalação A instalação do Ruby é relativamente fácil e pode ser instalada em diversos sistemas operacionais. O pacote de instalação Ruby contém o interpretador, bibliotecas e documentação. (AKITA, 2006, p. 1) Para a instalação no Windows 9 pode-se fazer o download 10 do instalador One Click Installer (Figura 3.1), disponível no site < rubyforge.org/>. (AKITA, 2006, p. 2) A instalação é simples, basta executar o arquivo descarregado e seguir o passoa-a-passo. (AKITA, 2006, p. 2) 7 Processar mais de uma informação ao mesmo tempo. Mais detalhes em: < 8 É um padrão que permite aos computadores representar e manipular, de forma consistente, texto. Mais detalhes em: < 9 Família de Sistemas Operacionais criados pela Microsoft, mais informações em: < 10 Significa descarregar. Mais informações em: 15

29 Capítulo 3 Ruby A Linguagem Figura 3.1 Site do instalador One Click Installer Após efetuada a instalação, o Ruby já estará disponível para uso. Para verificar a versão atual do Ruby instalada no sistema operacional em uso, digita-se ruby v (Figura 3.2) (THOMAS, 2005, p. 2). Figura 3.2 Comando ruby v para verificar a versão instalada do Ruby 16

30 Capítulo 3 Ruby A Linguagem 3.6 Aspectos práticos Um exemplo de código-fonte na Linguagem Ruby seria o arquivo oipessoa.rb com o seguinte conteúdo: 1 def oipessoa(nome) 2 resultado = Ola, + nome 3 return resultado 4 end 5 puts oipessoa( Jackson ) Para rodar esse programa, basta chamar na linha de comando: > ruby oipessoa.rb Após rodar esse programa a saída na tela será Ola, Jackson. Este exemplo ilustra de maneira simples, alguns elementos da linguagem Ruby e serve como base para qualquer outro uso da linguagem (JUNQUEIRA & FORTES, 2007, p. 91). 3.7 Discussão Por tudo que foi apresentado até aqui, nota-se que a linguagem Ruby é totalmente simples, multiplataforma, poderosa, com influência de várias outras linguagens e acima de tudo, uma linguagem nova, permitindo que pessoas que venham a conhecê-la possam interagir e até participar do seu desenvolvimento, já que a mesma é Open Source e ainda encontra-se em constante evolução. Para nosso estudo o conhecimento da linguagem Ruby torna-se indispensável, pois ela é a base para o funcionamento do framework Ruby on Rails, o qual será demonstrado no próximo capítulo. 17

31 Capítulo 4 Ruby on Rails O Framework CAPÍTULO 4 - RUBY ON RAILS O FRAMEWORK 4.1 Introdução É apresentado nesse capítulo o framework Ruby on Rails ou simplesmente Rails, de forma a apresentar as definições, características, histórico, vantagens e desvantagens, instalação e também uma sucinta utilização do mesmo. Segundo Gimenes & Huzita (2005, p. 17), Um framework pode ser definido como um projeto de software reutilizável que descreve como um sistema é decomposto em um conjunto de objetos ou componentes. Segundo a Wikipedia (2007), no desenvolvimento do software, um framework ou arcabouço é uma estrutura de suporte definida em que um outro projeto de software pode ser organizado e desenvolvido. Um framework pode incluir programas de suporte, bibliotecas de código, linguagens de script e outros software para ajudar a desenvolver e juntar diferentes componentes de um projeto de software (WIKIPEDIA, 2007). Frameworks são projetados com a intenção de facilitar o desenvolvimento de software, habilitando designers e programadores a gastarem mais tempo determinado nas exigências do software do que com detalhes tediosos de baixo nível do sistema (WIKIPEDIA, 2007). Pode-se então definir que Ruby on Rails é um conjunto de frameworks que ajudarão o desenvolvedor a aumentar a produtividade em seus projetos, ou ainda, segundo o site RubyOnRails 11 que é o mantenedor oficial do Rails: Rails é um framework completo para desenvolvimento de aplicações Web com banco de dados de acordo com o padrão Model View Controller. Rails lhe dá um ambiente de desenvolvimento puramente em Ruby. O Rails é uma plataforma aberta de desenvolvimento Web, escrita em Ruby, para a criação de aplicações reais com satisfação para o desenvolvedor e menos código do que muitas outras plataformas que dependem de configurações XML. 11 Disponível em: < Acessado em: 10 out

32 Capítulo 4 Ruby on Rails O Framework 4.2 Histórico O Framework Rails foi criado pelo programador David Heinemeier Hansson, também conhecido por DHH. Ele idealizou o Rails quando desenvolvia um sistema chamado Basecamp pela empresa 37Signals (BLACK, 2006). Em julho de 2004 DHH liberou a primeira versão para a comunidade, depois de apenas dois meses de trabalho e pouco mais de 4000 linhas de código (AKITA, 2006). O primeiro lançamento de Rails deu início a uma comunidade ativa que ajudou a evoluir o framework até a versão final 1.0, liberada 15 meses depois, em 14 de dezembro de No início de 2006 aconteceu o lançamento da versão 1.1 com mais de 500 correções e novos recursos (AKITA, 2006). Ruby ganhou Rails para trilhar um caminho concreto no mundo de desenvolvimento de software. Não se trata de um rumor ou boato. É um produto real, que pode ser baixado e usado em projetos reais (AKITA, 2006). 4.3 Características Além das diversas características citadas na seção anterior pode-se ainda citar: Segue o conceito de arquitetura MVC: MVC é uma arquitetura que tem o objetivo de separar o código da visualização do usuário facilitando a vida do desenvolvedor e do profissional de design (THOMAS & HANSSON, 2005, p. 01); Segue o conceito DRY: DRY (Don't Repeat Yourself, Não se repita) é o conceito por trás da técnica de definir nomes, propriedades e códigos em somente um lugar e reaproveitar essas informações em outros (THOMAS & HANSSON, 2005, p. 02); 19

33 Capítulo 4 Ruby on Rails O Framework Segue o conceito Convention over Configuration: na maioria dos casos, usamos convenções no dia-a-dia da programação, em geral para facilitar o entendimento e manutenção por parte de outros desenvolvedores. Sabendo disso, e sabendo que o tempo gasto para configurar XML em alguns frameworks de outras linguagens é extremamente alto, decidiu-se adotar esse conceito. Ele diz basicamente que se devem assumir valores padrão onde existe uma convenção. Caso o desenvolvedor deseje, pode-se sobrescrever essa convenção com o valor necessário (THOMAS & HANSSON, 2005, p. 2); Utiliza ORM (Object Relational Mapping): esse tipo de estrutura tem a tarefa praticamente de mapear as estruturas da base de dados no sistema facilitando a programação, ou seja, o desenvolvedor não precisa se preocupar com SQL 12 e detalhes de banco de dados (THOMAS & HANSSON, 2005, p. 15). 4.4 Frameworks do Rails Todas as características apresentadas até agora são implementadas pelos diversos frameworks presentes no Rails, são eles: Active Record, Action Pack, Action Mailer, ActiveSupport, Action Webservice. A seguir temos a breve descrição de cada framework Active Mailer Esse framework é responsável pelo envio e recebimento de s. Nele o framework Action Mailer poderá interagir com o programa construído pelo desenvolvedor, por exemplo, pode-se fazer um blog 13 que receba as matérias através de , não precisando que o usuário efetue seu login 14 no site para poder enviar a mensagem (JUNQUEIRA, 2007, p. 95). 12 SQL é uma linguagem de pesquisa declarativa para banco de dados relacional. Mais detalhes em: < 13 é uma página da Web cujas atualizações são organizadas cronologicamente de forma inversa. Mais detalhes em: < 14 É a ação necessária para acessar um sistema computacional restrito. Mais detalhes em: < 20

34 Capítulo 4 Ruby on Rails O Framework Action Pack Segundo Junqueria (2007, p. 95) o Action Pack é responsável por fazer a separação da resposta de uma requisição Web em uma parte de controle (que faz a lógica) e outra de visão (processamento de um template 15 ). Ele é o maestro no despacho adequado de chamadas a métodos, redirecionamento a páginas e tudo que tem a ver com o fluxo de ações pelo aplicativo (AKITA, 2006, p. 37) Active Record Esse framework é responsável por mapear as tabelas da base de dados e os objetos da aplicação, criando assim um modelo de persistência do domínio onde a lógica e os dados são tratados de uma única forma (JUNQUEIRA, 2007, p. 96). Ele é uma implementação do padrão mapeamento objeto-relacional (ORM Object Relacional Mapping) chamado Active Record (JUNQUEIRA, 2007, p. 107) Segundo Thomas & Hansson (2005, p. 16), por padrão em um banco de dados o Active Record [...] mapeia tabelas para Classes, linhas para Objetos e colunas para Atributos de objetos. Ele tem vantagens e desvantagens, porém, os créditos de que o Rails representa um grande ganho de produtividade pode ser atribuído, em grande parte, a este pacote (AKITA, 2006, p. 37). Ou seja, pode-se dizer que esse framework é responsável pela persistência dos dados (AKITA, 2006). Junqueira (2007, p. 107) diz que, A principal contribuição do padrão de projeto ORM ou Active Record é auxiliar em dois problemas: falta de associações e herança. Algumas das principais funcionalidades do Active Record são: 15 Template (ou "modelo de documento") é um documento sem conteúdo, com apenas a apresentação visual (apenas cabeçalhos por exemplo) e instruções sobre onde e qual tipo de conteúdo deve entrar a cada parcela da apresentação. Mais informações em: < 21

35 Capítulo 4 Ruby on Rails O Framework Mapeamento automatizado entre as classes e tabelas, atributos e colunas: Apenas utilizando o conceito de Convention over Configuration (Seção 4.3) é possível mapear automaticamente a tabela em questão, herdando assim métodos/operações como as de leitura e escrita dos registros no banco de dados. Associações entre os objetos controlados através de macros simples de metaprogramação: Os principais tipos de associações são: um-paraum, um-para-muitos e muitos-para-muitos. No Rails eles são utilizados com os seguintes comandos: has_one, has_many, belongs_to, has_many_and_belongs_to_many. Ao exemplo de uma tabela dependentes pertencer a uma tabela clientes seria utilizado o comando (belongs_to cliente) no model (dependente.rb), dessa forma a associação já seria entendida pela aplicação Rails. Agregação de objetos de valor controlados por macros simples de metaprogramação: Caso existam agregações, podem ser utilizadas as macros composed_of. Essas agregações servem para unir o conteúdo de duas colunas de uma tabela. Um exemplo mais comum é o uso de duas colunas (nome e sobrenome) para armazenar separadamente o nome e sobrenome de um usuário em uma tabela. Dessa forma utiliza-se a macro composed_of para unir a duas colunas e obter o resultado em uma única coluna. Regras de validação: Existem várias facilidades para fazer a validação dos dados no servidor. Os validadores geram mensagens para o usuário no caso em que as regras não são satisfeitas. Os validadores servirão, por exemplo, para certificar que as informações que serão inseridas no banco de dados estão de acordo com as especificações do sistema. Callbacks: Calbacks permitem que sejam disparadas ações (lógica) antes ou depois de alteração de estado de um objeto. Um callback é uma forma de interceptar o momento de execução de uma operação de persistência em um modelo, seja qual ela for, e atuar sobre a mesma de acordo com a necessidade. Exemplos de callbacks são: before_save e before_create. 22

36 Capítulo 4 Ruby on Rails O Framework Observers: Observers são classes que respondem aos callbacks para implementar comportamento semelhante ao de triggers fora da classe original. Um observer escuta os eventos de mudança de um outro objeto. Suporte a transações: O Active Record suporta transações [...] tanto nos objetos como no nível do banco de dados. Abstação de banco de dados através de adaptadores simples com conector compartilhado: O Active Record pode se conectar com praticamente qualquer banco de dados, pois utiliza abstração do banco de dados. Por padrão o Rails traz suporte para os seguintes bancos de dados: MySQL, PostgreSQL, SQLite, Oracle, SQLServer e DB2.(JUNQUEIRA, 2007, p ) Action WebService Segundo Junqueria (2007, p. 95), o Action WebService fornece mecanismos para publicar APIs 16 de Web Service 17 interoperacionais com Rails sem dispender muito tempo aprofundando nos detalhes de protocolo. Este pacote fornece ao aplicativo funcionalidades para que possa responder como se fosse um Web Service, ou seja, seu aplicativo deixa de ser apenas uma interface gráfica via HTML para se tornar um provedor de APIs a outros sistemas e aplicativos. (AKITA, 2006 p. 37) Active Support Segundo Akita (2006, p. 37), o Active Support é responsável por tomar conta da carga de outras bibliotecas, dependências, recursos avançados como breakpoint em tempo de execução, cache 18, logs 19, plugins 20 e muito mais. 16 API é um conjunto de rotinas e padrões estabelecidos por um software para utilização de suas funcionalidades por programas aplicativos. Mais detalhes em: < 17 Web service é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. Mais detalhes em: < 18 Cache é um dispositivo de acesso rápido. Mais detalhes em: < 19 Log é o termo utilizado para descrever o processo de registro de eventos relevantes num sistema computacional. Mais detalhes em: < 20 Plugin ou Plug-in é um termo que significa "de encaixe". Mais detalhes em: < 23

37 Capítulo 4 Ruby on Rails O Framework É uma coleção de várias classes utilitárias e extensões de bibliotecas padrão que foram consideradas úteis para o Rails (JUNQUEIRA, 2007, p. 96). O Active Support é um conjunto de bibliotecas que são compartilhadas com os componentes Rails utilizadas para estendê-lo internamente (THOMAS & HANSSON, 2005, p. 242). 4.5 Estrutura de Diretórios Com o objetivo de organizar as aplicações desenvolvidas com o framework, o Rails utiliza uma estrutura de diretórios bem definida (JUNQUEIRA, 2007, p. 97). Segundo Thomas & Hansson (2005, p. 223), Rails assume um layout com um número fixo de diretórios. É apresentada na Figura 4.1 a estrutura de diretórios que é gerada pelo Rails quando o comando rails <nome_da_aplicacao> é executado. Minha_App README Rakefile app/ components/ config/ db/ doc/ lib/ log/ public/ script/ test/ tmp/ vendor/ Informações de instalação e uso Gerador de Scripts Arquivos do Model, View e Controller estão aqui Componentes reusáveis Parâmetros de conexão com o BD e configurações Informação de Shema e migrações Documentação com geração automática Código compartilhado Arquivos de Log gerados por sua aplicação Diretório acessado da Web. Sua aplicação é rodada aqui Scripts utilitários Testes unitários, funcionais e de integração, fixtures e mocks Arquivos temporários em tempo de execução Código importado Figura 4.1 Resultado do Rails após o comando rails Minha_App Fonte: THOMAS & HANSSON, 2005 Analisando a Figura 4.1 pode-se explicar com mais detalhes alguns dos diretórios envolvidos: 24

38 Capítulo 4 Ruby on Rails O Framework Minha_App: É o diretório que contém todo o código específico da aplicação gerada pelo comando rails Minha_App (JUNQUEIRA, 2007, p. 97). app/: Segundo Akita (2006, p. 38), É nessa pasta que estão localizados as classes MVC, dentro dessas pastas (Figura 4.2) [...] temos dividido em subdiretórios apis/, controllers/, helpers/, models/ e views/, alguns comentados a seguir. app/ controllers/ application.rb store_controller.rb helpers/ application_helper.rb store_helper.rb models/ product.rb views/ layouts/ store/ add_to_cart.rjs index.rhtml Figura 4.2 O diretório app/ Fonte: THOMAS & HANSSON, 2005 app/controllers/: Armazena os controllers da aplicação desenvolvida. Um detalhe importante é que a nomenclatura utilizada por convenção do Rails é que a seguinte: <nome>_controller.rb, ou seja, sempre será o nome do controller seguido do caractere underscore, seguido do nome controller (JUNQUEIRA, 2007, p. 97). app/views/: Aqui ficam armazenados os arquivos de template que farão parte da view que será mostrado ao usuário (JUNQUEIRA, 2007, p. 98). 25

39 Capítulo 4 Ruby on Rails O Framework app/models/: Nesse diretório ficam os models do projeto. Esses arquivos também seguem uma convenção, sendo sempre o nome do modelo no singular. Ex: cliente.rb (JUNQUEIRA, 2007, p. 98). components/: Segundo Junqueira (2007, p. 98), o diretório components contém mini aplicações auto-contidas que podem ser distribuídas junto com controllers, models e views. config/: Esse diretório é responsável por reter alguns arquivos de configuração do ambiente Rails, como o mapa de roteamento 21, configuração do banco de dados e outras dependências (JUNQUEIRA, 2007, p. 98). db/: Contém o esquema do banco de dados da aplicação no arquivo shema.rb. E em um subdiretório chamado migrate/ contém a seqüência de migrações para o esquema (JUNQUEIRA, 2007, p. 98). Aqui ficam scripts para gerar e atualizar o esquema do banco de dados, ficando assim mais fácil recriar tabelas e dar carga de dados em ambientes de teste e produção (AKITA, 2006, p. 38). doc/: Fica aqui a documentação da aplicação que é gerada automaticamente pelo Rails através dos comentários no código fonte (JUNQUEIRA, 2007, p. 98). Utilizando o comando rake doc:app será gerada uma documentação em HTML (Figura 4.3) que ficará disponível no diretório doc/. 21 Ato de rotear/encaminhar encaminhar para determinada rota. Mais detalhes em: < 26

40 Capítulo 4 Ruby on Rails O Framework Figura 4.3 Documentação interna da nossa aplicação Fonte: THOMAS & HANSSON, 2005 lib/: Esse diretório disponibiliza bibliotecas específicas da aplicação. Basicamente códigos personalizados que não façam parte de models, controllers, views ou helpers (JUNQUEIRA, 2007, p. 98). log/: Quando uma aplicação é rodada, ela gera automaticamente arquivos de Log, que são armazenados por padrão nesse diretório. Aqui ainda são encontrados três principais arquivos (development.log, test.log e production.log) que contém não apenas simples linhas com informações, mas, também trazem, estatísticas de tempo, informações de cache e expansões das expressões executadas pelo banco de dados (THOMAS & HANSSON, 2005, p. 226). public/: Segundo Junqueira (2007, p. 98), É o diretório disponível para o servidor Web. Contém subdiretórios para imagens, folhas de estilos e Javascripts. 27

41 Capítulo 4 Ruby on Rails O Framework script/: Esse diretório engloba os programas (comandos/scripts) que serão utilizados pelos desenvolvedores. A maioria desses scripts são utilizados com argumentos para funcionarem (THOMAS & HANSSON, 2005, p. 227). Abordaremos alguns dos comandos de script com mais detalhes na Seção 4.6. test/: Segundo Juqueira (2007, p. 98), Sempre que [...] os scripts de geração são utilizados, arquivos de teste de modelo são criados e colocados neste diretório automaticamente. Este diretório engloba uma suíte completa de testes integrados eles incluem testes unitários, de performance, funcionais, integração dentre outros (AKITA, 2006, p. 39). tmp/: Esse diretório mantém [...] arquivos temporários como cache, sessions e locks (AKITA, 2006, p. 39). vendor/: Segundo Akita (2006, p. 39), nesse diretório [...] são instalados plugins e engines para estender as funcionalidades do Rails. 4.6 Scripts do Ruby on Rails Para facilitar o desenvolvimento das aplicações, o Ruby on Rails disponibiliza uma série de scripts (que ficam no diretório script/) para auxiliar na geração automática de código e aumentar a velocidade do desenvolvimento (JUNQUEIRA, 2007, p. 102). Alguns deles são detalhados abaixo. console: Diz Junqueira (2007, p. 102) que este comando [...] disponibiliza um console para a interação com o ambiente da aplicação Rails, no qual é possível interagir com o modelo do domínio, testando métodos, inspecionando modelos e manipulando informações do banco de dados. destroy: Destrói arquivos autogerados pelo comando script/generate (THOMAS & HANSSON, 2005, p. 227). generate: Dito como o gerador de código. Ele pode criar controllers, models, scaffolds, mailers e Web Services. Com ele também é possível efetuar o download de geradores adicionais (THOMAS & HANSSON, 2005, p. 227). 28

42 Capítulo 4 Ruby on Rails O Framework server: Esse script roda um servidor Web que já está embutido em uma aplicação Rails, geralmente é utilizado quando a aplicação está sendo desenvolvida (THOMAS & HANSSON, 2005, p. 227). 4.7 Vantagens e desvantagens Além das vantagens apresentadas até agora pode-se ainda citar segundo Thomas & Hansson (2005): Rapidez e simplicidade no desenvolvimento de aplicações Web utilizando padrões de software atuais. No Rails as complicações arquiteturais com bando de dados são esquecidas, pois ele resolverá todos os problemas de persistência. Rails possui suporte a várias tecnologias Web, como por exemplo, a facilidade de trabalhar com s, Web Services e Ajax. Possui uma funcionalidade chamada Migrations que é responsável pela atualização ou rollbacks 22 de banco de dados, facilitando assim o controle entre versões. Possui uma funcionalidade chamada RJS Ruby Javascript, que nada mais é que escrever Javascript e Ajax dentro das aplicações Rails utilizando a linguagem Ruby. Apesar das grandes vantagens o Rails como qualquer outro software possui algumas desvantagens que segundo Baguley (2007) são: Para fazer um pequeno software no Rails é muito simples, mas para desenvolver grandes aplicações é necessário dominar o framework conhecendo a fundo as suas facetas, ou seja, é necessário dedicar tempo no estudo do framework. O Rails ainda não é difundido como outras tecnologias como TOMCAT, ASP.Net, etc. Isso em alguns casos dificultará o acesso a bibliotecas, grupos de discussão, fóruns. 22 Rollback faz com que as mudanças nos dados existentes sejão descartadas. Mais detalhes em: < 29

43 Capítulo 4 Ruby on Rails O Framework Por não ser ainda tão difundido o Rails ainda não se integra a todos os Servidores Web existentes, isso pode ser uma dificuldade em grandes empresas. As ferramentas que se integram ao Rails ainda são novas prejudicando o desenvolvimento mais eficiente de programadores já acostumados com IDE s prontas com recursos como code-completion (complemento automático do código escrito). 4.8 Instalação Existem diversas formas de se instalar o Rails, mas, após a instalação do Ruby (Seção 3.5) ficará disponível para o usuário um aplicativo de gerenciamento de pacotes denominado gems. Através desse gerenciador é possível proceder a instalação do Rails digitando no prompt de comando a seguinte expressão: > gem install rails include-dependencies Após a execução do comando, o instalador acessará o site Ruby Forge 23 e efetuará a instalação de todo módulo Rails e suas dependências. Após o termino do procedimento o Rails já estará instalado e pronto para o uso (TATE & HIBBS, 2006, p. 03). Verifica-se então a enorme facilidade de se instalar o framework a partir do gerenciador de pacotes gems que já vem instalado por padrão na instalação da linguagem Ruby (Seção 3.5). 23 Disponível em: 30

44 Capítulo 4 Ruby on Rails O Framework 4.9 Aspectos práticos Segundo Junqueira (2007), uma aplicação Rails pode ser criada seguindo quatro passos básicos ilustrados na Figura 4.4. Criação do banco de dados Criação da estrutura padrão Configuração do banco de dados Criação de scaffolding Figura 4.4 Passos para a criação de Aplicações Web com Ruby on Rails Fonte: JUNQUEIRA, 2007 Seguindo os passos apresentados na Figura 4.4, e utilizando-a como roteiro para criação de uma aplicação Web com Ruby on Rails, deve-se considerar que: Criação do banco de dados: Esta etapa consiste em criar o banco de dados da aplicação. Nessa etapa considera-se que o usuário saiba manipular o seu banco de dados preferido e que o mesmo tenha permissão para efetuar os procedimentos de criação do banco de dados. Criação da estrutura padrão: Após a instalação do framework, o comando rails pode ser utilizado para criar uma aplicação. A utilização deste comando é bastante simples, resumindo-se a apenas digitar rails <nome_da_aplicação> para que seja gerada a estrutura de diretórios padrão (Seção 4.5) baseado no nome da aplicação. Configuração do banco de dados: Depois de efetuado os dois primeiros passos para a criação de uma aplicação em Ruby on Rails, deve-se configurar o banco de dados que a aplicação vai utilizar, através do arquivo config/database.yml onde é possível definir os parâmetros de acesso ao banco de dados. 31

45 Capítulo 4 Ruby on Rails O Framework Criação de scaffolding: É sugerida a utilização de scaffolding 24 para agilizar a criação de aplicações. Para tanto basta utilizar o comando ruby script/generate scaffold <nome_da_tabela>. Dessa forma, após a execução do comando supracidato, o desenvolvedor já desfrutará das operações básicas (inserção, deleção, edição, visualização) para sua tabela (JUNQUEIRA, 2007, p ). Após seguir os passos citados na Figura 4.4 e descritos no parágrafo anterior, pode-se executar o comando ruby script/server para a inicialização do servidor HTTP (por padrão o servidor WebRick é iniciado) que vem embutido nas aplicações Rails. Assim será possível acessar a aplicação através de um browser. 4.9 Discussão Nesse capítulo percebe-se a enorme capacidade do Rails produzir aplicações com alto nível de produtividade, tornando assim o processo de desenvolvimento um ato ágil. Pode-se observar também que o framework Rails é bem organizado utilizando vários scripts de geração e manipulação de código, e uma estrutura de pastas para acomodar todo o projeto que está sendo utilizado, isto facilita a manutenção e torna o projeto mais portável visto que toda estrutura pode ser copiada para qualquer computador e utilizada sem nenhum empecilho. O Ruby on Rails mostra-se um framework completo, autogerando as três camadas do MVC de forma explícita e possibilitando também que o desenvolvedor possa manipular tais camadas, facilitando dessa forma a integração com outras tecnologias que venham a ajudar na criação de aplicações RIA. 24 O termo scaffolding é usado em programação para indicar que o código a que se refere é apenas um esqueleto usado para tornar a aplicação funciona. Mais detalhes em: < 32

46 Capítulo 5 Adobe Flex O Framework CAPÍTULO 5 - ADOBE FLEX O FRAMEWORK 5.1 Introdução Segundo a Adobe (2007), o Adobe Flex ou simplesmente Flex, [...] é um framework multiplataforma dotado de um ambiente para desenvolvimento de aplicações ricas para Internet, atualmente ele utiliza o Flash Player 25 9 ou superior, para permitir muitas experiências intuitivas e on-line. Flex se integra facilmente a diversas tecnologias tais como: PHP, Ruby, ColdFusion, JSP (Java Server Pages), entre outras. (FAIN, 2007, p 05). Este capítulo pretende apresentar o framework Adobe Flex de forma a apresentar as definições, características, histórico, vantagens e desvantagens de cada um dos elementos envolvidos para o desenvolvimento de aplicações RIA com esse framework. 5.2 Histórico Em 1996, depois de se juntar a Futurewave uma antiga empresa de software, a então empresa Macromedia lança a primeira versão do Macromedia Flash um programa para criação de animações vetoriais para a Internet e conseqüentemente o Flash Player que mais tarde tornar-se a base para o Adobe Flex (WIKIPEDIA, 2007). Depois de várias versões e uma alta aceitação pelos internautas e browsers da época, a Macromedia lança em setembro de 2003 o Flash Palyer 7. Em março de 2004 é lançado a primeira versão do Flex (WIKIPEDIA, 2007). Um detalhe muito importante é que em sua primeira versão o Flex necessitava de um servidor para poder funcionar nos browsers dos clientes, isso era um grande agravante que comprometia o seu crescimento, pois, um único servidor custava em torno de U$ ,00 (WIKIPEDIA, 2007). 25 Flash Player é um programa distribuído pela Adobe Systems para executar arquivos no formato SWF. Mais detalhes em: < 33

47 Capítulo 5 Adobe Flex O Framework Em agosto de 2005 é lançada a versão 8 do Flash Player, nela foram feitas várias modificações internas que tornaram possível o Flex ser suportando nativamente no Flash Player. Nessa mesma época a Macromedia é comprada pela Adobe. A empresa então passa a se chamar Adobe Systems (WIKIPEDIA, 2007). Em Junho de 2006 o Adobe Flex 2 é lançado juntamente com Flash Player 9, que foi totalmente reescrito, utilizando agora uma nova estrutura e suportando a mais nova linguagem de programação, o Action Script 3, com novas funcionalidades e facilidades para o desenvolvedor. Juntamente com ele, sua licença passou a ser gratuita e acessível a qualquer pessoa através do Adobe Flex 2 SDK (WIKIPEDIA, 2007). 5.2 Características Nesta seção aborda-se algumas características do Adobe Flex. A Figura 5.1 demonstra a arquitetura do framework. Figura 5.1 Arquitetura de uma aplicação Flex Fonte: BROWN, 2007 Para que se compreenda melhor, algumas das partes do Framework serão analisadas separadamente. 34

48 Capítulo 5 Adobe Flex O Framework MXML Segundo Brown (2007, p. 25), MXML Macromedia Extentible Markup Language é uma linguagem baseada em XML que proporciona um fácil caminho para declarar e gerenciar elementos visuais em uma aplicação. O MXML assim como o XML possibilita a estruturação da sua aplicação. Com o MXML é possível adicionar transições entre páginas e também adicionar diversos efeitos visuais a componentes de tela (BROWN, 2007, p. 26). Um outro ponto interessante é que o MXML possibilita o uso de folhas de estilos para melhorar a forma de gerenciar cores e estilos dos componentes envolvidos no projeto (BROWN, 2007, p. 26). Dessa maneira será possível organizar uma página de forma estruturada e sofisticada, permitindo um layout moderno e uma interface visual com efeitos e comportamentos, possibilitando assim novas formas de interação com o usuário (BROWN, 2007, p. 26) Action Script 3.0 Apenas com o MXML não seria possível desenvolver aplicações dinâmicas, pois o MXML é apenas uma linguagem de marcação como visto no tópico anterior, dessa forma, o Action Script complementa o desenvolvimento de um sistema. Segundo Brown (2007, p. 26), Com Action Script você poderá adicionar interação dinâmica entre componentes. O Action Script possibilita o desenvolvedor trabalhar com loops de programação, variáveis, métodos e diversas outras possibilidades disponíveis nessa linguagem. Pode-se pensar em Action Script como um grupo de objetos que carregam tarefas, respondem a eventos que se comunicam um com os outros (ADOBE, p. 35). Em outras palavras, o MXML ao ser compilado para um arquivo de formato SWF 26 (Small Web File) transformando-se em Action Script para poder ser interpretado pelo compilador. 26 SWF é o formato de arquivo gerado pelo Adobe Flash. Mais detalhes em: < 35

49 Capítulo 5 Adobe Flex O Framework 5.3 Programação Dirigida a Eventos Programação Dirigida a Eventos ou Event Driven Programming é um dos grandes paradigmas que o Flex traz ao desenvolvedor. Assim como o paradigma de desenvolvimento Orientado a Objetos existe a Programação Dirigida a Eventos, que traz em seu método características que diferem do modelo seqüencial adotado em outros modelos de desenvolvimento. Diferentemente de um modelo de programação seqüencial, em que primeiro uma linha é executada, e depois outra, e depois outra, em um modelo Event Driven Programming as execuções são assíncronas. Isso possibilita a execução de várias tarefas ao mesmo tempo, tornando a aplicação mais dinâmica. 5.4 Instalação A instalação do Flex é feita de forma simples, bastando apenas que o usuário efetue o download e faça a instalação conforme procedimentos mostrados a seguir. Ao tentar efetuar o download no site do fabricante ( nota-se que existem duas opções, uma conhecida como Flex SDK (Software Development Kit) e outra conhecida como Flex Builder. O primeiro deles, o Flex SDK, que é gratuito, traz consigo componentes do Flex (como os controles de entrada de dados, de layout, etc) e o compilador, que transforma o código fonte no arquivo SWF final. Apenas com ele já é possível criar aplicações. O segundo disponível é o Flex Builder, que além de já ter o SDK, oferece também uma IDE (Integrated Development Environment), um ambiente de desenvolvimento integrado, com ajudas de contexto durante o desenvolvimento, visão em modo design, depuração e afins. O Flex Builder é pago, mas há uma versão de demonstração disponível. O Flex Builder foi desenvolvido em cima da plataforma Eclipse, o que para muitos facilita o aprendizado, já que outras IDEs se baseiam nele também (BROWN, 2007, p. 7-10). 36

50 Capítulo 5 Adobe Flex O Framework O Flex Builder é construído como um plugin para o Eclipse, que já é um ambiente de desenvolvimento muito sólido e consagrado principalmente para a linguagem de programação Java. Há diversos plugins para o Eclipse que dão a ele a capacidade de servidor de editor de código para diversas linguagens, bem como ferramentas de produtividade, como acesso a banco de dados, controle de versão e afins (BROWN, 2007). Segundo Brown (2007, p. 7), após efetuar o download do Flex Builder no site do fabricante ( ou inserir o CD comprado, pode-se inicar a instalação seguindo os seguintes passos: Seleciona-se a pasta onde ficarão os arquivos temporários de instalação. A opção padrão é C:\Program Files\Flex 2 conforme Figura 5.2. Figura 5.2 Tela Inicial de Instalação Fonte: BROWN, 2007 Depois de escolher a pasta pressiona-se Next para continuar a instalação. 37

51 Capítulo 5 Adobe Flex O Framework Na próxima etapa aparece a tela representada pela Figura 5.3 onde será possível optar por duas escolhas. A opção Flex Builder and Flex SDK deve ser selecionada se o usuário não possuir o Eclipse instalado no seu computador. Já a opção Flex Builder Plug-in and Flex SDK deve ser selecionada apenas se o usuário já tiver a plataforma Eclipse instalado em seu computador. Geralmente utiliza-se a primeira opção. Figura 5.3 Escolhendo a opção de Instalação Fonte: BROWN, 2007 Na próxima tela será mostrado um termo de licença de uso para ser aceito pelo o usuário. O próximo passo é escolher a pasta onde será instalado o Flex Builder, como mostrado na Figura 5.4. Pressiona-se Next para continuar. 38

52 Capítulo 5 Adobe Flex O Framework Figura 5.4 Selecionando o local de instalação Fonte: BROWN, 2007 Na próxima tela, mostrada Figura 5.5, pode-se selecionar em quais navegadores de Internet o Flash Player 9 será instalado. O Flex funciona apenas com a versão 9 ou superior do Flash Player. 39

53 Capítulo 5 Adobe Flex O Framework Figura 5.5 Instalando o Flash Player para cada browser Fonte: BROWN, 2007 Pressiona-se Next e será mostrado (Figura 5.6) um resumo das ações que o instalador irá tomar. 40

54 Capítulo 5 Adobe Flex O Framework Figura 5.6 Tela de confirmação antes da instalação Fonte: BROWN, 2007 Clica-se no botão Install e a instalação será feita com tudo que é necessário para desenvolver aplicações RIA no Flex. 5.5 Aspectos práticos Após efetuar a instalação do Flex Builder, como mostrado na Seção 5.4, pode-se então criar uma aplicação. Para iniciar uma aplicação Flex, deve-se antes criar um projeto Flex, assim o Flex se encarregará de criar a estrutura mínima (com pastas e arquivos) para o funcionamento do projeto (BROWN, 2007, p. 29). Segundo Brown (2007, p ), segue-se os seguintes passos para a criação de um novo projeto: 41

55 Capítulo 5 Adobe Flex O Framework Após abrir o Flex clique a seqüência no menu: File > New > Flex Project. Será mostrada a caixa de diálogo (Figura 5.7) onde é possível selecionar a tecnologia utilizada para o projeto, nesse caso selecione um projeto Basic e pressione Next. Figura 5.7 Caixa de diálogo de um novo projeto Flex Fonte: BROWN, 2007 O próximo passo (Figura 5.8) é digitar o nome do projeto, nesse caso foi digitado ProjetoTeste. Deve-se atentar para não utilizar um nome de projeto já utilizado anteriormente, nem utilizar nome de projetos com espaços em branco no final. É possível clicar Next para adicionar mais informações, mas, por hora, pressiona-se Finish para finalizar a criação do projeto. 42

56 Capítulo 5 Adobe Flex O Framework Figura 5.8 Obtendo o nome do projeto Fonte: BROWN, 2007 Nesse momento o projeto será criado e o Flex estará pronto para ser utilizado com um novo projeto. Essa seção não demonstrará detalhes de desenvolvimento, a mesma será descrita no Capítulo Discussão O Adobe Flex mostra-se uma ferramenta de alto nível para o desenvolvimento de aplicações, pois o mesmo traz em sua plataforma um poderoso IDE que ajuda bastante o desenvolvedor a criar e manter o software concebido através dele. A IDE também possibilita desenvolver interfaces amigáveis ao usuário de forma rápida e eficiente, facilitando o desenvolvimento de aplicações RIA. 43

57 Capítulo 5 Adobe Flex O Framework Pode-se notar nesse capítulo que o Adobe Flex é um framework novo no mercado, mas que já possui uma história trilhada junto aos seus fabricantes. O Flex gera um arquivo SWF, que é multiplataforma, e pode ser rodado em qualquer Sistema Operacional, tornando-o uma plataforma de fácil integração em qualquer ambiente corporativo devido ao seu alto grau de adaptação em sistemas operacionais variados. 44

58 Capítulo 6 Estudo de Caso CAPÍTULO 6 - ESTUDO DE CASO 6.1 Introdução Este capítulo pretende mostrar como proceder à integração dos dois frameworks apresentados nas Seções anteriores, utilizando para isso o desenvolvimento de uma aplicação RIA como estudo de caso. A aplicação desenvolvida utilizará recursos dos dois frameworks apresentados nos capítulos anteriores. O Ruby on Rails será utilizado como base para o lado servidor, funcionando como o Model e o Controller na arquitetura MVC e o Adobe Flex será utilizado como a camada View desse mesmo modelo de desenvolvimento, servindo como lado cliente. Todo o software desenvolvido nesse capítulo estará disponível para download 27 em: < para que seja possível a observação de todo o código fonte gerado, pois as Seções que se seguem abordam apenas os principais pontos do sistema no que diz respeito à integração dos frameworks abordados. 6.2 Estrutura Básica da Aplicação Piloto A aplicação piloto terá como base uma aplicação rica para Internet RIA onde será desenvolvido um sistema de cadastro de documentos. Esse cadastro é caracterizado pela possibilidade do usuário poder cadastrar, categorizar, pesquisar e efetuar o download de todo tipo de documento que a Faculdade Sete de Setembro (FASETE) possua em forma digital. O sistema denominado de Banco de Dados de Documentos BDDOC possuirá um módulo de cadastro de documentos, onde será possível cadastrar o documento, bem como, enviar o mesmo no formato digital para ser disponibilizado posteriormente aos usuários do sistema. No BDDOC, será possível pesquisar um determinado documento por tipo, autor ou palavra-chave. Assim, após encontrar o documento pesquisado, o usuário poderá efetuar o download do mesmo. 27 Download é a transferência de dados de um computador remoto para um computador local. Mais detalhes em: < 45

59 Capítulo 6 Estudo de Caso A principal idéia do sistema é que ele possa oferecer aos seus usuários uma forma rápida de pesquisa a documentos que já foram publicados pela instituição, facilitando a elaboração de novos trabalhos que venham a ser desenvolvido no mesmo ramo em que o usuário esteja interessado, servindo também como documentos para referência bibliográfica de trabalhos desenvolvidos pelos mesmos. Dessa forma será possível demonstrar a integração dos dois frameworks para o desenvolvimento de uma aplicação RIA, bem como a utilização do padrão de projeto MVC Funcionalidades da Aplicação Piloto Conforme a Seção 6.2 pode-se indicar com mais detalhes as funcionalidades da aplicação que será desenvolvida, seguindo: Módulo para cadastro dos documentos: deve armazenar o Nome, Autor, Área do documento (Ex: Marketing, Letras, Direito, etc), Tipo (Ex: Monografia, TCC, Trabalho, Plano de Negócio, etc), Palavras-Chave, Sinopse e Arquivo no formato digital (que deverá ser submetido no cadastro). Módulo para pesquisa de documentos: deverá ser possível pesquisar o documento por Autor, Descrição, Palavra-Chave, Área ou Tipo. Módulo Principal: esse módulo deve mostrar uma listagem dos documentos cadastrados para que seja possível efetuar o download do documento selecionado. Em todos os módulos serão armazenadas a data e hora em que o documento, autor ou tipo foi cadastrado e a data e hora da última atualização efetuada. Para isso existirão os campos Created_at e Updated_at, que são convenções utilizadas pelo Ruby on Rails para esse tipo de ação. 46

60 Capítulo 6 Estudo de Caso 6.3 Definindo o padrão de comunicação entre os frameworks Visto que na aplicação RIA desenvolvida será utilizado o padrão de projeto MVC, fica definido que a camada Model e a camada Controller serão desenvolvidos com o framework Ruby on Rails, e que a camada View será desenvolvida com o framework Adobe Flex (Figura 6.1). Entradas, ex: Teclado e mouse Controller View Mensagens Mensagens Model Adobe Flex Ruby on Rails Figura 6.1 Separação da aplicação na arquitetura MVC 28 Dessa forma o sistema obedecerá aos padrões de projeto MVC e mensagens serão trocadas entre as três camadas formalizando assim o padrão de projeto utilizado. Segundo a Coenraets (2007), o Adobe Flex possui algumas maneiras de acessar dados externos, conhecidos como lado servidor, server-side ou back-end. São elas: HTTPService: Com esse tipo de conexão é possível enviar requisições HTTP 29 convencionais para o servidor e consumir a resposta. Embora o HTTPService possa consumir diversos tipos de resposta, o mais utilizado é o XML. 28 Essa figura é de minha autoria, necessária para entender o a separação lógica da aplicação. 29 HTTP é a sigla em língua inglesa de HyperText Transfer Protocol (Protocolo de Transferência de Hipertexto). Mais detalhes em: < 47

61 Capítulo 6 Estudo de Caso RemoteObject: Com esse tipo de conexão o cliente pode invocar métodos disponíveis na aplicação e consumir os resultados desses métodos. WebService: Com esse tipo de conexão o cliente pode invocar métodos disponíveis através de Web Services na aplicação e consumir o valor de retorno desses métodos. Contudo, embora as três possuam funcionalidades e características distintas, assim como manipulam a conexão de diferentes formas, as conexões com o servidor dos três componentes são feitas sobre o potocolo HTTP ou HTTPS (COENRAETS, 2007). O padrão escolhido para a aplicação piloto foi o HTTPService por se tratar de uma classe que manipula requisições básicas HTTP, que é o protocolo básico de comunicação para a Web, facilitando o processo de desenvolvimento da aplicação. 6.4 Características do HTTPService Segundo a Coenraets (2007), o HTTPService possibilita conexões HTTP, nos mesmos moldes que um navegador convencional, fazendo uma requisição, e recebendo uma resposta. Ou seja, é possível tanto enviar informações (como o preenchimento de um formulário), quanto receber informações (como receber uma lista de funcionários). Pela flexibilidade, facilidade e padronização, é conveniente receber os dados em formato XML, mais fáceis de lidar do que um texto sem formatação. Com o HTTPService é possível enviar requisições à qualquer tipo de server-side, facilitando a comunicação com o Rails por exemplo (COENRAETS, 2007). Segundo a Adobe (2007), a tag 30 <mx:httpservice> pode ser utilizada para receber facilmente dados externos a uma aplicação Flex. Geralmente são utilizados os métodos POST e GET 31 para fazer requisições a dados externos. A Figura 6.2 demonstra um exemplo do ciclo de comunicação utilizando HTTPService que será utilizada durante a aplicação piloto. 30 São estruturas de linguagem de marcação que consistem em breves instruções, tendo uma marca de início e outra de fim. Mais detalhes em: < 31 Método determina o que o servidor deve fazer com o URL fornecido no momento da requisição de um recurso. Mais detalhes em: < 48

62 Capítulo 6 Estudo de Caso 1 Na camada View (Adobe Flex) o usuário solicita uma pesquisa e clica no botão Pesquisar. 2 Ao clicar no botão Pesquisar é disparada uma função HTTPService do Adobe Flex que envia através de HTTP a requisição para um método do Controller no Ruby on Rails. 3 Depois de processado o método pesquisa o Controller devolve um XML para a View (Adobe Flex.) Figura 6.2 Exemplo do ciclo de comunicação utilizando HTTPService 32 Segundo a Adobe (2007), para utilizar a tag <mx:httpservice>, basta declará-la logo após a tag <Application>, como mostrado no código abaixo: 32 Essa figura é de minha autoria, necessária para entender o ciclo de uma requisição HTTPService da aplicação. 49

63 Capítulo 6 Estudo de Caso <mx:httpservice id="feedrequest" url=" A propriedade id refere-se ao identificador da tag, facilitando a identificação do componente para o futuro uso. A propriedade URL refere-se ao endereço da Internet onde está disponível a informação a ser consumida (ADOBE, 2007). Mais detalhes de implementação serão vistos nas próximas Seções, ao decorrer do desenvolvimento da aplicação piloto. 6.5 Desenvolvendo o Server-Side Por tudo que foi exposto nos Capítulos anteriores pode-se entender que, o server-side consiste em toda a parte da aplicação que rodará no lado do servidor, e compreenderá o Model e o Controller quando utilizamos o padrão arquitetural MVC. Como comentado na Seção 6.3, o server-side será desenvolvido utilizando o framework Ruby on Rails. Visto que o escopo do trabalho não envolve conhecimentos em banco de dados, e tomando como base o banco de dados MySQL já configurado, e a base de dados bddoc_development, bem como as tabelas criadas conforme o diagrama Entidade Relacionamento (Figura 6.3), pode-se iniciar a aplicação piloto. É fácil notar no diagrama (Figura 6.3) que os documentos são compostos por áreas e tipos, que são cadastrados separadamente. 50

64 Capítulo 6 Estudo de Caso Figura 6.3 Diagrama Entidade Relacionamento BDDOC 33 Para iniciar a aplicação piloto utiliza-se o comando rails bddoc para gerar a estrutura básica como visto na Seção 4.8. Esse comando gerará toda a estrutura do server-side (Figura 6.4). Figura 6.4 Estrutura de Pastas da Aplicação Piloto BDDOC Essa figura é de minha autoria, necessária para entender o diagrama ER da aplicação. 34 Essa figura é de minha autoria, necessária o leitor visualizar as pastas geradas pela aplicação. 51

65 Capítulo 6 Estudo de Caso Após a geração da estrutura de pastas do BDDOC, configura-se o acesso ao banco de dados através do arquivo database.yml disponível na pasta config/ (AKITA, 2006). A configuração do arquivo database.yml (Figura 6.5) é baseada na etapa em que a aplicação se encontra, nesse caso o importante é configurar o bloco development, pois o estágio inicial do ambiente é o de desenvolvimento por padrão (AKITA, 2006). Figura 6.5 Edição do arquivo database.yml Fonte: Arquivo database.yml da aplicação BDDOC,

66 Capítulo 6 Estudo de Caso Após a configuração do banco de dados foram rodados os comandos ruby script/generate model documento, ruby script/generate model tipo e ruby script/generate model area, para que fossem gerados os modelos (models) que representam o banco de dados, como visto na Seção 2.4. Logo depois de gerados os modelos, fez-se necessário a configuração dos arquivos: documento.rb (Figura 6.6), area.rb (Figura 6.7) e tipo.rb (Figura 6.8), conforme Seção 4.4.3, para que o framework Ruby on Rails pudesse mapear o banco de dados, disponibilizando assim todos os métodos necessários para a manipulação dos mesmos na aplicação. Os arquivos estão disponíveis na pasta app/models/. Figura 6.6 Configuração do arquivo documentos.rb Fonte: Arquivo documento.rb da aplicação BDDOC, 2007 Figura 6.7 Configuração do arquivo area.rb Fonte: Arquivo area.rb da aplicação BDDOC,

67 Capítulo 6 Estudo de Caso Figura 6.8 Configuração do arquivo tipo.rb Fonte: Arquivo tipo.rb da aplicação BDDOC, 2007 Após a configuração dos arquivos citados no parágrafo anterior, foi rodado o comando ruby script/generate scaffold tipo, ruby script/generate scaffold area e ruby script/generate scaffold documento, para que pudessem ser geradas as estruturas CRUD 35 para as tabelas, sendo possível cadastrar os tipos e as áreas que estarão disponíveis no cadastro de um novo documento. Para verificar o sucesso dos comandos rodados, é possível executar o comando ruby script/server (Seção 4.8) para iniciar o servidor Web e depois acessar os endereços (Figura 6.9), (Figura 6.10) e (Figura 6.11), através de um navegador de Internet, comprovando assim a existência do cadastro de tipos, áreas e documentos. 35 CRUD é o acrônimo da expressão em língua Inglesa Create, Retrieve, Update e Destroy, usada para definir quatro operações básicas usadas em bancos de dados relacionais. Mais detalhes em: < 54

68 Capítulo 6 Estudo de Caso Figura 6.9 Listagem de tipos Fonte: Navegador Firefox com a aplicação BDDOC rodando, 2007 Figura 6.10 Listagem de áreas Fonte: Navegador Firefox com a aplicação BDDOC rodando,

69 Capítulo 6 Estudo de Caso Figura 6.11 Listagem dos documentos Fonte: Navegador Firefox com a aplicação BDDOC rodando, 2007 Como é possível notar, a aplicação já funciona em parte, visto que nesse momento a mesma dispõe do cadastro de tipos, áreas e documentos. No entanto, o cadastro de documentos não funciona corretamente, já que o mesmo não obtém os nomes dos tipos e áreas cadastradas automaticamente, nem possibilita o usuário submeter arquivos para que sejam armazenados no servidor. Assim, na próxima seção desenvolve-se toda estrutura para o módulo de cadastro de documentos e pesquisa do lado cliente (client-side), utilizando o Adobe Flex. Além dos passos descritos nessa seção, serão necessários a criação de alguns métodos no controller documentos (documentos_controller.rb), o mesmo está disponível na pasta app/controllers/ e todo o seu conteúdo está disposto no arquivo app/controllers/documentos_controller.rb. 6.6 Desenvolvendo o Client-Side Para iniciar o desenvolvimento do client-side utilizando o Adobe Flex como plataforma de uma aplicação RIA, deve-se analisar a estrutura de diretórios gerada pelo framework rails. Então, conforme Seção 4.5, utiliza-se à pasta public/ para ser a pasta raiz onde estará localizado o projeto do Adobe Flex. 56

70 Capítulo 6 Estudo de Caso Logo após essa análise pode-se criar o projeto no Adobe Flex conforme Seção 5.5, atentando apenas para o local onde será criado o projeto, o mesmo deve ser a pasta public/ do projeto BDDOC (Figura 6.12). Figura 6.12 Criação do projeto na pasta public Fonte: Adobe Flex Builder, 2007 Após criar o projeto inicial no Adobe Flex, deve-se criar toda estrutura de janelas, correspondente aos módulos citados na Seção Essa estrutura compreende: Cadastro de documentos (Figura 6.13), Pesquisa de documentos (Figura 6.14) e Tela principal com listagem de documentos (Figura 6.15) 57

71 Capítulo 6 Estudo de Caso Figura 6.13 Tela de cadastro de documentos Fonte: Adobe Flex Builder, 2007 Figura 6.14 Tela de pesquisa Fonte: Adobe Flex Builder,

72 Capítulo 6 Estudo de Caso Figura 6.15 Tela principal e de listagem de documentos. Fonte: Adobe Flex Builder, 2007 O próximo passo, depois da criação de toda a estrutura visual, é, efetivar de fato, o cadastro de documentos Efetivando o cadastro de documentos Depois de criada as telas citadas na Seção 6.6, devem-se adicionar as funcionalidades aos componentes que trarão os nomes dos tipos e áreas para serem cadastrados durante o registro de um documento. Para esse feito, serão utilizadas duas funções: pesquisaarea() e pesquisatipo() (Figura 6.16), que disparam um HTTPService, com o intuito de retornar uma lista de tipos e áreas (no formato XML) para que sejam preenchidos nos componentes de tela (Figura 6.17). 59

73 Capítulo 6 Estudo de Caso Figura 6.16 Funções HTTPService. Fonte: Arquivo NovoDocumento.as da aplicação BDDOC, 2007 Figura 6.17 Componentes de tela preenchidos com o retorno do HTTPService. Fonte: Tela de cadastro do novo documento na aplicação BDDOC,

Sistema 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 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 mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO 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 mais

4 O Workflow e a Máquina de Regras

4 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 mais

Desenvolvendo Websites com PHP

Desenvolvendo 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 mais

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

Ambiente 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 mais

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

Ambiente 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 mais

Conteúdo Programático de PHP

Conteú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 mais

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

Noçõ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 mais

Aplicativo 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 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 mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM 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 mais

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma

Leia mais

SCE-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 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 mais

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

O 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 mais

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

ANEXO 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 mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

Documento de Arquitetura

Documento de Arquitetura Documento de Arquitetura A2MEPonto - SISTEMA DE PONTO ELETRÔNICO A2MEPonto - SISTEMA DE PONTO ELETRÔNICO #1 Pág. 1 de 11 HISTÓRICO DE REVISÕES Data Versão Descrição Autor 28/10/2010 1 Elaboração do documento

Leia mais

USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE

USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE SUMÁRIO usando o izcode... 1 para gerar software rapidamente... 1 introdução... 2 o que é o izcode?... 2 Como funciona o izcode?... 2 os tipos diferentes

Leia mais

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://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 mais

Artur Petean Bove Júnior Tecnologia SJC

Artur Petean Bove Júnior Tecnologia SJC Artur Petean Bove Júnior Tecnologia SJC Objetivo O objetivo do projeto é especificar o desenvolvimento de um software livre com a finalidade de automatizar a criação de WEBSITES através do armazenamento

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

SISTEMA 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 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 mais

Adobe Flex. Cainã Fuck dos Santos Thiago Vieira Puluceno Jonathan Kuntz Fornari Gustavo Nascimento Costa

Adobe Flex. Cainã Fuck dos Santos Thiago Vieira Puluceno Jonathan Kuntz Fornari Gustavo Nascimento Costa Adobe Flex Cainã Fuck dos Santos Thiago Vieira Puluceno Jonathan Kuntz Fornari Gustavo Nascimento Costa O que é Flex? Estrutura de Código aberto para a criação de aplicativos Web Utiliza o runtime do Adobe

Leia mais

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento HOME O QUE É TOUR MÓDULOS POR QUE SOMOS DIFERENTES METODOLOGIA CLIENTES DÚVIDAS PREÇOS FALE CONOSCO Suporte Sou Cliente Onde sua empresa quer chegar? Sistemas de gestão precisam ajudar sua empresa a atingir

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. 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 mais

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO 10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO UMA DAS GRANDES FUNÇÕES DA TECNOLOGIA É A DE FACILITAR A VIDA DO HOMEM, SEJA NA VIDA PESSOAL OU CORPORATIVA. ATRAVÉS DELA, ELE CONSEGUE

Leia mais

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 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 mais

DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN

DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN José Agostinho Petry Filho 1 ; Rodrigo de Moraes 2 ; Silvio Regis da Silva Junior 3 ; Yuri Jean Fabris 4 ; Fernando Augusto

Leia mais

1. Apresentação. 1.1. Objetivos

1. Apresentação. 1.1. Objetivos 1.1. Objetivos 1. Apresentação Neste capítulo estão descritos os objetivos gerais do livro, os requisitos desejáveis do estudante para que possa utilizá-lo eficientemente, e os recursos necessários em

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 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 mais

Desenvolvendo para WEB

Desenvolvendo 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 mais

HIBERNATE EM APLICAÇÃO JAVA WEB

HIBERNATE EM APLICAÇÃO JAVA WEB HIBERNATE EM APLICAÇÃO JAVA WEB Raul Victtor Barbosa Claudino¹, Ricardo Ribeiro Rufino¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil victtor.claudino@gmail.com, ricardo@unipar.br Resumo: Este

Leia mais

Aplicação Prática de Lua para Web

Aplicaçã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 mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL. Prof. Angelo Augusto Frozza, M.Sc. http://about.

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL. Prof. Angelo Augusto Frozza, M.Sc. http://about. PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução Cliente-Servidor Cliente Servidor Tipos de conexão

Leia mais

Documento de Análise e Projeto VideoSystem

Documento 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 mais

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

Leia mais

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Construtor 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 mais

Microsoft Access XP Módulo Um

Microsoft Access XP Módulo Um Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo

Leia mais

Luiz Arão Araújo Carvalho Bacharel em Ciência da Computação Desenvolvedor RedeSat-TO maximusmano@gmail.com http://www.maxonrails.wordpress.

Luiz 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 mais

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

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 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 mais

Aplicativo para elaboração de questionários, coleta de respostas e análise de dados na área da saúde em dispositivos móveis

Aplicativo para elaboração de questionários, coleta de respostas e análise de dados na área da saúde em dispositivos móveis Aplicativo para elaboração de questionários, coleta de respostas e análise de dados na área da saúde em dispositivos móveis Visão Versão Histórico da Revisão Data Versão Descrição Autor 24/06/12

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Sistemas Distribuídos

Sistemas 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 mais

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta

Leia mais

Manual do Visualizador NF e KEY BEST

Manual do Visualizador NF e KEY BEST Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................

Leia mais

Começando com Ruby on Rails @gibsongabriel

Começ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 mais

Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina

Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina Programação para Internet Rica 1 Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina Objetivo: Identificar as principais características de uma Aplicação Internet Rica.

Leia mais

Processos Técnicos - Aulas 4 e 5

Processos Técnicos - Aulas 4 e 5 Processos Técnicos - Aulas 4 e 5 Trabalho / PEM Tema: Frameworks Públicos Grupo: equipe do TCC Entrega: versão digital, 1ª semana de Abril (de 31/03 a 04/04), no e-mail do professor (rodrigues.yuri@yahoo.com.br)

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃ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 mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

Programação Web Prof. Wladimir

Programaçã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 mais

INTRODUÇÃO: 1 - Conectando na sua conta

INTRODUÇÃ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 mais

Manual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania

Manual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania Manual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania Sumário Objetivos do Blog... 2 Log-in... 3 Esqueci minha senha... 4 Utilizando o Blog... 5 Encontrando seu Blog... 5 Conhecendo o

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteú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 mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

MÓDULO MULTIMÉDIA. Text PROFESSOR: RICARDO RODRIGUES. MAIL: rprodrigues@escs.ipl.pt esganarel@gmail.com. URL: http://esganarel.home.sapo.

MÓDULO MULTIMÉDIA. Text PROFESSOR: RICARDO RODRIGUES. MAIL: rprodrigues@escs.ipl.pt esganarel@gmail.com. URL: http://esganarel.home.sapo. MÓDULO MULTIMÉDIA PROFESSOR: RICARDO RODRIGUES MAIL: rprodrigues@escs.ipl.pt esganarel@gmail.com URL: http://esganarel.home.sapo.pt Text GABINETE: 1G1 - A HORA DE ATENDIMENTO: SEG. E QUA. DAS 11H / 12H30

Leia mais

Plano de Gerenciamento do Projeto

Plano de Gerenciamento do Projeto Projeto para Soluções Contábeis 2015 Plano de Gerenciamento do Projeto Baseado na 5ª edição do Guia PMBOK Brendon Genssinger o e Elcimar Silva Higor Muniz Juliermes Henrique 23/11/2015 1 Histórico de alterações

Leia mais

Universidade da Beira Interior

Universidade 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 mais

CONCEITOS 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; 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 mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (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 mais

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

ACOMPANHAMENTO GERENCIAL SANKHYA

ACOMPANHAMENTO GERENCIAL SANKHYA MANUAL DE VISITA DE ACOMPANHAMENTO GERENCIAL SANKHYA Material exclusivo para uso interno. O QUE LEVA UMA EMPRESA OU GERENTE A INVESTIR EM UM ERP? Implantar um ERP exige tempo, dinheiro e envolve diversos

Leia mais

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Introdução a listas - Windows SharePoint Services - Microsoft Office Online Page 1 of 5 Windows SharePoint Services Introdução a listas Ocultar tudo Uma lista é um conjunto de informações que você compartilha com membros da equipe. Por exemplo, você pode criar uma folha de inscrição

Leia mais

Operador de Computador. Informática Básica

Operador de Computador. Informática Básica Operador de Computador Informática Básica Instalação de Software e Periféricos Podemos ter diversos tipos de software que nos auxiliam no desenvolvimento das nossas tarefas diárias, seja ela em casa, no

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso 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 mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. 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 mais

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Unidade 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 mais

Faculdade de Tecnologia SENAC Goiás. Disciplina: Gerenciamento de Rede de Computadores. Goiânia, 16 de novembro de 2014.

Faculdade de Tecnologia SENAC Goiás. Disciplina: Gerenciamento de Rede de Computadores. Goiânia, 16 de novembro de 2014. Faculdade de Tecnologia SENAC Goiás Disciplina: Gerenciamento de Rede de Computadores : Goiânia, 16 de novembro de 2014. Faculdade de Tecnologia SENAC Goiás Professor: Marissol Martins Alunos: Edy Laus,

Leia mais

Manual do Painel Administrativo

Manual 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 mais

Orientação a Objetos

Orientaçã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 mais

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

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 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 mais

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Luis Gustavo Zandarim Soares 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paraná PR Brasil luisgustavo@live.co.uk,

Leia mais

Programaçã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 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 mais

Sistema 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 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 mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerenciamento de Dispositivos Gerenciamento de Dispositivos de E/S Introdução Gerenciador de Dispositivos Todos os dispositivos

Leia mais

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial 1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão

Leia mais

Figura 1 - Arquitetura multi-camadas do SIE

Figura 1 - Arquitetura multi-camadas do SIE Um estudo sobre os aspectos de desenvolvimento e distribuição do SIE Fernando Pires Barbosa¹, Equipe Técnica do SIE¹ ¹Centro de Processamento de Dados, Universidade Federal de Santa Maria fernando.barbosa@cpd.ufsm.br

Leia mais

Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit

Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit Vitor Paulo Silva Se você é um projetista e sua principal ferramenta de trabalho é o AutoCAD ou o Revit, certamente você já se deparou com

Leia mais

INTEGRE Diversas fontes de informações em uma interface intuitiva que exibe exatamente o que você precisa

INTEGRE Diversas fontes de informações em uma interface intuitiva que exibe exatamente o que você precisa INTEGRE Diversas fontes de informações em uma interface intuitiva que exibe exatamente o que você precisa ACESSE Informações corporativas a partir de qualquer ponto de Internet baseado na configuração

Leia mais

1 ACESSO AO PORTAL UNIVERSITÁRIO 3 3 PLANO DE ENSINO 6 4 AULAS 7 5 AVALIAÇÃO E EXERCÍCIO 9 6 ENQUETES 12 7 QUADRO DE AVISOS 14

1 ACESSO AO PORTAL UNIVERSITÁRIO 3 3 PLANO DE ENSINO 6 4 AULAS 7 5 AVALIAÇÃO E EXERCÍCIO 9 6 ENQUETES 12 7 QUADRO DE AVISOS 14 portal@up.com.br Apresentação Este manual contém informações básicas, e tem como objetivo mostrar a você, aluno, como utilizar as ferramentas do Portal Universitário e, portanto, não trata de todos os

Leia mais

II Semana TI. Curso ASP.NET AJAX. Raphael Zanon Rodrigues zanonr@gmail.com. UNIVEM - Prof. Elvis Fusco

II Semana TI. Curso ASP.NET AJAX. Raphael Zanon Rodrigues zanonr@gmail.com. UNIVEM - Prof. Elvis Fusco II Semana TI Curso ASP.NET AJAX Raphael Zanon Rodrigues zanonr@gmail.com UNIVEM - Prof. Elvis Fusco Apresentação O que é o AJAX? AJAX e o desenvolvedor AJAX para ASP.NET AJAX prático O que é AJAX? AJAX

Leia mais

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil eduardorubay@gmail.com, bonetti@unipar.br Resumo.

Leia mais

MVC e Camadas - Fragmental Bliki

MVC e Camadas - Fragmental Bliki 1 de 5 20-03-2012 18:32 MVC e Camadas From Fragmental Bliki Conteúdo 1 Introdução 2 Camadas: Separação Entre Componentes 3 MVC: Interação Entre Componentes 4 Conclusão 5 Referências Introdução A Arquitetura

Leia mais

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS Emanuel M. Godoy 1, Ricardo Ribeiro Rufino 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil godoymanel@gmail.com,

Leia mais

www.neteye.com.br NetEye Guia de Instalação

www.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 mais

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013 QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013 Prezados Senhores da comissão de licitação da UENF, seguem alguns questionamentos acerca do edital de concorrência 01/2013 para esclarecimentos: 1. ANEXO

Leia mais

UFG - Instituto de Informática

UFG - 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 mais

Personalizações do mysuite

Personalizações do mysuite Personalizações do mysuite 1. mysuite... 2 2. Customização de campos... 3 3. Importação de dados... 3 4. Integração de sistemas... 3 5. Personalização do Atendimento Online... 4 5.1. Imagens de online

Leia mais

Prevayler. 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 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 mais

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

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

Leia mais

Manual de Utilização

Manual de Utilização Manual de Utilização Versão 1.0 18/01/2013 Sempre consulte por atualizações deste manual em nossa página. O Cotação Web está em constante desenvolvimento, podendo ter novas funcionalidades adicionadas

Leia mais

Sistema de Controle de Solicitação de Desenvolvimento

Sistema de Controle de Solicitação de Desenvolvimento Sistema de Controle de Solicitação de Desenvolvimento Introdução O presente documento descreverá de forma objetiva as principais operações para abertura e consulta de uma solicitação ao Setor de Desenvolvimento

Leia mais

2 a Lista de Exercícios

2 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 mais

FERRAMENTA 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 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 mais

FRWTC800 - Desenvolvimento Web com Ruby on Rails

FRWTC800 - 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 mais