Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* * * Introdução à Programação “para Web” Carlos Bazilio Depto de Ciência e Tecnologia Pólo Universitário de Rio das Ostras Universidade Federal Fluminense * * * Objetivo Apresentar aos participantes alguns conceitos básicos atuais relacionados à programação e programação para web Introduzir algumas tecnologias, suas vantagens e desvantagens * * * Lição para um Profissional de Computação “Prostituam-se! Prostituam-se quando o assunto for linguagem de programação, IDE, metodologia, arquitetura, ou qualquer outro tipo de escolha!” * * * Arquitetura * * * Execução no Cliente (Browser) HTML CSS Javascript XML XSLT Tableless ... * * * HTML <html> <head> <title>Título da Página</title> </head> <body> Esta é minha primeira página. </body> </html> * * * CSS <html> <head> <link href="pagina.css" rel="stylesheet" type="text/css" /> <title>Título da Página</title> </head> <body> Esta é minha primeira página. </body> </html> * * * CSS – “pagina.css” Demonstração: http://www.csszengarden.com/ body { background-color : #ffffff; color : #000000; } * * * Tableless Padrão que vem sendo adotado na web para uso massivo de html+css Além, não utilizar tabelas html para construção de conteúdo diferente de tabela (origem do nome) Naturalmente, este uso não deveria ser evitado se o que se deseja é construir uma tabela Exemplo: http://www.stopdesign.com/present/2004/ddw-seattle/tables/?no=15 * * * JavaScript <html> <body> <script type="text/javascript"> for (i = 0; i < 5; i++) { document.write("Alo você !!!") document.write("<br />") } </script> </body> </html> * * * JavaScript <html> <head> <script type="text/javascript"> function alo(k) { var s = ""; for (i = 0; i < k; i++) { s = s + "Alo você !!!" s = s + "<br />" } return s } </script> <title>Alouuuuuu</title> </head> <body> <script type="text/javascript"> document.write(alo(4)) </script> </body> </html> * * * XML <?xml version="1.0" encoding="UTF-8"?> <livros> <livro isbn=“0001”> <titulo>JavaServer Pages</titulo> <autor>Nick Todd</autor> <editora>Campus</editora> <assunto>JSP</assunto> </livro> <livro isbn=“0002”> <titulo>Meu pé de laranja lima</titulo> <editora>Vozes</editora> <autor>Brilhante</autor> </livro> </livros> * * * XSLT <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions"> <xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/> <xsl:template match="/"> <html><head><title>Meus livros</title></head> <body> <table border="1"> <tr><th>Título</th><th>Autor</th></tr> <xsl:for-each select="//livro"> <tr> <td><xsl:value-of select="titulo"/></td> <td><xsl:value-of select="autor"/></td> </tr> </xsl:for-each> </table></body></html> </xsl:template> </xsl:stylesheet> * * * Execução no Cliente (Browser) “Inferno” dos web-designers: compatibilidade entre browsers! Firefox Opera Internet Explorer (IECA) Konqueror * * * Execução no Servidor Necessidade dos websites oferecerem conteúdos dinâmicos e atualizados Ciclo de vida da informações trafegadas entre servidor e cliente (escopo) Linguagens de script JSP ASP PHP Perl * * * Execução no Servidor * * * Execução no Servidor Servidores Web IIS Apache Tomcat * * * IIS Internet Information Server Microsoft Famoso por apresentar diversos problemas de segurança no passado * * * Apache Servidor web mais utilizado no mundo atualmente (Fonte: Netcraft) Software Livre Escrito em C Executa diversas linguagens script: PhP, Perl, ASP, etc. Possui suporte nativo ao MySQL Permite definição de módulos para extensão do servidor Exemplo: suporte para JSP * * * Tomcat Implementação de referência para JSP/Servlets (Java) Escrito em Java Devido à sua simplicidade e fácil instalação, é comumente utilizado em cursos para desenvolvimento web * * * Servidores de Aplicação Estes servidores oferecem recursos comuns a diferentes aplicações (autenticação, conexão à BDs, suporte a transação, etc) Pensando-se numa arquitetura em camadas, um servidor de aplicação é um servidor que hospeda e oferece serviços para outras aplicações Com isso, espera-se que os desenvolvedores poupem tempo para implementação da lógica do negócio * * * Servidores de Aplicação Exemplos: Java: JBoss (Red Hat), WebLogic (BEA), WebSphere (IBM), Geronimo (Apache), Sun Application Server (SUN), Glassfish (baseado no da SUN) Microsoft: .NET Framework * * * Afins RSS Web Services AJAX * * * RSS Really Simple Syndication Formato padrão, baseado em XML Tem sido adotado por websites que disponibilizam informações na rede, como sites de jornais, blogs, sites institucionais, etc. Hoje existem diversos leitores (agregadores) de RSS: browsers, programas de e-mail, softwares, etc .. * * * RSS * * * Web Services Proposta: Integração de sistemas através do uso de XML sobre HTTP Tecnologias: XML WSDL (Web Service Description Language) SOAP (Simple Object Access Protocol) Vantagens: Integração com baixo acoplamento Independe das linguagens de implementação * * * Web Services * * * Web Services * * * AJAX Asynchronous Javascript And XML Construção de páginas mais dinâmicas através de chamadas assíncronas ao servidor Não é uma tecnologia, mas sim uma combinação de tecnologias XHTML + CSS + XML + XSLT + XMLHttpRequest e JavaScript * * * AJAX * * * AJAX * * * AJAX * * * Padrões de Projeto Um padrão de projeto é uma solução comum para um problema comum encontrado no desenvolvimento de software (Sun); Sedimentação do conceito com o lançamento do livro: “Design Patterns: Elements of Reusable Object-Oriented Software”; Não está amarrado a nenhuma linguagem OO. * * * Padrões de Projeto (GoF – Gang of Four) * * * Padrões de Projeto A utilização desses padrões usualmente implica em algumas vantagens: Facilidade de comunicação: padrões possuem nomes, os quais resumem uma solução que deve ser de conhecimento comum entre equipes de desenvolvimento; Credibilidade: sua implementação estará utilizando soluções amplamente testadas e aprovadas; Facilidade de manutenção: padrões tendem a reduzir o acoplamento entre componentes, o que implica num sistema de fácil manutenção * * * Padrões de Projeto – Exemplo: Façade * * * import java.util.*; /** "Façade" */ class UserfriendlyDate { GregorianCalendar gcal; public UserfriendlyDate(String isodate_ymd) { String[] a = isodate_ymd.split("-"); gcal = new GregorianCalendar(Integer.valueOf(a[0]).intValue(), Integer.valueOf(a[1]).intValue()-1 /* !!! */, Integer.valueOf(a[2]).intValue()); } public void addDays(int days) { gcal.add(Calendar.DAY_OF_MONTH, days); } public String toString() { return new Formatter().format("%1$tY-%1$tm-%1$td", gcal).toString();} } /** "Client" */ class FacadePattern { public static void main(String[] args) { UserfriendlyDate d = new UserfriendlyDate("1980-08-20"); System.out.println("Date: "+d); d.addDays(20); System.out.println("20 days after: "+d); } } * * * MVC (Model-View-Controller) http://java.sun.com/blueprints/patterns/MVC-detailed.html * * * Nosso Plano * * * Links Interessantes http://www.w3schools.com/ Site com tutoriais on-line rápidos e com muita qualidade http://del.icio.us/carlosbazilio Meus links favoritos disponibilizados on-line http://en.wikipedia.org/wiki/Design_Patterns Wikipedia sobre Design Patterns http://www.hideout.com.br/usp/semacomp2005/slides/minicurso.html Slides de um minicurso sobre programação em web 2.0
Compartilhar